高校固定资产管理系统方案
固定资产管理系统建设方案

固定资产管理系统建设方案固定资产是企业非常重要的资产之一,对企业的经营和发展起着重要的支撑作用。
因此,建立一套完善的固定资产管理系统对于企业的长期发展具有重要意义。
本文将详细阐述固定资产管理系统建设方案。
一、系统建设目标1.提高资产利用率:通过完善的固定资产管理系统,实现资产信息的集中化管理和全生命周期的跟踪,从而提高固定资产的利用率,减少浪费。
2.提高资产管理效率:通过引入自动化的流程管理和数据分析功能,提高固定资产管理工作的效率,减少人力和时间成本,并减少管理风险。
3.加强资产安全保障:通过建立完备的资产出入库流程和安全控制机制,减少盗窃、失窃等风险,确保固定资产的安全。
4.满足财务和监管要求:通过建立规范的账务处理和报表生成功能,确保财务数据的准确性和及时性,满足监管部门的要求。
二、系统建设内容1.资产管理模块:包括资产信息登记、归档、处置、巡检、清查等功能,实现资产的全生命周期管理。
通过条形码或RFID技术实现资产的标识和跟踪,并提供资产位置、状态、保养等详细信息。
2.流程管理模块:建立资产出入库、报废、修理等流程,并通过系统自动化流转,实现流程的规范化和高效化。
包括流程审批、通知提醒、流程监控等功能,提高资产管理效率和流程控制能力。
3.安全控制模块:建立资产安全管理制度,包括人员的权限管理、资产的安全保管、资产的防盗防火等措施。
通过系统的报警功能和监控措施,提高固定资产的安全性。
4.财务管理模块:包括固定资产的购置、折旧、清理等财务处理功能。
通过与财务系统的对接,实现资产财务数据的准确和及时传递,满足财务部门的要求。
5.报表分析模块:通过系统生成各种资产管理相关的报表,包括资产总值、使用率、折旧费用、维修费用等指标的统计和分析,为决策提供依据。
三、系统建设步骤1.需求分析:与企业相关部门紧密合作,了解业务流程和需求,明确系统需求和功能。
2.系统选型:根据需求分析结果,选择适合企业的固定资产管理系统软件,考虑系统的稳定性、易用性和扩展性。
基于RFID技术的高校固定资产管理系统设计

a l ot o f ma n po we r a nd ma t e r i a l r e s o u r c e s i s l i k e l y t 0 b e p ut i n.Th i s p a pe r i n t r od u c e d b y u s i ng o fR FI D t e c h no l o g y t o t h e ma na g e me n t of i f x e d a s s e t s i n h i g he r e d uc a t i on s y s t e m n ot o n l y C a D r e a d f a s t a nd s t or e i n f o r ma t i o n mo r e f a s t a n d c on v e n i e nt ,bu t a l s o c a n i d e n t i f y mu l t i p l e a s s e t t a g i n l on g d i s t a nc e a n d i n c r e a s e ix f e d a s s e t s ma n a g e me n t l e ve l a nd wor k e f ic f i e n c y . K ey w or d s R FI D t e c h n ol o y; g ix f e d a s s e t s ; ma n a ge me nt s y s t 自动化 的管理 方式虽然在一定程度上提
高了固定 资产管理 的效率,但在进行资产清查、实验室搬迁 、
设备转移和报废时仍 需要 人工核对设备数据 ,极大地加重 了
管 理 人 员 的 负 担 , 同 时也 增加 了设 备 管 理 的难 度 ,常 常造 成
固定资产管理系统建设方案

固定资产管理系统建设方案固定资产是企业运营的重要组成部分,其管理效率直接影响着企业的资产运营和经济效益。
作为一名有着十年方案写作经验的大师,下面是我为固定资产管理系统建设的一份方案。
一、项目背景随着企业规模的不断扩大,固定资产种类繁多、数量庞大,手工管理方式已经无法满足现代企业管理的需求。
为了提高固定资产管理的效率,降低管理成本,实现资产信息的实时监控,企业迫切需要建设一套固定资产管理系统。
二、系统目标1.提高固定资产管理的效率,实现资产信息的快速查询、统计、分析。
2.规范固定资产管理流程,确保资产安全、合规。
3.降低管理成本,提高资产利用率。
4.实现资产信息的实时监控,为决策提供数据支持。
三、系统功能模块1.基础信息管理包括资产类别、资产清单、资产卡片、部门信息、人员信息等基础数据的录入、查询、修改、删除等功能。
2.资产采购管理实现资产采购申请、审批、合同签订、验收、付款等环节的在线操作,确保采购过程的规范、透明。
3.资产使用管理对资产的使用状态进行监控,包括资产领用、归还、维修、报废等环节的在线操作,确保资产使用的合理、合规。
4.资产折旧管理根据企业会计制度,自动计算资产折旧,折旧凭证,便于财务部门进行核算。
5.资产盘点管理通过定期或不定期的资产盘点,确保资产数量、价值的准确性,防止资产流失。
6.资产报表管理各类资产报表,包括资产清单、资产统计表、资产折旧表等,便于企业领导和管理人员了解资产状况。
7.系统权限管理实现对系统用户、角色、权限的配置,确保系统的安全性和稳定性。
四、系统实施策略1.项目筹备明确项目目标、范围、预算、时间表等,成立项目组,进行项目筹备。
2.需求分析与各部门沟通,了解固定资产管理的现状和需求,编写需求分析报告。
3.系统设计根据需求分析,进行系统架构设计、数据库设计、界面设计等。
4.系统开发按照设计文档,进行系统编码、测试、调试,确保系统功能完善、性能稳定。
5.系统部署与培训将系统部署到服务器,进行数据迁移、系统培训,确保用户能够熟练使用系统。
固定资产管理系统建设方案设计

