首页 > 数据库 >java+sql企业固定资产管理系统

java+sql企业固定资产管理系统

时间:2024-05-30 12:03:05浏览次数:26  
标签:java 管理系统 assetid 资产 固定资产 rset sql conn pstmt

摘要: 本文主要介绍的是固定资产管理系统的整个设计过程。第1章的绪论包括选题的背景,目的和意义,国内外现状;第2章平台简介包括JBuilder2005和SQL Server数据库的介绍;第3章系统分析,需求分析,数据流与数据字典,功能需求;第4章系统设计部分包括系统总体设计,功能模块设计,数据库设计;第5章是系统实现部分包括程序设计,各个功能模块的实现,系统的测试;论文最后为结论、致谢、参考文献。

关键词:固定资产管理   SQL Server数据库   C/S结构

3.1 需求分析

本系统的主要功能如下:

1、管理员登录

2、固定资产信息管理

3、人员信息管理

4、资产的领用

5、资产的归还

6、资产信息浏览和查询

3.2功能需求

3.2.1 管理员登录

要使用本系统必须先登录,并且只有固定资产管理员能够登录。登录的时候需要填写正确的用户名和密码,管理员可以修改自己的密码。

系统允许有有多个固定资产的管理员,每个管理员的权限相同。

3.2.2固定资产信息管理

固定资产信息管理又分为:

    • 固定资产类别管理

固定资产的类别在录入资产信息之前就定义好,录入资产信息之后可以增加新的类别。

类别要求分为两级,如大类可以是办公外设、数码产品、计算机等;小类分为办公外设:传真机、复印机、打印机、其它;数码产品:数码相机、投影仪;计算机:笔记本电脑、台式机、服务器等。

类别应允许添加和删除操作。

    • 固定资产信息管理

资产的信息包括编号、名称、类别、型号、价值、购买日期、状态、使用者、备注等。

资产型号是文本信息,资产的状态分为:正常、维修、报废,使用者为空表示资产未被使用。

资产应允许执行添加、修改和删除操作。

3.2.3人员信息管理

这里的“人员”是指可能领用资产的人,人员的信息包括人员编号、姓名、职务和备注。

3.2.4资产的领用

已经登记的人员,可以领用固定资产,领用时需要记录的信息有:设备编号、领用日期、管理员、用途、备注。

只有状态为正常且使用者为空的资产才能被领用,在维修或者已经报废的资产不能够领用。

3.2.5资产的归还

资产使用完毕后要归还给管理员,归还时根据要依据领用时的记录来填写如下信息:归还日期、管理员等。

3.2.6资产信息浏览和查询

资产信息查询又可以分为:

    • 按资产类别浏览

按资产类别浏览资产信息,类别分成两级,要求能够显示大类和小类下面的资产情况、资产状况。

    • 查询资产信息

可以按资产编号、资产类别、使用者查询资产详细信息,按使用者查询显示该人员领用的所有资产。

4.2功能模块设计

根据需求文档,找出所有相关概念,并提炼成表格形式。见如下表格,也称为“概念清单”。一般来说,名词归为初级类、属性等信息;动词形成主要功能或者类的方法;短语形成业务逻辑或者条件限制

名称

词性

简要描述

固定资产

名词

大于2000的资产

职工

名词

资产类别

名词

分为大类和小类两层

借用

动词

某职工借用固定资产

归还

动词

某职工归还借用的固定资产

资产名称

名词

样式

名词

例如:包、箱。。。

价格

名词

固定资产的价格,必须大于2000

购入日期

名词

资产状态

名词

分为1表示“可用”或0表示“不可用”

购入人

名词

借用人

名词

必须是职工

归还人

名词

必须是借用人

操作人

名词

借用日期

名词

归还日期

名词

超级用户

名词

可修改资产状态

当删除职工时,系统会检查该员工是否已全部归还了固定资产

短语

条件限制

只有固定资产的状态是“1”时,才可以借用

短语

条件限制

借用和归还固定资产时,系统会自动记录在案

短语

业务逻辑

。。。

2、确定初级类

    根据反复讨论的概念清单和需求说明等相关文档,确定如下初级类,见下表:

类名

属性或方法

属性或方法名称

简要描述

1.固定资产

属性

资产名称

所属大类

资产类别中的大类

所属小类

资产类别中的小类

样式

价格

购入日期

资产状态

购入人

超级用户

方法

增加固定资产()

修改固定资产信息()

只能修改某些信息,比如样式、价格、购入日期、资产状态

删除固定资产信息()

查询固定资产信息()

2.职工

属性

名称

职务

方法

增加新职工()

修改员工信息()

删除员工信息()

查询员工信息()

。。。

3、确定主要功能和菜单项

