蒋银虎,旦敏,李春云
(1.昆明幼儿师范高等专科学校,云南昆明 650000;2.昆明市教育科学研究院,云南昆明 650000)
高校固定资产是保障学校的教学、科研、管理等各项活动顺利开展的物质基础条件[1]。部分高校中,资产的管理仍采用人工手写记录入库,教师对设备的使用申请、使用者的转移、归还仍采用传统的纸质书写借用申请、借条、使用转让情况说明等,这样做以后,不仅效率低、程序多且复杂,时常造成了资产管理的混乱,给教师、学院、部门、资产管理部门带来了困扰。设计与实现一个高校的资产管理系统,有利于改变传统的资产管理方式,解决高校在资产管理过程中的问题,实现资产管理的系统化、信息化,提高了管理水平和工作效率[2]。
以昆明幼儿师范高等专科学校的资产管理过程为实例,使用统一建模语言(UML)对系统进行需求分析与系统设计,使用ASP.NET 实现系统开发、使用SQL Server实现数据库构建,运行于Web上。
在学校的资产管理过程中,先把资产入库,入库后,根据部门或学院的需求将资产进行分配,再由实际使用人向部门或学院提出使用申请,部门或学院根据实际情况来审核实际使用人的申请。如果使用者出现了岗位调动或其他情况,再将设备归还至部门或学院。
根据学校实际的资产管理过程,设计系统用例图如图1所示。
图1 系统用例图
图2 系统总体类图
图3 系统活动图
资产管理系统中共有3 位参与者:资产处管理人员、学院部门资产管理人员、资产使用人,这3位参与者是教师用户参与者的子类,继承父类的属性和方法。资产管理人员能够进行资产入库并把资产分配至部门或学院。资产使用人可对资产提出使用申请;学院部门资产管理人员能够接收资产处分配的资产并对资产使用人的申请进行审核。
类图是面向对象分析与设计方法的重要表现形式,用于描述系统的静态模型,每个类由三个部分组成:类名、属性、方法。
资产管理系统由7个类构成,分别是教师用户类、学院部门类、学院部门资产管理人员类、资产处管理人员类、资产使用人员类、资产信息类和资产使用记录类。部门学院资产管理人员类、资产处管理人员类、资产使用人员类与教师用户类之间是继承关系;教师用户类与部门学院类之间是聚合关系;部门学院资产管理人员类、资产处管理人员与资产信息类之间是依赖关系;资产使用人员类、资产处管理人员类与资产使用记录类也是依赖关系;资产使用记录类与资产信息类是关联关系。
UML状态图是UML中对系统的动态进行建模的表示方法[3],能够描述一个特定对象的所有可能的状态和触发状态转移的条件[4]。系统中,资产的状态是在变化的,主要有4种状态:“未分配”“分配至部门学院”“申请中”“使用中”,具体的状态变化如下所示:
资产处进行资产入库操作,入库后如果未将资产分配至部门或者学院则资产的状态为“未分配”;把入库的资产分配至部门或者学院,部门或者学院对资产进行接收审核,如果不属于部门或者学院的资产则不接收,由资产处重新进行分配;如果属于部门或者学院的资产则完成接收,资产状态调整为“分配至学院”。如果资产状态为“分配至学院”,可由部门或者学院的教职工对接收的资产进行使用申请,申请完成后,资产的状态调整为“申请中”,在该状态下,部门或者学院的其他教职工就不能对该资产进行重复的使用申请。部门或者学院对使用申请进行审批,同意使用申请则形成资产使用记录,把资产的状态调整为“使用中”,不同意使用申请则调整资产的状态为“分配至部门学院”,可供其他教职工申请使用。
数据库技术是一种通过计算机技术实现数据存储、管理和处理的技术[5],通过数据库技术能够对数据进行快速的插入、更新、删除和检索。
E-R 图是设计关系型数据库的主要表现形式。使用方框来表示实体,菱形来表示实体的关系。E-R图如图4所示。图4是系统的主要E-R图,描述了数据实体之间的关系。每个部门或学院都有多位教师,因此教师与学院部门之间是1对多的关系。每个部门或学院都有多种资产,因此,部门或学院与资产之间是1对多的关系。每种资产都可能被多个教师使用,也就会产生多条资产使用记录,因此,资产信息与教师、资产使用信息之间都是1对多的关系。每个资产使用者都会产生多条资产使用记录,因此,它们之间存在1对多的关系。
图4 系统E-R图
表1 学院部门信息表
表2 教师信息表
表3 资产信息表
表4 资产使用记录信息表
系统使用ASP.NET(C#) 语言进行开发,运行在Web上。
资产入库时,向数据库PropertyInfo表中插入一条资产信息,同时可将该项资产直接分配至部门学院,并调整资产的状态为“分配至部门学院”(用数字1表示)。
string PropertyInfoAdd = string.Format("insert into[PropertyInfo]values('{0}','{1}','{2}','{3}',{4},'{5}',{6})",propertyID,propertyName,collegeID,useTo,price,notes,1);
int i = SQLDB.ExecuteSQL(connectionString, PropertyInfoAdd);
if(i>0){MessRes.Text="已完成资产入库,并且将资分配至部门学院。"; }
else MessRes.Text="资产入库失败,请检查数据后再试";
资产分配至部门学院后,当资产状态为“分配至部门学院”(用数字1表示),则该项资产可由部门或学院教职工申请使用,向数据库使用记录表(RecordInfo)中插入一条使用记录,同时将资产状态调整为“被申请中”(用数字2表示),处于该状态的资产将不能被其他教职工申请。
string recordInfoAdd = string.Format("insert into RecordInfo](TeacherID,PropertyID,BorrowedReason,BorrowedTime) values({0}, {1}, '{2}', GETDATE())", teacherID,propertyID,borrowedReason);
int i = SQLDB.ExecuteSQL(connectionString, recordInfoAdd);//资产使用人向部门学院申请资产,产生使用记录。
if(i >0) { string propertyInfoStatus=string.Format("update PropertyInfo set Status={0} where PropertyID='{1}'",2,propertyID); //将资产信息的状态由“分配至部门学院”调整为“申请中”。
if (SQLDB.ExecuteSQL(connectionString, property-InfoStatus)>0)
{ MessRes.Text = "已向部门学院申请了该项资产,等待审核。"; }
else MessRes.Text = "申请失败,请检查数据后再试"; }
部门学院的教职工对资产进行使用申请后,申请者所属部门学院的资产管理人员进行审核,如果审核通过,则将资产状态设置为“已借出”(用数字3表示),否则将资产状态设置为“已分配至部门学院”(用数字1表示),可供其他教职工重新申请使用。
string applyForApprovalInfo = string.Format("update RecordInfo set applyForApproval={0} where RecordID={1}",applyForApproval,recordID);
int i=SQLDB.ExecuteSQL(connectionString,apply-ForApprovalInfo);//部门学院资产管理人员对使用人的申请进行审核,如果同意applyForApproval则为1,不同意则为0。
if(i >0){
if (applyForApproval==1) { propertyStatus = 3; }//
当部门学院资产管理员同意资产使用申请时,将资产状态设置为“已借出”
else {propertyStatus=1;}//当部门学院资产管理员不同意资产使用申请时,将资产状态设置为“已分配至部门学院”
string upPropertyStatus = string.Format("update PropertyInfo set [Status]={0} where PropertyID='{1}'",propertyStatus, propertyID); //将资产信息的状态调整为“已借出”或是“已分配至部门学院”。
if (SQLDB.ExecuteSQL(connectionString, upPropertyStatus)>0)
{ MessRes.Text = "已审核该项申请并更新资产状态。"; }
else MessRes.Text="更新资产状态失败,请稍后再试"; }
else MessRes.Text="审核失败,请稍后再试";
文章以昆明幼儿师范高等专科学校为例,分析、设计与实现了高校资产管理系统,在需求分析阶段使用用例图描述系统的功能模型;在系统的设计阶段使用类图描述了系统存在的主要类和它们之间存在的关系;使用状态图描述资产管理的主要业务流程和资产状态的迁移和变化;最后,使用SQL Server实现了数据库,使用ASP.NET完成了系统的开发并运行于Web上。通过对高校资产管理系统的分析、设计与实现,能够帮助学校改变传统的管理方法,提高资产管理的准确性和规范性,进一步推进学校的信息化发展。