固定资产管理系统建设方案设计固定资产管理系统建设方案一、项目概述一)建设目标固定资产具有价值高、使用周期长、使用地点分散、管理难度大等特点。
传统的固定资产管理模式无论从质量上还是效率上,都难以适应经营管理新形式的需要。
因此,本次建设的固定资产管理系统的主要目标是通过条码技术,改变固定资产清查数据的采集方式,提高清查效率。
同时,全方位准确监管固定资产实物从购置、领用、转移、盘点、维修、报废等方面,使企业更轻松、更有效地管理固定资产。
各级相关管理人员及有关领导可快速查询、统计固定资产情况,以实现资源合理配置,并为决策提供依据。
二)建设原则1.易使用性原则系统将提供友好的用户操作界面,使得系统操作方便、快速、简捷,方便最终用户的使用。
2.可靠性原则为了提供可靠的Web服务,建立有效的数据备份、恢复机制,系统采用高稳定性、高可用性的软硬件产品,保证系统稳定无误地正常运转。
3.安全性原则系统采用全面的权限管理机制,确保固定资产数据库的安全管理。
对于访问权限机制采用基于角色和基于对象的权限管理模式。
4.先进性原则采用先进的主流技术路线和成熟可靠的技术,不仅选择先进的应用支撑平台,还考虑应用系统结构和应用设计的先进性,技术水平达到国内外同期同类系统的领先水平,并保证系统在今后一段时间不落后。
5.可扩展性原则随着系统的使用,用户需求可能会不断被激发出来,同时业务上的管理也将进一步深化,因此在系统设计上要考虑到可扩展性,为后续的深化扩展预留下空间。
二、系统建设内容以固定资产的生命周期为主要管理对象,以条形码为主线,对固定资产生命周期各个环节进行动态跟踪,并实现对固定资产价值的管理。
一)条形码管理系统提供条形码生成和打印功能。
新购固定资产后,由系统生成条形码,通过条形码打印机打印并粘贴于固定资产上,条形码上的内容可由用户设定。
固定资产盘点时,通过条形码识别器阅读条码信息,进行固定资产核查。
条形码识别器中的数据实时传输至计算机,实现数据的互联互通。
高校固定资产管理系统解决方案

作者简介 : 张申, 男, 天 津人 , 硕士 , 讲 师, 研 究方向: 计 算 机 科 学 与技 术 、 实 训 设备 管 理 、 管 理 系统 开发 。
2 .3 管理制度不 健全 有的规章 制度不健全 ,不能覆盖 管理活动 的方方 面面 ;
有 的管理 制度 过时 、 陈旧 , 不适 应新 的形式 ; 有的 空洞 , 无 实
质 性 内容和 可操作性 。 2 .4 管 理基础不规 范 管理基础 不规范集 中表 现在 : ( 1 ) 帐卡 不全 , 手 续不严 密 , 责任 不落 实 , 缺乏 严格 的 内 部 牵制制度 ; ( 2 )存在 大量帐 外资产 , 一些学 校资 产流 失现 象依 然存
资 产汇 总与分 析模 块 、 房屋 及土地 管理模 块 、 仪 器设 备 模块、 家具管 理模块 、 低值耐用 品管理模块 、 被服 装具管理 模 块、 机动车 辆管 理模块 、 图书 资料管 理模 块、 文物 管理模块 、 陈列 品管 理模块 、 软件管理 模块 、 植物及牲 畜管理模块 、 无形
工方法 为主管理 固定资产 。管理信息封 闭, 整 理、 沟 通 困难 。 管理效 率不高 。 3 .解 决 方 案
有些 学 校 , 有“ 轻 实物重 投 资 ” , “ 重建设, 重购买, 轻 管 理” 的错误认 识 , 没有 意识 到做 好教 学仪 器设 备 的管理对 学
校 的生存 和发展 的重 要性 , 没 有专 门的部 门, 专 人 去 管 理 相 关 的手续和 资产 。
在;
产管理部 门, 不 断提 出新 的要求 。 然而 , 固定 资产管理多年来
一
直是高校 管理 中的薄弱环节 ,基础 设施管理 不能达标 , 资
高校固定资产管理系统设计与实现