根据细化结果和需求说明,提出主要功能如下:

  1. 固定资产的增、删、改、查功能;
  2. 职工的增、删、改、查功能;
  3. 资产类别的增、删、改、查功能;
  4. 固定资产的借用和归还;
  5. 用户登陆、退出和密码修改。

根据主要功能,可确定菜单项如下:

  1. 固定资产管理菜单,包括:增、删、改、查4个子菜单;
  2. 职工管理菜单,包括:增、删、改、查4个子菜单;
  3. 资产类别管理菜单,包括:增、删、改、查4个子菜单;
  4. 固定资产的借用和归还管理菜单,包括:借用、归还2个子菜单;
  5. 用户管理菜单,包括:退出和密码修改2个子菜单。

菜单均采用下拉方式,示意图如下:

固定资产管理

职工管理

资产类别管理

借用和归还管理

用户管理

增加。。。

增加。。。

增加。。。

借用

密码修改

删除。。。

删除。。。

删除。。。

归还

退出

修改。。。

修改。。。

修改。。。

查询。。。

查询。。。

查询。。。

5.1程序设计

登陆界面如下

图5.1

主界面模型图如下

图5.2

5.1.1设备管理模块

固定资产管理弹出界面描述:

界面示意图如下:

图5.3

源代码:

/*

 *AssetModel.java:建立固定资产实体类。

 *包括:与数据库进行增、删、改、查操作。

 */

import java.sql.*;

import java.math.*;

public class AssetModel {String assetid;String assetname;String cateid;String subcateid;String model;String price;String purchasedate;String status;String useby;String remarks;DbConn dbc;Connection conn;

   public AssetModel() {

   }

/*

* 添加方法

*/

   public void insert() {

      dbc = new DbConn();

      conn = dbc.getConnection();

      try {

      Statement stmt = conn.createStatement();

      ResultSet rset = stmt.executeQuery ("select max(assetid)+1 from asset");

      while (rset.next()) {

        assetid = rset.getString(1);

      }

      if (assetid == null) assetid = "1";

PreparedStatement pstmt = conn.prepareStatement("inser tinto ASSET

(assetid,asset_name,cateid,subcateid,model,price,purchase_date,status,useby,remarks) values (?,?,?,?,?,?,?,?,?,?)");

      pstmt.setInt(1, Integer.parseInt(assetid));         

      pstmt.setString(2, assetname);  

      pstmt.setInt(3, Integer.parseInt(cateid));

      pstmt.setInt(4, Integer.parseInt(subcateid));

      pstmt.setString(5, model);

      pstmt.setFloat(6, Float.parseFloat(price));

      pstmt.setString(7, purchasedate);

      pstmt.setString(8, status);

      pstmt.setString(9, useby);

      pstmt.setString(10, remarks);

      pstmt.execute();

     

      PreparedStatement pstmt1 =

      conn.prepareStatement("insert into LEND (assetid) values (?)");

      pstmt1.setInt(1, Integer.parseInt(assetid));         

      pstmt1.execute();

     

      conn.commit();

      conn.close();

      }

      catch (java.sql.SQLException s) {

       System.out.println("exception: " + s.getMessage());

      }

   }

   /*

* 查询方法

*/

   public void select() {

      String sql;

      dbc = new DbConn();

      conn = dbc.getConnection();

      sql = "SELECT assetid,rtrim(asset_name),cateid,subcateid,rtrim(model),price,purchase_date,status,useby,rtrim(remarks) FROM asset where assetid = "+Integer.parseInt(assetid);

      try {

      Statement stmt = conn.createStatement();

      ResultSet rset = stmt.executeQuery (sql);

      while (rset.next()) {

                assetname = rset.getString(2);

              cateid = rset.getString(3);

              subcateid = rset.getString(4);

              model = rset.getString(5);

              price = rset.getString(6);

              purchasedate = rset.getString(7);

              status = rset.getString(8);

              useby = rset.getString(9);

              remarks = rset.getString(10);

      }

      conn.commit();

      rset.close();

      stmt.close();

      conn.close();

      }

      catch (java.sql.SQLException s) {

       System.out.println("exception: " + s.getMessage());

      }

    }

   

    public void update() {

      dbc = new DbConn();

      conn = dbc.getConnection();

      try {

      PreparedStatement pstmt = conn.prepareStatement("update ASSET set asset_name=?,model=?,price=?,purchase_date=?,status=?,useby=?,remarks=? where assetid = ?");

      pstmt.setString(1, assetname);         

      pstmt.setString(2, model);  

      pstmt.setFloat(3, Float.parseFloat(price));

      pstmt.setString(4, purchasedate);

      pstmt.setString(5, status);

      pstmt.setString(6, useby);

      pstmt.setString(7, remarks);

      pstmt.setInt(8, Integer.parseInt(assetid));

      pstmt.execute();

     

      conn.commit();

      conn.close();

      }

      catch (java.sql.SQLException s) {

       System.out.println("exception: " + s.getMessage());

      }

   }

   /*

* 删除方法

*/

   public void delete() {

      dbc = new DbConn();

      conn = dbc.getConnection();

      String sql = "delete asset where assetid = "+Integer.parseInt(assetid) ;

      try {

      PreparedStatement pstmt = conn.prepareStatement(sql);

      pstmt.execute();

      String sql1 = "delete lend where assetid = "+Integer.parseInt(assetid) ;

      PreparedStatement pstmt1 = conn.prepareStatement(sql1);

      pstmt1.execute();

     

      conn.commit();

      conn.close();

     

      assetid = null;

      assetname = null;

      cateid = "";

      subcateid = "";

      model = null;

      price = null;

      purchasedate = null;

      status = "";

      useby = null;

      remarks = null;

     

      }

      catch (java.sql.SQLException s) {

       System.out.println("exception: " + s.getMessage());

      }

   }

}

标签:java,管理系统,assetid,资产,固定资产,rset,sql,conn,pstmt
From: https://blog.csdn.net/shmp54xmu/article/details/139303994

相关文章