高校固定资产管理系统设计与实现设计目标:设计并实现一个高校固定资产管理系统,以便于高校管理人员更好、更有效地管理和使用固定资产。
该系统应能够支持资产信息的录入、资产清单的查询、资产领用与退库、固定资产巡检与维护、资产处置等功能。
设计思路:1. 系统架构设计系统架构应包括前端界面及后端程序,前端界面应该友好好活泼。
后端程序包括数据库设计、业务逻辑的设计及实现。
2. 数据库设计数据库应该设计成模块性高、数据冗余度低的结构。
应包括以下表:- 资产信息表:该表包括资产编号、名称、型号、规格、购买日期、所属单位等信息。
- 资产领用表:该表包括领用人、领用日期、归还日期等信息。
- 资产维护表:该表包括维护人、维护日期、维护内容等信息。
- 资产处置表:该表包括处置方式、价值、处置日期等信息。
3. 业务逻辑设计业务逻辑应该包括以下功能:- 资产信息录入:对固定资产的基本信息进行录入。
- 资产清单查询:对固定资产的列表进行查询。
- 资产领用与退库:对使用固定资产的人员进行管理。
- 固定资产巡检与维护:对资产进行巡检和维护。
- 资产处置:对资产进行处置,应该包括查询、申请、审核、销售等功能。
4. 系统实现系统实现应该基于JavaEE技术栈,使用Spring Boot作为框架,MySQL作为数据库。
前端应该使用Vue.js框架。
总结:本文详细介绍了高校固定资产管理系统的设计和实现思路,包括系统架构设计、数据库设计、业务逻辑设计和系统实现。
通过该系统的实施,可以提高高校固定资产的管理水平和使用效率,实现固定资产的有效管理与利用。
固定资产管理系统 方案

固定资产管理系统方案1. 引言固定资产是企业重要的财务资源之一,对企业的经营和发展具有重要作用。
为了更加高效地管理固定资产,降低资产管理成本,提升企业绩效,本文提出了固定资产管理系统的方案。
2. 系统概述固定资产管理系统是一个集成的软件系统,旨在帮助企业实现对固定资产的全过程管理,包括资产的采购、领用、报废、维修等环节。
3. 系统功能3.1 资产管理该功能模块主要涉及资产的注册、分类、编号、入库等操作。
系统将对每个资产进行唯一编号,并记录其基本信息,如名称、规格、数量、购入日期、使用部门等。
通过该功能模块,企业可以方便地查询和统计资产的信息。
3.2 领用管理该功能模块针对企业内部资产领用的流程进行管理。
领用人员可以通过系统提交领用申请,系统将自动核对申请人的权限和库存情况。
经过审批后,系统会自动更新库存信息,并生成相应的领用记录。
3.3 维修管理该功能模块用于记录资产的维修情况。
当资产出现故障或需要维修时,维修人员可以通过系统提交维修申请。
系统将根据资产的状态和维修人员的权限,安排相应的维修工作。
维修完成后,系统将自动更新资产的状态,并记录维修的时间和费用。
3.4 报废管理该功能模块用于管理资产的报废流程。
当资产达到使用寿命或无法修复时,管理员可以通过系统提交报废申请。
系统将根据资产的状态和报废规则,自动核实申请,并更新资产的状态。
此外,系统还提供报废证明的生成和打印。
3.5 统计分析通过系统的统计分析功能,企业可以得到各种固定资产的相关数据报表,如资产库存报表、领用统计报表、维修统计报表等。
这些报表可以帮助企业进行资产的盘点和绩效评估,为企业的决策提供支持。
4. 系统特点•用户友好性:系统采用直观的界面设计,用户可以方便地完成各种操作。
•灵活扩展:系统采用模块化设计,方便根据企业的实际需求进行功能的扩展和定制。
•安全性:系统实现了严格的权限管理,确保只有授权人员可以进行敏感操作,如报废和维修。
固定资产管理系统设计方案

固定资产管理系统设计方案一、系统概述固定资产是企业重要的财务和经营资源,管理好固定资产对企业的发展具有重要意义。
为了提高企业固定资产管理的效率和准确性,设计开发一套固定资产管理系统。
该系统主要实现固定资产的登记、归类、评估和统计等功能,以及资产折旧、维修、报废和处置等过程的管理,以便实现对固定资产的全生命周期管理。
二、系统需求1.登记:实现对固定资产的基本信息登记,包括资产名称、型号、规格、数量、购置时间和购置金额等。
2.归类:将固定资产按照不同的类别进行归类,方便管理和统计。
3.评估:对固定资产进行评估,计算其当前价值,并实时更新。
4.统计:根据不同的分类指标,实现对固定资产的统计分析,如按照分类、购置时间等进行查询。
5.折旧:自动计算固定资产的折旧费用,并进行相关账务处理。
6.维修:记录固定资产的维修和保养情况,及时反馈资产的使用情况。
7.报废和处置:对固定资产进行报废和处置处理,包括出售、损毁或报废等。
8.权限管理:实现不同用户权限的管理,以确保系统的安全性和稳定性。
三、系统设计1.系统架构:采用B/S架构,即浏览器/服务器架构,用户通过浏览器访问系统,后台运行在服务器端。
2. 技术选型:前端使用HTML、CSS和JavaScript进行页面设计和交互操作;后端采用Java语言开发,使用Spring MVC框架实现业务逻辑处理;数据库采用MySQL进行数据存储;服务器采用Tomcat进行部署。
3.数据库设计:设计固定资产表,包括资产编号、名称、类别、购置时间、购置金额、当前价值等字段;设计维修记录表,包括资产编号、维修时间、维修内容等字段;设计报废记录表,包括资产编号、报废时间、报废原因等字段。
4.页面设计:根据系统需求,设计资产登记、归类、评估和统计等页面,并实现页面间的跳转和数据交互。
5.后台逻辑设计:根据系统需求,设计资产登记、归类、评估和统计等功能的业务逻辑,并实现与数据库的交互和数据处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮电大学理学院信息与计算科学专业集中实践报告题目:《高校固定资产管理系统》指导老师:永红________________ 专业:数理科学与信息技术_____班级: 1121302、1121301______学号: 2013213055、2013213058_姓名:何锐、周海渝___________成绩:________________________20 16 年 06 月 16 日一、需求分析随着社会的发展,人们的生活节奏不断加快。
为了节约宝贵的时间,高校固定资产管理系统应运而生。
在管理固定资产的过程中,需要修改、更新大量的表单。
如果使用计算机来辅助填写及保存相应的记录,则能大大提高固定资产管理的效率。
因此,需要开发一个固定资产管理系统。
该系统应该支持快速录入关键信息,例如,固定资产的借出、归还等。
这些信息需要被保存在数据库中以便以后查看。
通过对程序需要实现的功能进行分析,完成数据库和程序界面的设计。
通过对高校固定资产管理系统的了解,要求其具备如下功能。
1.登录系统登录系统可以有效地保障系统的安全性,防止非法用户使用系统。
只有输入合法的用户名和密码才能够正常登录,否则不能进行登录。
2.添加信息用户进入系统后,通过对“资产信息管理”菜单中的“类别管理”菜单项,可以进行大类(总的分类)的添加。
同样,在其他几个菜单中也可进行信息添加。
3.删除信息用户进入系统后,通过对“账户管理”菜单中的“删除”菜单项,可以进行的删除。
同样,在其他几个菜单中也可进行信息删除。
4.修改信息考虑到操作人员录入的失误,需要提供信息的修改功能。
通过“职员管理”菜单中的“修改职员”菜单项,可以对职员信息进行修改。
同样,在其他几个菜单中也可进行信息修改。
5.查询信息用户进入系统后,可以通过“按编号查”、“按类别查”、“按使用者查”的不同类别进行信息查询。
6.添加用户进入系统后,可以通过“账户管理”菜单的“添加用户”菜单项添加新的用户,并为其指定密码。
一旦新用户添加成功,以后就可以通过该用户进入系统进行操作。
7.修改密码为了提高系统的安全性,通常建议管理员定期修改密码。
使用“账户管理”菜单的“修改密码”菜单项可以进行密码的修改。
二、总体设计1.通过对系统进行深入的分析得知,本系统需要实现以下目标。
⑴系统管理⑵资产信息管理⑶账户管理⑷职员管理⑸资产还借管理⑹帮助⑺查询按编号查询:按类别查询:按使用者查询:⑻资产信息分类显示⑼显示当前时间2.构建开发环境⑴操作系统:windows7⑵JDK版本:jdk1.8.0_31⑶IDE版本:Eclipse⑷开发语言:Java⑸后台数据库:SQL Server 2008三、控制类设计(部分类代码)在cn.tsc.asset.contrl包中1.ConnectionManager控制类作用:数据库连接代码:package.tsc.asset.contrl;import java.sql.DriverManager;import java.sql.Connection;import java.sql.CallableStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.JOptionPane;/*** 控制类--数据库连接管理**//*** author pengwenfu**/public final class ConnectionManager {// 驱动类private static final String DRIVER_CLASS = ".microsoft.jdbc.sqlserver.SQLServerDriver";// 数据库地址private static final String DATABASE_URL = "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName = Assets";// 数据库登录名private static final String USER_NAME = "sa";// 密码private static final String PASSWORD = "1234";/*** 构造方法禁止实例化*/private ConnectionManager() {}/*** 取得数据库连接** return*/public static Connection getConnection() {try {Class.forName(DRIVER_CLASS);Connection con = DriverManager.getConnection(DATABASE_URL,USER_NAME, PASSWORD);return con;} catch (ClassNotFoundException e) {e.printStackTrace();JOptionPane.showMessageDialog(null, "没有找到连接数据库所需的驱动类!", "错误",JOptionPane.ERROR_MESSAGE);return null;} catch (SQLException e) {e.printStackTrace();JOptionPane.showMessageDialog(null, "数据库连接错误!请核实配置文件是否有误!", "错误",JOptionPane.ERROR_MESSAGE);return null;}}/*** 关闭数据库连接** param conn*/public static void closeConnection(Connection con) {try {if (con != null && !con.isClosed()) {con.close();}} catch (SQLException e) {e.printStackTrace();}}/*** 关闭数据库操作对象** param cst*/public static void closeStatement(CallableStatement cst) { try {if (cst != null) {cst.close();}} catch (SQLException e) {e.printStackTrace();}}/*** 关闭记录集** param rs*/public static void closeResultSet(ResultSet rs) { try {if (rs != null) {rs.close();rs = null;}} catch (SQLException e) {e.printStackTrace();}}}2.DBWorker控制类作用:数据库操作代码:package.tsc.asset.contrl;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import.tsc.asset.entity.Asset;import.tsc.asset.entity.Category;import.tsc.asset.entity.Employee;import.tsc.asset.entity.Lent;import.tsc.asset.entity.Operator;import.tsc.asset.entity.Returned;import.tsc.asset.entity.Subcate;/*** 控制类--数据库操作**//*** author pengwenfu**/public class DBWorker {/*** 查找管理员信息** param name* 名称* param pwd* 密码* return*/public static Collection selOperator(String name, String pwd,OperatorSelType inNamePwd) {// 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个操作员列表Collection<Operator> opc = new ArrayList<Operator>();try {String proc = "{call proc_selOperator '" + name + "','" + pwd+ "','" + inNamePwd + "'}";// 取得操作员表数据cst = con.prepareCall(proc);rs = cst.executeQuery();while (rs.next()) {Operator op = new Operator();op.setName(rs.getString("Oname"));op.setPwd(rs.getString("Opwd"));opc.add(op);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return opc;}/*** 查找职员信息** param param* 或职务* param selType* 查找类型* return*/public static Collection selEmp(String param, EmployeeSelType selType) {// 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个职员列表Collection<Employee> empc = new ArrayList<Employee>();try {String proc = "{call proc_selEmp '" + param + "','" + selType+ "'}";// 取得职员表数据cst = con.prepareCall(proc);rs = cst.executeQuery();while (rs.next()) {Employee emp = new Employee();emp.setId(rs.getInt("Eid"));emp.setName(rs.getString("Ename"));emp.setSex(rs.getString("Esex"));emp.setAge(rs.getInt("Eage"));emp.setPosition(rs.getString("Eposition"));emp.setRemark(rs.getString("Eremark"));empc.add(emp);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return empc;}/*** 查找大类信息** param name* 大类名* param selType* 查找类型* return*/public static Collection selCate(String name, CateSelType selType) { // 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个类别列表Collection<Category> cc = new ArrayList<Category>();try {// 取得类别表数据cst = con.prepareCall("{call proc_selCate '" + name + "','"+ selType + "'}");rs = cst.executeQuery();while (rs.next()) {Category c = new Category();c.setId(rs.getInt("Cid"));c.setName(rs.getString("Cname"));cc.add(c);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return cc;}/*** 查找子类信息** param param* 存储过程参数* param selType* 查找类型* return*/public static Collection selSubcate(String param, SubcateSelType selType) {// 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个子类列表Collection<Subcate> scc = new ArrayList<Subcate>();try {// 取得子类表数据cst = con.prepareCall("{call proc_selSubcate '" + param + "','"+ selType + "'}");rs = cst.executeQuery();while (rs.next()) {Subcate sc = new Subcate();sc.setId(rs.getInt("Sid"));sc.setName(rs.getString("Sname"));sc.setCateId(rs.getInt("SCid"));scc.add(sc);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return scc;}/*** 查找资产信息** param procName* 存储过程名* param param* 存储过程参数* return*/public static Collection selAsset(String proc, String param) {// 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个资产信息列表Collection<Asset> ac = new ArrayList<Asset>();try {// 取得资产信息表数据cst = con.prepareCall("{call " + proc + " '" + param + "'}");rs = cst.executeQuery();while (rs.next()) {Asset a = new Asset();a.setId(rs.getInt(1));a.setName(rs.getString(2));a.setCateName(rs.getString(3));a.setSubcateName(rs.getString(4));a.setModel(rs.getString(5));a.setPrice(rs.getDouble(6));a.setPurDate(rs.getString(7));a.setStatus(rs.getString(8));a.setUseBy(rs.getString(9));a.setRemark(rs.getString(10));ac.add(a);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return ac;}/*** 查找借出资产信息** param param* 存储过程参数* param selType* 查找类型* return*/public static Collection selLent(String param, LentSelType selType) {// 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个借出记录列表Collection<Lent> lc = new ArrayList<Lent>();try {// 取得借出记录表数据cst = con.prepareCall("{call proc_selLent '" + param + "','"+ selType + "'}");rs = cst.executeQuery();while (rs.next()) {Lent l = new Lent();l.setId(rs.getInt("Lid"));l.setAssetId(rs.getInt("LAid"));l.setEmpId(rs.getInt("LEid"));l.setOperatorName(rs.getString("LOname"));l.setDate(rs.getString("Ldate"));l.setPurpose(rs.getString("Lpurpose"));l.setRemark(rs.getString("Lremark"));l.setAssetName(rs.getString("Aname"));l.setModel(rs.getString("Amodel"));l.setSubcateName(rs.getString("Sname"));l.setUseBy(rs.getString("Ause_by"));lc.add(l);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return lc;}/*** 查找归还记录** return*/public static Collection selReturned() {// 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;// 建一个归还记录列表Collection<Returned> rc = new ArrayList<Returned>();try {// 取得归还记录表数据cst = con.prepareCall("{call proc_selReturned}");rs = cst.executeQuery();while (rs.next()) {Returned r = new Returned();r.setId(rs.getInt("Rid"));r.setAssetId(rs.getInt("RAid"));r.setAssetName(rs.getString("RAname"));r.setUser(rs.getString("Ruse_by"));r.setLentDate(rs.getString("RLdate"));r.setReturnDate(rs.getString("Rdate"));r.setLentOname(rs.getString("RLOname"));r.setReturnOname(rs.getString("RROname"));r.setRemark(rs.getString("Rremark"));rc.add(r);}} catch (SQLException ex) {ex.printStackTrace();} finally {ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);}return rc;}/*** 修改记录:包括添加、删除、修改** param strProcInvoke* 调用存储过程的字符串* return*/public static int modifyRecord(String strProcInvoke) {Connection con = ConnectionManager.getConnection();try {return con.prepareCall("{call " + strProcInvoke + "}").executeUpdate();} catch (SQLException e) {e.printStackTrace();return 0;} finally {ConnectionManager.closeConnection(con);}}/*** 子类别查找类型** author Tom*/public enum SubcateSelType {BY_NAME, BY_CATE_NAME}/*** 大类别查找类型** author Tom*/public enum CateSelType {BY_NAME, BY_HAVE_SUBCATE, ALL}/*** 管理员名查找类型** author Tom**/public enum OperatorSelType {IN_NAME, IN_NAME_PWD}/*** 借出记录查找类型** author Tom**/public enum LentSelType {BY_OPERATOR_NAME, BY_EMPLOYEE_ID, BY_ASSET_ID, ALL }/*** 职员查找类型** author Tom**/public enum EmployeeSelType {BY_NAME, BY_POSITION, ALL}}四、实体类设计(部分类代码)在cn.tsc.asset.entity包中1.Asset实体类作用:定义资产信息代码:package.tsc.asset.entity;/*** 实体类--资产信息**/public class Asset {private int id;private String name;private String cateName;private String subcateName;private double price;private String model;private String purDate;private String status;private String useBy;private String remark;public String getCateName() {return cateName;}public void setCateName(String cateName) {this.cateName = cateName;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getModel() {return model;}public void setModel(String model) {this.model = model;}public String getName() {return name;}public void setName(String name) { = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getPurDate() {return purDate;}public void setPurDate(String purDate) { this.purDate = purDate;}public String getRemark() {return remark;}public void setRemark(String remark) { this.remark = remark;}public String getStatus() {return status;}public void setStatus(String status) { this.status = status;}public String getSubcateName() {return subcateName;}public void setSubcateName(String subcateName) { this.subcateName = subcateName;}public String getUseBy() {return useBy;}public void setUseBy(String useBy) {eBy = useBy;}}2.Employee实体类作用:定义职员信息代码:package.tsc.asset.entity;/*** 实体类--职员信息**/public class Employee {private int id;private String name;private String sex;private int age;private String position;private String remark;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getPosition() {return position;}public void setPosition(String position) {this.position = position;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}五、用户界面类设计(部分类代码)在erinterface包中1.MM用户界面类作用:生成主界面代码:erinterface;// download by import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import ponentAdapter;import ponentEvent;import java.io.File;import java.util.Collection;import java.util.Timer;import javax.swing.BorderFactory;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode;import.tsc.asset.contrl.DBWorker;import.tsc.asset.contrl.DateTimeView;import.tsc.asset.contrl.ImageGetter;import.tsc.asset.contrl.MenuFactory;import.tsc.asset.contrl.WindowCenter;/*** 用户界面类--主界面**/public class MM extends JFrame {private static final long serialVersionUID = 1L;// 树的要根结点public DefaultMutableTreeNode root = null;// 树面板public CategoryTreeView trp = null;// 表格面板public AssetTableView tap = null;// 表头public String[] head = { "资产编号", "资产名称", "大类名称", "子类名称", "资产型号", "价格","购入日期", "状态", "使用者", "备注" };// 查询面板private QueryView qp = null;// 左上面板:放查询面板private JPanel pnlCTop = null;// 左下面板:放树面板private JPanel pnlCBottom = null;// 右面板:放表格面板private JPanel pnlCRight = null;// 高度偏移量(和菜单栏和状态栏的高度之和有关)private final int HEIGHT_OFFSET = 80;// 显示当前时间private DateTimeView dtv = null;/*** 构造方法** param title* 窗口标题*/public MM(String title) {super(title);try {setDefaultCloseOperation(EXIT_ON_CLOSE);init();} catch (Exception e) {e.printStackTrace();}}/*** 初始化窗口** throws Exception*/private void init() throws Exception {JPanel pnlCenter = new JPanel();JLabel lblStatusBar = new JLabel(" ");dtv = new DateTimeView(lblStatusBar);Timer timer = new Timer();qp = new QueryView(220, 220);tap = new AssetTableView(570, 520);root = new DefaultMutableTreeNode("高校固定资产管理系统--类别");pnlCTop = new JPanel();pnlCBottom = new JPanel();pnlCRight = new JPanel();trp = new CategoryTreeView(220, 300);pnlCenter.setLayout(null);pnlCBottom.setLayout(null);pnlCRight.setLayout(null);pnlCTop.setBounds(0, 0, qp.getWidth(), qp.getHeight());pnlCBottom.setBounds(0, qp.getWidth(), trp.getWidth(),trp.getHeight());pnlCRight.setBounds(qp.getWidth(), 0, tap.getWidth(),tap.getHeight());// 设置trp面板的宽高等于pnlCBottom面板的宽高trp.setBounds(0, 0, pnlCBottom.getWidth(),pnlCBottom.getHeight());// 设置tap面板的宽高等于pnlCRight面板的宽高tap.setBounds(0, 0, pnlCRight.getWidth(),pnlCRight.getHeight());// 添加大类结点trp.addNodes(trp.tree, root, trp.getNodes());// 设置树模型trp.setTreeModel(trp.tree, root);// 设置表模型tap.setTableModel(tap.table, DBWorker.selAsset("proc_selAsset", "all"),head);setIconImage(ImageGetter.getImage("AMSConfiguration" +File.separator+ "img" + File.separator + "mainlogo.gif"));pnlCTop.add(qp);pnlCBottom.add(trp);pnlCRight.add(tap);pnlCenter.add(pnlCTop);pnlCenter.add(pnlCBottom);pnlCenter.add(pnlCRight);setJMenuBar(new MenuFactory(this).buildMenuBar());lblStatusBar.setBorder(BorderFactory.createEtchedBorder());lblStatusBar.setFont(new java.awt.Font("Dialog",java.awt.Font.PLAIN,12));// 开始每隔一秒显示时间一次timer.scheduleAtFixedRate(dtv, 0, 1000);getContentPane().add(pnlCenter, BorderLayout.CENTER);getContentPane().add(lblStatusBar, BorderLayout.SOUTH);setSize(800, 600);// 居中显示窗口WindowCenter.showCenter(this);/* 树事件处理 */trp.tree.addTreeSelectionListener(new TreeSelectionListener() {public void valueChanged(TreeSelectionEvent e) {DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.getPath().getLastPathComponent();if (node.isRoot()) {// 如果用户单击根结点,显示所有资产信息tap.setTableModel(tap.table,DBWorker.selAsset("proc_selAsset", "all"), head);} else if (node.isLeaf() && node.getParent() == node.getRoot()) {// 如果用户单击了根结点下的叶了结点(大类结点),显示指定子类别的资产信息,并且给其添加子结点// 给node添加子结点trp.addNodes(trp.tree, node,trp.getSubNodes(node.toString()));// 显示指定大类别的资产信息tap.setTableModel(tap.table,DBWorker.selAsset("proc_selAssetInCate", node.toString()), head);} else {// 如果用户单击子类结点// 显示指定子类别的资产信息tap.setTableModel(tap.table,DBWorker.selAsset("proc_selAssetInCate",node.toString()), head);}}});/* 窗口宽高改变事件处理 */addComponentListener(new ComponentAdapter() {// 窗口改变大小时public void componentResized(ComponentEvent e) {// pnlCTop的宽高保持不变pnlCTop.setBounds(0, 0, pnlCTop.getWidth(), pnlCTop.getHeight());// pnlCBottom的宽度保持不变,高度由窗口高度而定pnlCBottom.setBounds(0, pnlCTop.getHeight(), pnlCBottom.getWidth(), getHeight() - pnlCTop.getHeight());// pnlCRight的宽高由窗口宽高而定(到底为什么要减10还没弄出来)pnlCRight.setBounds(pnlCTop.getWidth(), 0, getWidth()- pnlCTop.getWidth() - 10,getHeight() - HEIGHT_OFFSET);// trp随着pnlCBottom宽高的改变而改变trp.setBounds(0, 0, pnlCBottom.getWidth(), pnlCBottom.getHeight());// tap随着pnlCRight宽高的改变而改变tap.setBounds(0, 0,pnlCRight.getWidth(), pnlCRight.getHeight());// trp.scp随着trp宽高的改变而改变宽高trp.scp.setBounds(trp.WIDTH_OFFSET / 2, 0, trp.getWidth()- trp.WIDTH_OFFSET, trp.getHeight()- trp.HEIGHT_OFFSET);// 改变trp.tree的状态trp.tree.setBounds(0, 0, 0, 0);// tap.scp随着tap宽高的改变而改变宽高tap.scp.setBounds(0, 0, tap.getWidth(),tap.getHeight());// 改变tap.table的状态tap.table.setBounds(0, 0, 0, 0);/* 待解决方案:当窗口缩小到一定宽高时限制继续缩小*/}});/* 按编号查按钮事件处理 */qp.btnById.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// 获得用户输入的编号String id = qp.txtId.getText().trim();if (id.equals("")) {// 如果输入为空showTip(2, "请先填写编号!");} else {// 如果输入不为空Collection ac =DBWorker.selAsset("proc_selAssetInAid", id);if (ac.size() > 0) {// 如果查到tap.setTableModel(tap.table, ac, head);} else {// 如果没有查到showTip(2, "没有查到任何信息!");}}}});/* 按类别查按钮事件处理 */qp.btnByCate.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// 获得用户输入的类别名String cate = qp.txtCate.getText().trim();if (cate.equals("")) {showTip(2, "请先输入部分或完整的类别名!");} else {Collection ac =DBWorker.selAsset("proc_selAssetInCate",cate);if (ac.size() > 0) {// 如果查到tap.setTableModel(tap.table, ac, head);} else {// 如果没有查到tap.clearTable(tap.table);showTip(2, "没有查到任何信息!");}}}});/* 按使用者查按钮事件处理 */qp.btnByUser.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// 获得用户输入的使用者String name = qp.txtUser.getText().trim();if (name.equals("")) {// 如果输入为空showTip(2, "请先填写使用者!");} else {// 如果输入不为空Collection ac =DBWorker.selAsset("proc_selAssetInUser",name);if (ac.size() > 0) {// 如果查到tap.setTableModel(tap.table, ac, head);} else {// 如果没有查到showTip(2, "没有查到任何信息!");}}}});}/*** 弹出提示窗口** param type* 提示类型:0错误,1警告,2提示* param mess* 提示信息*/private void showTip(int type, String mess) {switch (type) {case 0:JOptionPane.showMessageDialog(this, mess, "错误",JOptionPane.ERROR_MESSAGE);break;case 1:JOptionPane.showMessageDialog(this, mess, "警告",JOptionPane.WARNING_MESSAGE);break;case 2:JOptionPane.showMessageDialog(this, mess, "提示",RMATION_MESSAGE);break;default:break;}}}六、界面截图1.登陆界面2.主界面3.资产信息管理大类:子类:4.账户管理5.职员管理6.资产还借管理。