  • Navicat远程连接阿里云mysql失败,提示2013,2003错误解决方案
    前情提要总结下使用过的各种解决方式,如修改cnf,修改安全组端口,修改防火墙,总有一款方案适合你(如果使用其他方式解决请评论补充,感谢)环境:本文全部使用yum方式安装服务,使用阿里云服务器centos7下文需要格外注意手动配置端口的部分确认已安装好mysql服务(yum安装)......
  • 一文搞懂 MySQL 日志
    前言MySQL的日志记录了运行的各种信息,是MySQL事务、性能、数据容灾、异常排查等的基础。本文将介绍MySQL一些关键日志的作用和原理。MySQLInnoDB引擎重要的三个日志:日志说明redolog重做日志,保证事务的持久性undolog回滚日志,来保证事务的原子性binlo......
  • 使用Java API 操作MongoDB
    除了通过启动mongo进程进入Shell环境访问数据库外,MongoDB还提供了其他基于编程语言的数据库访问方法。MongoDB官方提供了编程语言的驱动包,利用这些驱动包可以使用编程方法连接并操作MongoDB数据库。想要使用 Java程序操作 MongoDB,需要确保您的电脑上已经安装了Mong......
  • 为何Java抽象类是代码架构的基石?
    效率工具推荐一个程序员的常用工具网站,效率加倍嘎嘎好用:程序员常用工具云服务器云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿里云:2核2G3M的ECS服务器只需99元/年,续费同价为何Java抽象类是代码架构的基石?Java抽象类是面向对象编......
  • MySQL查询详解:单表查询、多表查询、分组查询、子查询
    效率工具推荐一个程序员的常用工具网站,效率加倍嘎嘎好用:程序员常用工具云服务器云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿里云:2核2G3M的ECS服务器只需99元/年,续费同价MySQL查询详解:单表查询、多表查询、分组查询、子查询在......
  • SparkSQL编程-DataFrame
    SparkSession在老的版本中,SparkSQL提供两种SQL查询起始点:一个叫SQLContext,用于Spark自己提供的SQL查询;一个叫HiveContext,用于连接Hive的查询。从2.0开始,SparkSession作为Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext......
  • Java毕业设计-基于springboot开发的旅游网站-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、用户信息管理2、旅游动态管理3、景点信息管理4、公告信息管理四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的旅游网站-......
  • SparkSQL概述
    为了给熟悉RDBMS(关系数据库管理系统)但又不理解MapReduce的技术人员提供快速上手的工具,hive应运而生,它是运行在Hadoop上的SQL-on-hadoop工具;但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,运行效率低;sparksql则是采用内存存储可以减少大量的中间......
  • Java开发工具|推荐收藏
    Java是一种广泛使用的编程语言,拥有多种开发工具,包括集成开发环境(IDE)和代码编辑器。以下是几种常见的Java开发工具以及它们的比较:Eclipse是一款流行的开源IDE,广泛用于Java开发。它具有强大的代码编辑、调试和性能分析功能,支持插件扩展,可以满足不同开发需求。Eclipse......
  • 基于SqlSugar的开发框架循序渐进介绍(20)-- 在基于UniApp+Vue的移动端实现多条件查询的
    在做一些常规应用的时候,我们往往需要确定条件的内容,以便在后台进行区分的进行精确查询,在移动端,由于受限于屏幕界面的情况,一般会对多个指定的条件进行模糊的搜索,而这个搜索的处理,也是和前者强类型的条件查询处理类似的处理过程,因此本篇随笔探讨两种不同查询在前端界面上的展示效......