陶瓷工厂的进销存管理系统的设计与实现(论文 + 源码)

【免费】陶瓷工厂进销存管理系统的设计与实现.zip资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/JW_559/89329360

陶瓷工厂的进销存管理系统的设计与实现

摘 要

时代在进步,我们的生产生活方式当然也要相对应的做出改变了。在今天这样一个信息化的时代,计算机软件已经广泛的被用于日常的办公,仓库的库存管理,企业的人员以及资产管理,文字的编辑处理,电子表格的广泛应用以及各种人事管理,财务管理等等方面,可以说计算机软件已经是我们日常生活中不可或缺的一部分了。使用计算机来完成工作效率远比传统的人工作业高得多。众所周知,中国是世界上四大文明古国之一,在英语中中国和瓷器有着相同的拼写这样足可以见陶瓷是我国文明的发展史上一个极为重要的组成部分,这样的发明不仅仅对于中国来说,对于世界来说也做出了极大的贡献,有着非常独特和重要的意义,但是我国的陶瓷生产企业仍是以传统的人工管理模式进行,这样工作容易出错且效率极低。所以根据陶瓷工厂提供的需求,设计此陶瓷工厂的进销存管理系统,以帮助陶瓷工厂达到自动化办公,节约管理成本,提高效率的目的。

本陶瓷工厂的进销存管理系统是基于eclipse开发环境,前台采用的是Swing 和 AWT 相关组件进行的GUI设计,后台使用的是SQL Server数据库。且该陶瓷工厂的进销存管理系统共分为六大模块,分别为基础信息管理模块,进货模块,销售模块,查询统计模块,库存管理模块和系统管理模块,其中基础信息管理模块涉及到客户,原料商品,供应商,产品信息的管理和维护;进货模块涉及到原料商品的进货和退货;销售模块是负责产品的销售和销售退货;查询统计模块则负责查询一些基础信息;库存管理模块完成原料商品的出库,产品的入库,库存盘点和价格修改;系统管理模块涉及到操作员管理和密码修改。总体而言,该六大功能模块设计合理,功能全面,同时界面友好,非常符合我国陶瓷工厂的进销存管理需求。

关键词: 管理系统;java;SQL Server数据库

The Design and Implementation of the Ceramic Factory Inventory Management System

Abstract

The times in the progress of our production and lifestyle when the corresponding to make a change. In today's information age, computer software has been widely used in daily office, warehouse inventory management, corporate staff and asset management text editing, spreadsheet application and a variety of personnel management, financial management And so on, it can be said that computer software is an indispensable part of our daily life. The use of computers to complete the work efficiency is much higher than the traditional manual work. It is well known that China is one of the four ancient civilizations in the world. In English, Chinese and porcelain have the same spelling. It is enough to see that ceramics is an extremely important part of the history of our civilization. This invention is not only for China, For the world also made a great contribution, has a very unique and important significanceBut China's ceramic enterprises are still the traditional manual management model, so easy to work wrong cut the efficiency is very low. So according to the needs of a ceramic factory, the design of this ceramic factory Invoicing management system to help the ceramic factory to achieve automation office, save management costs and improve efficiency purposes.

The ceramic factory inventory management system is based on the ECLIPSE. The foreground interface is based on the Swing and AWT components  and the background use the  SQL Server database. The ceramic factory inventory management system  is divided into six modules, Respectively, for the basic information management module, purchase module, sales module, query statistics module, inventory management module and system management module, The basic information management module which involves the customer, raw materials, suppliers, product information management and maintenance; The purchase module is responsible for the purchase and return of raw materials; sales module is responsible for product sales and sales returns; query statistical module is responsible for querying some basic information; inventory management module to complete the raw materials of the library, the product storage, inventory and Price changes; system management module related to operator management and password modification. Overall, the six functional modules design reasonable, full-featured, while friendly interface, very consistent with China's ceramic factory Invoicing management needs.

Key words: Ceramic Factory Inventory; Management System;Java;SQL Server Database

1  绪 论

1.1本课题的研究背景

伴随着全球化的经济的发展,世界上陶瓷产品的需求量与日俱增,而我国作为陶瓷生产的大国自然不能放过这样一个时代的机遇,陶瓷产品的订单越来愈多,同时我国的陶瓷工业的规模逐年扩大,再这样的情况下,传统的陶瓷工厂的进销存管理模式却已经成为整个陶瓷工业的重要组成部分,成为了我国陶瓷工厂进一步成长,进一步扩大规模,获取利益的绊脚石。旧的管理经营模式已经无法满足我国陶瓷工厂日益扩大的生产需求了。伴随着现代计算机技术的飞快普及和各种软件的不断发展,几乎所有的陶瓷企业和工厂已经无法忽视计算机这种辅助工具为自己带来的经济效益了。陶瓷工厂可以利用计算机来提升自己的工作效率、对工厂产品和原材料的库存进行管理,也可以通过不同的产品的效率来判断哪一种产品才是最畅销的,针对性的生产产品,避免不必要的浪费,从而增加工厂的效益,因此,尽快建立一个功能齐备的专门为陶瓷工厂设计的进销存管理系统,完善一个现代陶瓷企业的信息化管理机制,使现代陶瓷工厂库存管理和维护工作变的更加规范,更加系统,更加有效率是十分必要的。

这个课题是在我研究了我国众多的陶瓷生产及加工企业的现实需求,同时结合了工厂生产中所遇到的一些实际的问题还有收获来设计的。基于这些,我针对陶瓷工厂 的进销存管理系统在系统设计还有开发等方面做了重点的研究。主要是研究了开发系统的过程中将会涉及到的一系列软件和硬件的平台的国际化的规范,系统的数据库的结构和完整性的设计。我这样做的主要目的是为了能够从技术手段的角度来阐述怎样解决我国现代的陶瓷生产厂家如何从原来传统的人工管理模式向现代化的信息化的管理模式的转变,除此之外还有陶瓷工厂的进销存系统在陶瓷工厂管理信息化中所起到的重要作用。

1.2国内外研究现状

目前,国外陶瓷企业的信息化状况的分布是这样的:在大型陶瓷企业中,一般都会使用进销存管理系统来进行管理;在中型陶瓷企业中,进销存管理系统正在被重视并在实际生产中创造价值,在这种陶瓷企业中,进销存管理已经不再是传统的分散的单店式的非常分散的管理模式了,它越来越向着更加集中的更加方便管理的模式靠拢;对于小型的企业来说,很少有企业涉足这块,即便是有所了解也是仅仅处在表面的层次,无论是思想观念还是信息系统的建设都非常的不成熟,还需要一些时间来慢慢的探索,认识,进步。国外的这些进销存管理系统的使用情况对应着各种不同的企业,有着丰富的经验可供借鉴,但是,这些国外的软件和生产管理经验并不是能够完全符合我国的国情的,而且我国自主研发的一系列进销存管理软件大都是功能单一的,很少有这种专门为了我国陶瓷工厂量身定制的,建立适合我国的陶瓷工厂特点的进销存管理系统,是工厂以高效率,低成本立足市场,为其自身的发展提供条件的重要课题。

1.3本课题的重要工作

伴随着我国经济的快速发展,中国陶瓷工厂的规模逐年扩大,传统的进销存管理模式使得陶瓷工厂的管理越来越复杂和繁重。本陶瓷工厂的进销存管理系统是面向国内陶瓷工厂,为了加强产品和原料管理,从而更好地对库存进行科学的监督和管理,使陶瓷工厂员工的工作更加高效和轻松而开发。该陶瓷工厂的进销存管理系统是以精确、实际、真实的陶瓷生产体系为基础,提供了对陶瓷生产原材料数量、类型、批号等的全面管理。系统能随时提供产品的库存、进销存的详细信息,还能非常好的管理和维护供应商,客户的信息。从而提高资源的利用率,方便快捷的对各种重要信息进行更新和维护等。

陶瓷工厂的进销存管理系统主要设计和实现以下内容:

(1) 基础信息管理:该模块主要负责对系统中的基础信息进行更新和维护。主要包括四个功能。其一,客户信息管理,此功能可以将客户的基本信息进行保存,之后还可以对其进行维护。其二,商品信息管理,此功能可以对商品即原材料进行保存和维护,还完成了将不同的商品与其各自的对应供应商进行匹配的功能需求。其三,供应商的信息的管理,此功能可以将供应商的基本信息进行保存,之后还可以对其进行维护。其四,产品信息管理,此功能可以对工厂生产的产品进行定义和维护。

(2)进货管理:进货管理这个模块又分为两个小模块,分别是进货单和进货退货功能这两个小功能。其中进货单功能是本模块的核心功能,主要完成了从对应的供应商处进入原材料,这里面还维护了经手人等字段,可以在将来需要的时候查明每一笔入库的来龙去脉。而进货退货功能也是在研究了大量的现实中陶瓷工厂的具体进货流程后提出的这样一个个性化,实用性极高的小功能。主要是考虑到了在现实进货中不可能每一次的进货都尽如人意,出现残次品的概率是极高的,所以一定会有将原材料退货的需求的,在这个功能中可以将第一步通过进货单入库的原材料再次出库。

(3)销售管理:在销售管理这个大模块中也是分为了两个小的功能,分别是销售单,销售退货功能。销售单指的是将生产好的产品卖给对应的有需求的客户,从而获取效益,这个功能也是本系统中最重要的一个功能,没有这个功能,整个系统的收益将无从谈起。相应的说,销售退货功能完成的功能主要是将卖出去的产品通过退货的渠道再次入库。这么做的原因是考虑到了各个客户需求是有很大的可能会变更的,或者我们的产品出现了残次品,无法满足客户的需求,在这两种情况下就需要用到这个功能,将销售出去的产品再次入库。

(4)查询管理:该模块主要负责对工厂核心信息的查询,因为在实际生产中,无论客户,供应商,原料还是产品都会有很多,所以将基础信息的查询功能拿出来专门做成一个模块,这么做是符合实际的生产场景的。具体来说,主要完成了各个具体信息的模糊查询和完全匹配查询,除此之外比较有特色的是我给每一种基础信息都维护了一个对应的简称字段。而且简称字段也提供了模糊查询和完全匹配查询这两种功能,更加方便也更加的人性化,利于日常工作的开展。

(5)库存管理:该模块是本系统中最重要的功能,因为本系统是一个陶瓷工厂的进销存管理系统,和传统的仓库管理系统区别很大,本系统中我们要对原材料进行加工后销售陶瓷成品所以在本模块中加入了商品出库,产品入库,库存盘点,价格修改等功能。

(6)系统管理:该模块是对工厂中的所有操作员进行管理的模块,在使用这个模块的时候我将会对此操作进行鉴权,具体的来说就是,所有的角色都可以修改自己的密码,但是只有系统管理员才有权限增加新的操作员。

1.4选题意义

现代计算机技术的进步,不仅仅改变了我们的生活方式,同时我们的工作方式也变得更加科学和高效,怎样才能够让我国传统的陶瓷企业更快速的,更准确的获取到市场的需求,更好的反应市场的变化,已是中国陶瓷工厂首当其冲的必须要面对的问题,因此设计和实现一整套完整的针对性更强的实用的现代陶瓷工厂进销存管理系统就显得刻不容缓了,在本次毕业设计中我秉承了良好的治学之风,除了严格按照毕业设计进度表来进行我的系统设计工作,我还与指导老师进行了非常深刻的讨论,老师的建议让我的系统功能更加的完善,性能更加的卓越。同时这个项目也是一个会对实际生产生活产生很大的影响的真正能够创造效益优化企业管理的项目,所以对基层生产厂家的调研、研究工作就成了重中之重,我要为最终能够完成一个成功的软件而努力。

2  开发工具的选择

2.1开发工具Eclipse的介绍

2.1.1Eclipse简介

Eclipse 这个工具是我开始接触编程就一直使用的工具,它本身也是开源的,在在校学习和日常的实习工作中,使用最为广泛。Eclipse这个工具可扩展性是非常好的,工作中可以通过安装不同的插件来引入各种的实用的功能,让开发与测试变得更加紧密,也更加的方便。最值 得一提的是,Eclipse 工具本身还附带了Java语言的JDK工具(Java Development Kit,JDK)这是一个标准的插 件的集合。Eclipse的主要项目包括三个组成的部分,分别是Eclipse项目、Eclipse技术项目还有Eclipse工具项目。更具体的来说,Eclipse Platform、CDT、JDT以及PDE这四个部分共同组成了现在这个成熟的Eclipse工具。JDT主要是可以支持Java的开发测试工作,CDT主要是用来完成C语言的开发及测试、PDE则是可以用来支持插件的开发和测试,最后Eclipse Platform是一个有很好的开放性的可扩展的IDE工具,它提供了一个通用的开发平台,同时提供了一个让建造模块和构造模块集成,并行对的软件开发工具的基础。

2.2 SQLServer数据库介绍

2.2.1SQLServer数据库的简介

SQLServer 数据库是我现在在实习工作中使用的一个数据库。它是由美国的Microsoft 微软公司推出的一款应用广泛的关系型的数据库系统。SQL Server是一个可以根据每一个用户的个性化需求完成定制、性能在众多的数据库中也算是非常的卓越的、为分布式客户机/服务器计算需求来 设计的数据库管理系统,通过使用SQLServer数据库我们还能完美的使用WindowsNT,应为他与SQL Server完成了非常好的有机结合,提供了一种可靠的基于事 务的企业级的信息管理系统方案。同时,因为之前在校期间学习的时候学习过SQLServer 数据库,比较熟悉,所以此次毕业设计我选择用SQLServer作为后台的数据库。

2.2.2 SQLServer数据库的优势

1.SQLserver数据库拥有高性能的设计,这样做我们就可以非常充分的利用WindowsNt的各种优势来优化我们数据。

2.SQLserver数据库的系统管理模式十分的先进,它可以运行Windows图形化管理工具,除此之外,它还支持本地的还有远程的系统管理和配置。

3.事务处理功能非常的先进,它采取了各种办法来保证了数据的完整性还有数据库的安全,让我们可以更方便的处理数据。

4.SQLServer数据库可以对多处理器结构进行解析,它的存储结构也更加的科学,能完美的运行ODBC,除此之外,它还拥有自主的SQL语言。他的各种强大的,实用的功能为广大开发者和用户提供了一个安全,性能出众的数据库平台。.

2.3 swing组件与功能

Java. awt 包含用于创建用户界面和绘制图形图像的所有类。在AWT术语中,诸如按钮或滚动条之类的用户界面对象称为组件。Component 类是所有AWT组件的父类。当用户与组件交互时,一些组件激发事件。AWTEvent 类及其子类用于表示AWT 组件能够激发的事件。容器是一个可以包含组件和其他容器的组件。容器还可以具有布局管理器,用来控制容器中组件的可视化布局。AWT 包带有几个布局管理器类和一个接口,此接口可用于构建自己的布局管理器。而swing组件则是在awt组件基础上优化出来的轻量级组件。Swing组件位于javax.swing包中,此包提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。此次毕业设计,我便采用Swing组件在进行前台的GUI界面设计,并用java.awt.event事件监听实现系统用户与本系统的动态交互。

3  可行性分析

3.1经济可行性

    经济可行性研究是对我国众多的陶瓷工厂的经营状况和是否愿意为此系统来进行投资完成了详细的分析,对此为我国陶瓷工厂量身定做的系统的建设及运行还有后期维护的费用做了大致的估算,同时还对系统建 成后可能和一定会取得的经济和社会的效益进行评估。再加上本系统是为现实中实际的陶瓷工厂员工提供实用性强,可操作性强的自动化的办公内容,登陆了本系统后,就可以使用对应权限的系统功能了,系统的成本大部分都集中在了系统工程软件的开发工作上了,当这个系统投入到实际的运行中后即可以为人们节约大量的宝贵时间和精力,完成的工作也更加的安全,准确。它所能够带来的方便及效益远远大于系统软件的开发成本。在经济上完全可行。

3.2技术可行性

本系统采用Eclipse开发工具等当今使用最广的开源框架等技术应用到模块制作当中,结合陶瓷工厂的进销存管理系统的特点,设计基于java (swing组件)开发的。其中:前台用Swing 组件技术以及awt event事件响应实现前台GUI界面的开发以及相应得事件响应,后台采用了SQL Server数据库来完成相关数据的存储,二者之间的联系则采用SQL相关增删改语句编写成java类来实现,这三大部分尽量发挥各自的特点充分协调工作。再此基础上,我对本系统的各个模块进行了详细的分析,尽可能让它们做到模块独立,高内聚低耦合,让今后的维护工作更加的可行,所以在技术层面是可行的。

 3.3管理可行性

本陶瓷工厂的进销存管理系统是由六大各具特色,缺一不可的模块共同组建完成的,开发完成并实际投入运行后,日常工作中的维护与管理也是非常简单快捷的。于此同时,系统开发中我将不同的功能分为不同的模块,在一个模块中功能尽可能的单一,这样会使后期维护工作成本更低且更容易完成,代码编写中我严格的遵守了代码的编写的规范,让本系统的代码更容易让人理解。对于完成同样工作的进程来说,采用启动一个程序,同时开启多个子进程的设计模式。值得一提的是在本系统中,具体的设计是将所有的对功能的操作都让操作员来完成,系统管理员很少,或者完全不参与系统的日常运行。将系统管理员的功能独立出来,让他全心全意的投入到对操作员的管理之中去。这种将两个角色分开的做法,使得整个系统更易于维护和管理,可以保证每一个操作员都是管理员仔细挑选之后的,而且如果出了问题,系统管理员也可以快速地定位到是哪一个操作员,让责任更明确具体。

3.4法律可行性

因为这个系统如果投入使用的话,一定会产生资金上的来往,这样有可能会让人钻空子违反法律法规。所以,在本系统的需求分析,代码开发,功能测试,包括之后的运行维护过程中,我都严格的遵守了我国的所有的相关法律法规。在此基础上,我还积极的相应国家的号召,让这个系统完全的贴合了我国的经济现状,让它为我国众多的陶瓷工厂做出贡献。所以在法律层面,它是完全可行的。

4  需求分析

4.1功能需求

1. 基础信息管理:该模块主要负责对系统中的基础信息进行更新和维护。

1.1客户信息管理,通过这个功能,我们可以实现对所有客户信息的增删改查,可以查看每一个客户的详细信息,利用这些信息,从而更有针对性的推荐我们的产品,这样的成功率一定是更高的。

1.2商品信息管理,此功能可以对商品即原材料进行保存和维护,还可以将不同的原材料和不同的供应商进行匹配。

1.3供应商信息管理,此功能可以将供应商的基本信息进行保存,之后还可以对其进行维护。

1.4产品信息管理,使用此功能我们可以对工厂中新增的产品进行添加,在这里添加后我们就可以实际进行生产操作了。

2. 进货管理:该模块主要负责对工厂所需原材料资源的维护工作,包括进货、退货等,实现了进货阶段对原材料入库的增删操作。

3. 销售管理:该模块主要管理工厂对陶瓷产品的销售,和退货,实现了销售阶段对产品出入库的增删操作。

4. 查询管理:该模块主要负责对基础信息的查询,因为在实际生产中,无论客户,供应商,原料还是产品都会有很多,所以将基础信息的查询功能拿出来专门做成一个模块,符合实际的生产场景。

5. 库存管理:该模块是本系统最核心的功能,因为本系统是一个工厂的进销存管理系统,和传统的进销存管理有些不同,本系统中我们要对原材料进行加工后销售陶瓷成品所以在本模块中加入了商品出库,产品入库,库存盘点,价格修改等功能。

6. 系统管理:该模块是对工厂中的员工进行管理的模块,在这个模块中希望将基础功能的操作和操作员的管理分离开来。在本系统中的所有的角色都是可以对自己的密码进行修改的,但是如果想添加新的操作员的话,只能通过系统管理员来完成,也只有他有这个权限。

4.2性能需求

进过仔细的调研后,我发现一个满足一下几条需求的系统才可以长期,稳定,安全,高效的运行起来:

1、要及时的和准确的处理系统信息

在设计一个陶瓷工厂的进销存管理系统的时候,我最先考虑的就是这个系统处理信息要及时更要准确。这是每一个系统都需要做到的最基础的性能。在本系统设计之初,我就已经充分的考虑到了这个系统现在的和将来的需要承受的最大的和平时的工作量,本系统的性能是完全能够满足我国陶瓷工厂的对信息处理的需求的。

2、要可以扩充系统功能

陶瓷工厂的进销存管理系统在开发过程中,我已经充分考虑到了以后系统的可扩充性。举个例子来说,陶瓷工厂的规模随着需求的增长会变得越来越大,程序的查询需求也在不断地变化,要对应的设计全称查询和简称查询,还有模糊查询等等。所有这些,都要求系统提供很多的可以进行功能的调整和扩充的接口。而要实现这一点,要利用系统的开放性来实现,就是说系统应是一个开放系统,可以自己分析需求,根据需求来对系统模块进行增加和替换,如果当前的功能不能满足实际的需要的话,也是可以对原有系统进行升级换代的。

3、所有的功能都必须易于操作上手

陶瓷工厂的进销存管理系统是直接为工厂的操作员服务的,要考虑到这些员工并不了解程序的流程,要设计易用的界面,让各位操作员更有效率的为工厂服务,而不是把时间浪费在熟悉系统上。

4、系统的标准性

陶瓷工厂的进销存管理系统,在具体的设计和部署时需要用到很多的软件和硬件产品,这些必须要符合国际标准。只有符合了国际的统一的标准,我们的工程才能更好的运转,也有利于后期的测试以及运行维护等等工作的开展。

5、系统的响应速度

考虑到实际生产中操作员的需求,本陶瓷工厂的进销存管理系统的数据库对信息处理的响应时间设为秒级。因为日常出入库工作不能马虎,如果系统的响应时间非常的长就有产生脏数据的风险。同时,在进行数据查询的时候,数据库的响应时间应该更短,这样才能拿到最新的数据,更全面,更准确。

6、系统要足够的安全

我们这个系统是为了现实中的陶瓷工厂使用而设计的,所以系统要足够的安全才能让人们放下心来使用,安全性包括多个方面,在这个系统中,我们最注重的有两个方面。一个就是,数据要易于维护,且不能产生脏数据,这个问题我们通过SQLserver数据库的良好的性能解决了,另一个问题就是要避免SQL注入攻击,这个问题我通过前后台的数据的校验来解决了。所以说我们这个系统的安全性很高,是一个能够让人方心使用的系统。

4.3 需求分析的结果

经过详细的需求分析后,我得出这样的结论:

在本陶瓷工厂的进销存管理系统中,我们需要的主要的用户有两个,一个是系统操作员,在日常的工作中也是系统管理员来对系统进行操作,还有数据的维护。另一个角色是系统管理员,这个角色也可以进行系统的操作,但是一般不这么做,基础的功能全部交给操作员来完成,它拥有系统操作员的所有权限,但是,他也可以对操作员进行管理,这个是操作员不具备的权限,只有系统管理员才有权限进行此操作。

下面是系统的用例图:

图4.1 操作员的用例图

图4.1 系统管理员的用例图

5  系统总体设计

5.1业务流程

根据需求分析得到的陶瓷工厂进销存业务处理流程,经过我的仔细研究后,首先确定了目标系统的业务流程,其处理流程如图5.1

图5.1 陶瓷工厂的进销存管理系统的业务流程

针对整个系统的业务流程,现具体描述其主要的功能如下:

1、用户登录:当前系统对当前的登录的用户做合法性的检查同时完成系统的鉴权工作,让不同的角色完成不同的工作。

2、基本信息维护:维护供应商,客户,商品,产品等系统的基础信息,这些是完成整个系统的最基础的数据,缺一不可。

3、进货:生产陶瓷产品所必须的原材料将通过这个功能从其对应的供货商处买来,在设置好对应的信息后将其入库。

4、原材料出库:原材料放在仓库中是不能生产产品的,所以我们要先将原材料从库存中拿出来需要的数量,去完成陶瓷产品的生产工作。

5、产品入库:生产了不同的产品后将其分类入库。

6、库存管理:查看库存并对其进行管理,可以更改产品的价格。

7、销售:生产产品就是为了将其销售产生效益,通过这个功能可以将对应的产品买个各自需要的客户,如果产品有缺陷的话,也可以通过这个功能完成产品的退货。

5.2系统功能模块图

本系统主要分为基础信息管理模块,进货管理模块,销售管理模块,查询统计模块,库存管理模块,系统管理模块等六大模块。基础信息管理能够维护客户,商品,供应商,产品的基本信息进货管理能够进行商品的购买入库和退货;销售管理能够进行产品的出库和退货;查询统计能够对基础信息进行查询;库存管理能够进行原材料出库,产品入库,库存盘点,价格调整;系统管理能够新增操作员和修改密码。

下面是本系统的功能模块图:

图5.2 陶瓷工厂进销存管理系统功能模块图

5.3系统流程

依据软件工程基本原理,综合以上分析给出系统流程如图5.3所示

图5.3 第一次登陆系统时的系统的处理流程

说明: 用户通过登陆界面登陆系统时,第一次使用系统时需要进行供应商,商品类别,客户,产品类别的创建,即将所有基本信息依次录入系统,第一次使用系统时同样要初始化库存,将现有的库存情况录入系统,接下来当发生库存变更时,对库存进行相应的修改,使用完成后退出系统即可。

5.4系统类图

在本系统中,主要的类有:

用 户 类:这个类通过权限又分为系统管理员和操作员,系统管理员可以添加新的操作员,但是普通的操作员是没有进行这个操作权限的。

供应商类:这个类是操作员进行维护的,供应商类的主键将作为商品类的外键存在,供应商会生产陶瓷原材料,即商品。让后将不同的商品与供应商对应起来完成入库操作。

商 品 类:这个类是陶瓷的原材料类,操作员通过进货将商品入库,当需要生产陶瓷产品的时候,通过商品出库操作完成出库。

产 品 类:这个类就是工厂生产出来的不同产品的类,操作员将它维护在库存中,当有客户需要购买产品时,操作员通过销售操作完成出库。

客 户 类:这个类顾名思义就是工厂的客户,他会购买我们的产品,给我们创造效益,所以要很好的维护。

库 存 类:这个类是用来维护工厂的库存的,同时包括商品和产品两种,操作员可以通过库存盘点来清点库存,也可以通过价格调整操作来修改库存中商品和产品的价格。

下面是系统的类图:

图5.5系统类图

6  数据库设计

6.1数据库的逻辑设计

依据数据库设计的方法,可按照本系统数据特点设计相应的实体关系可知,该陶瓷工厂进销存管理系统一共涉及到6个实体,其对应的实体关系图如下所示:

用户实体是维护了系统中所有的角色,他可以进行所有的操作,但是它不与其他的实体产生关系,具体如下图所示:

图6.1用户实体图

供应商实体与原材料实体之间的关系是每一个供应商可以为陶瓷工厂提供多种原材料,某一种特定的原材料也可以通过多个供应商来提供。但是由不同的供应商来提供的原材料其质量也会不同,所以这两种原材料是两种不同的原材料,他们之间的关系是一对多。具体关系如下图所示:

图6.2原材料与供应商的ER图

客户与产品之间的关系是一个客户可以同时选择购买多个产品,他们之间的关系是一对多的关系,具体的关系如下图所示:

图6.3客户与产品的ER图

库存实体是用来存储产品与原材料的真实的仓库只有一个,所以库存也只有一个,在这个库存中可以存储多个产品,同时也可以存储多个原材料,所以这三个实体之间的关系是库存与产品一对多,库存与原材料一对多。具体如下图所示:

图6.4产品,原材料与库存的ER图

陶瓷工厂的进销存管理系统主要涉及到6个表,即产品信息表、商品信息表、库存信息表、供应商信息表、客户信息表、用户信息表。

产品信息表:生产的产品的信息主要在这张表中维护。新的产品添加后就会存储到这张表中。包括id、产品名称和产地。其中id是主键,非空且唯一。

商品信息表:生产的产品的原材料的信息主要在这张表中维护。新的商品添加后就会存储到这张表中。包括id、商品名称、产地和供应商。其中id是主键,非空且唯一。

库存信息表:库存的信息主要在这张表中维护。库存的具体情况会保存在这张表中。包括id、名称、单价、库存数量等。其中id是主键,非空且唯一。

供应商信息表:原材料的额供应商的信息主要在这张表中维护。新的供应商信息添加后就会存储到这张表中。包括id、名称、简称、地址、邮箱、联系人等。其中id是主键,非空且唯一。

客户信息表:工厂的客户的信息主要在这张表中维护。新的客户信息添加后就会存储到这张表中。包括id、名称、简称、地址、邮箱、联系人等。其中id是主键,非空且唯一。

用户信息表:工厂的所有操作员的信息和系统管理员的信息主要在这张表中维护。新的操作员新建后就会存储到这张表中。包括名称、登录名、密码、权限等。其中名称是主键,非空且唯一。

6.2数据库的物理设计

数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,我们需要建立一个适合的数据库及其应用系统,使之能够有效地存储和维护数据,满足特定的用户的应用需求。在设计陶瓷工厂的进销存管理系统时,主要从模块组成、数据连接、功能实现、应用意义等方面着手,在设计数据库时要充分考虑数据库的安全性和高效性,尽可能的减少数据冗余,同时保证数据的完整性。

数据库的设计中一般来说有五种范式,第五范式(5NF)在设计的过程中又被人们称为完美范式,但是,在日常的开发中很难做到第五范式那么完美,一般来讲,我们需要做到的是第三范式,就是说我们在数据库中维护的各种表不可以有冗余的字段,还有在同一个表中的各个字段不可以有相互的函数依赖关系。冗余字段就是说一个字段在我这个表中已经保存过了,那么久就不能在其他的表中再去维护它了,如果需要用到这个字段的话,则可以通过各个表间的关联来得到。函数的依赖性指的就是一个表中的各个字段不可以有相互之间的计算关系,举个例子,假如一个表中既有单价字段,又有数量字段,那么就不应该有产品总价这个字段,在需要的时候将这两个字段的值取出来后,再去计算,这样可以降低数据库的维护成本同时还可以减少由于表间的相互关联使用,来造成的功能服务速度降低等问题了。这就是大家口中的第三范式。

在数据库建表的时候需要考虑到最好不要将用户能够输入的字段作为一个表的主键,这样做的话可以有效的规避风险,更好的维护数据库系统的完整性。

在数据库设计之初我们一定要足够的谨慎,尽可能的把所有可能会发生的场景都考虑进去,可以在表中添加一些备用字段,以便将来扩充业务所需。

程序一旦开始编码,就应当尽可能的避免再对数据库表的字段进行修改了,因为这样修改后很可能会引入新的问题,很多的时候新引入的问题还很难被发现,当被发现的时候很可能就已经造成了不可挽回的损失了,所以数据库的设计要在一开始就想好,尽可能的避免后期修改表结构。

下面我要画上本系统的E-R图,如图6.7所示。E-R图描述了当前现实世界到计算机机器的二进制世界的这样一个中间层次的图。所以说,它是一种概念模型。这种概念模型对信息世界的抽象分析是有极大的帮助的,我们可以利用这种工具完成用户和程序员之间的沟通,所以他也具有非常强的语义表达能力,传达知识更加的直接,清晰准确。同时让用户理解起来也更加的简单,更直观。

图6.7表之间的关系

7  详细设计与系统实现

7.1系统的流程图

图7.1总体流程图

说明:用户登陆系统时,系统判断用户的级别,如果为系统管理员,则可以进行操作员管理以及基本信息管理,销售管理,进货管理,库存管理,查询统计,更改密码,系统管理员点击退出按钮时,退出系统。如果是操作员,则可以进行相应的基本信息管理,销售管理,进货管理,库存管理,查询统计,更改密码,操作员点击退出按钮时,退出系统。

7.2登陆模块的实现

该模块是整个陶瓷工厂进销存管理系统的入口,通过登陆时输入不同的信息让系统分辨出不同的角色,从而能够有不同的操作权限。

图7.2登陆界面

关键代码:

连接数据库代码:

ResultSet jieguo = findForResultSet("select * from tb_userlist where username='"+ name + "'");

if (jieguo.next()) {

user.setUsername(name);

user.setPass(jieguo.getString("pass"));

if (user.getPass().equals(password)) {

user.setName(jieguo.getString("name"));

user.setQuan(jieguo.getString("quan"));

}

7.3基础信息管理模块的实现

图7.3客户信息管理-1

图7.4 客户信息管理-2

关键代码:

界面设计代码:

只有部分主要功能和代码

ResultSet haveUser = Dao.query("select * from tb_khinfo where khname='"

+ keHuQuanCheng.getText().trim() + "'")

if (haveUser.next()){

System.out.println("error");

JOptionPane.showMessageDialog(KeHuTianJiaPanel.this,

"客户信息添加失败,存在同名客户", "客户添加信息",

JOptionPane.INFORMATION_MESSAGE);}

连接数据库代码:

return insert("insert tb_khinfo values('" + khinfo.getId() + "','"

+ khinfo.getkehuname() + "','" + khinfo.getJian() + "','"

+ khinfo.getAddress() + "','" + khinfo.getyouzhengbm() + "','"

+ khinfo.getdianhua() + "','" + khinfo.getFax() + "','"

+ khinfo.getLian() + "','" + khinfo.getLtel() + "','"

+ khinfo.getMail() + "','" + khinfo.getXinhang() + "','"

+ khinfo.getHao() + "')");}

本模块中商品信息管理功能,供应商的信息管理功能,产品信息管理功能与客户信息管理功能相仿,所以在此不在赘述了。

7.4进货管理模块

图7.5 进货管理模块-进货单

进货单前台界面:

public class JinHuoDan extends JInternalFrame {

private void initTable() {

String[] columnNames = {……这里是进货单字段};

((DefaultTableModel) table.getModel())

.setColumnIdentifiers(columnNames);

TableColumn column = table.getColumnModel().getColumn(0);

DefaultCellEditor bianjiqi= new DefaultCellEditor(sp);

bianjiqi.setClickCountToStart(2);

column.setCellEditor(bianjiqi);

}

连接数据库代码:

boolean zidongtijiao= conn.getAutoCommit();

conn.setAutoCommit(false);

insert("insert into tb_kucun values('" + ruMain.getRkId()

+ "','" + ruMain.getPzs() + "'," + ruMain.getJe() + ",'"

+ ruMain.getyanshoujielun() + "','" + ruMain.getgongyingshan() + "','"

+ ruMain.getRkshijian() + "','" + ruMain.getcaozuoy() + "','"

+ ruMain.getJsr() + "','" + ruMain.getJsfs() + "')");

Set<TbRukuDetail> rkDetails = ruMain.getTabRukuDetails();

for (Iterator<TbRukuDetail> iter = rkDetails.iterator(); iter

.hasNext();) {

进货退货功能:

图7.6进货退货

进货退货的前台界面实现与进货单类似,这里只写连接数据库代码:

public static String getRkthMainMaxId(Date date) {

return getMainTypeTableMaxId(date, "tb_rkth_main", "RT", "rkthId");

}

public static boolean insertRkthInfo(TbRkthMain rkthMain) {

boolean zidongtijiao = conn.getAutoCommit();

conn.setAutoCommit(false);

Set<TbRkthDetail> rkDetails = rkthMain.getTbRkthDetails();

for (Iterator<TbRkthDetail> iter = rkDetails.iterator(); iter

.hasNext();) {

TbRkthDetail details = iter.next();

Item item = new Item();

item.setId(details.getSpid());

TbSpinfo spInfo = getSpInfo(item);

if (spInfo.getId() != null && !spInfo.getId().isEmpty()) {

TbKucun kucun = getKucun(item);

if (kucun.getId() != null && !kucun.getId().isEmpty()) {

int sl = kucun.getKcsl() - details.getSl();

update("update tb_kucun set kcsl=" + sl + " where id='"

+ kucun.getId() + "'");}

在本模块中我还加入了表单的验证功能,用户不能输入非法的,不符合本系统的数据,这样一来本系统就从前台和后台两个方面避免了非法数据的输入,这样就能使得系统更加的安全,无形之中也规范了用户的操作。

7.5销售管理模块

图7.7销售单

图7.8销售退货

销售管理模块的前台代码与进货管理的前台代码实现方式一致,这里只写连接数据库代码:

insert("insert into tb_sell_main values('" + sellMain.getSellId()

+ "','" + sellMain.getPzs() + "'," + sellMain.getJe()

+ ",'" + sellMain.getYsjl() + "','" + sellMain.getKhname()

+ "','" + sellMain.getXsdate() + "','" + sellMain.getCzy()

+ "','" + sellMain.getJsr() + "','" + sellMain.getJsfs()

+ "')");

Set<TbSellDetail> rkDetails = sellMain.getTbSellDetails();

for (Iterator<TbSellDetail> iter = rkDetails.iterator(); iter

.hasNext();) {

TbSellDetail details = iter.next();

insert("insert into tb_sell_detail values('"+ 1 +"','"

+ sellMain.getSellId() + "','" + details.getSpid()

+ "'," + details.getDj() + "," + details.getSl() + ")");

在这里通过这个方法将销售信息维护到数据库中:

boolean autoCommit = conn.getAutoCommit();

conn.setAutoCommit(false);

insert("insert into tb_xsth_main values('" + xsthMain.getXsthId()

+ "','" + xsthMain.getPzs() + "'," + xsthMain.getJe()

+ ",'" + xsthMain.getYsjl() + "','" + xsthMain.getKhname()

+ "','" + xsthMain.getThdate() + "','" + xsthMain.getCzy()

+ "','" + xsthMain.getJsr() + "','" + xsthMain.getJsfs()

+ "')");

7.6查询统计模块

图7.9查询统计模块1

图7.10查询统计模块2

图7.11查询统计模块3

本模块的特点是能够进行多字段的模糊匹配查询,该功能的目的是在实际的生产中,进过时间的积累,可能会在数据库中维护大量的数据,如果这时还使用显示全部数据的话效率太低了,所以本系统特别定制了这个功能,一来提高了工作效率,二来还能避免操作员因为公司名称记不全而导致的错误。

界面设计代码:

public void actionPerformed(final ActionEvent e) {

String conName, conOperation, content;

List list = null;

conName = conditionName.getSelectedItem().toString().trim();

conOperation = conditionOperation.getSelectedItem().toString()

.trim();

content = conditionContent.getText().trim();

String sql = "select * from tb_gysInfo where ";

if (conName.equals("供应商全称")) {

if (conOperation.equals("等于"))

list = Dao.findForList(sql + "name='" + content + "'");

else

list = Dao.findForList(sql + "name like '%" + content

+ "%'");

} else {

if (conOperation.equals("等于")){

list = Dao.findForList(sql + "jc='" + content + "'");}

else{list = Dao.findForList(sql + "jc like '%" + content + "%'");}

}updateTable(list, dftm);}

7.7库存管理模块

图7.12库存盘点

图7.13价格调整

图7.14产品入库

图7.15商品出库

界面设计代码(价格调整界面):

kcInfo.setDj(Double.valueOf(danJia.getText()));

kcInfo.setKcsl(Integer.valueOf(kuCunShuLiang.getText()));

int rs = Dao.updateKucunDj(kcInfo);

if (rs > 0)

JOptionPane.showMessageDialog(getContentPane(), "价格调整完毕。",

kcInfo.getSpname() + "价格调”+JOptionPane.QUESTION_MESSAGE);

数据库代码:

价格调整:

public static int updateKucunDj(TbKucun kcInfo) {

return update("update tb_kucun set dj=" + kcInfo.getDj()

+ " where id='" + kcInfo.getId() + "'");

库存盘点:

public static TbSpinfo getSpInfo(Item item) {

String where = "spname='" + item.getName() + "'";

if (item.getId() != null)

where = "id='" + item.getId() + "'";

ResultSet rs = findForResultSet("select * from tb_spinfo where "

+ where);

TbSpinfo spInfo = new TbSpinfo();

7.8系统管理

图7.16管理员权限--操作员管理

图7.17操作员权限—操作员管理

图7.18更改密码

界面设计代码:(操作员管理)

if(!user.getQuan().equals("a")){

JOptionPane.showMessageDialog(getContentPane(), "您没有进行此项操作的权限");

8  系统测试

系统测试在整个系统开发的过程中是非常必要,不可忽视,且极为致命的一个环节。软件测试不仅仅是在系统做完了以后大致的测测系统功能是否都实现了,而是要多方面多角度的进行挖掘式测试,各种条件下,各种不同的权限都要一一覆盖到,不可马虎,因为在测试阶段发现的问题,它的修改成本是最小的,如果在后期的使用中发现了问题,就意味着已经有人遭受了损失,这很可能是致命的。其实在一个软件的生命周期中,除了运行和维护的时间,就是测试占的比例是最大的,远不是开发的比例可以相比的。

在本系统的测试中,最主要的目的就是在各种不同的条件下运行程序,尽最大可能,暴露出系统的所有的问题,在保证系统基本功能没有问题可以使用的情况下,界面,安全性等所有的方面都要考虑全备。在软件测试的这个环节我们可以分为三步走:模块测试。模块测试是测试本系统中六大模块的基本功能是否都已经实现了预期需求中的所有需求。看看在程序运行期间每个模块的状况是否良好,是否会产生意料之外的异常和ERROR,保证模块的健壮性。组装测试,在完成了模块测试后紧接着就是组装测试,我们这个系统是六大模块集合体,只有他们组合成一个整体,这个系统的功能才能真正实现。模块见是会互相调用的在组装测试阶段我们主要是测试各个模块间的调用是否是正确的,数据是否有冗余或者是产生脏数据等。最后一步,确认测试,在整个系统完成了以后,我们要从宏观上出发,从最基本的需求上出发,详细对照每一条需求,看看本系统是否完美切合了设计的初衷,是否完美的实现了所有的预期功能。

在测试的过程中,我发现了很多的错误,包括逻辑上的漏洞和界面上的BUG,我从多个角度分析了错误发生的根因,并成功的解决了错误。测试有三大方法,黑盒测试,白盒测试还有灰盒测试。黑盒测试在整个软件测试的过程中是最为常见,也最为实用的到一种测试的方法。本系统的测试大部分用的也是黑盒测试方法,这种测试方法主要就是完全抛开了系统的内部逻辑结构不管,完全从系统的功能方面入手,对整体的功能和性能进行测试,检验系统功能是否完备,安全性是否达到了用户的要求。

系统的安全性测试也是非常必要的,测试的主要方面有数据的安全性,权限的鉴定是否正确,程序是否能防御SQL注入攻击等等。数据的安全性主要是看看我们输入非法的数据,程序是否会将这些错误的数据入库,或者是否做了相应的校验等。也就是健壮性测试。SQL注入攻击是一种常见的数据库工具方式,它通过字符串的拼接直接获取用户的数据,危害性极大,为了应对这种攻击方式,我在登录的页面做了相应的校验,让攻击者无从下手,让我们的系统安全性得到了进一步的提高。

8.1登陆功能测试:

这个模块的测试主要是测试不同的用户是否能正确的登陆,并且是否能够正确的完成鉴权工作,初次之外,还要测试功能是否能预防SQL注入攻击。

图8.1登陆功能测试

测试成功:

图8.2登陆成功

8.2进货功能测试

这个模块的测试主要是测试进货单中的信息是否能够正确的维护到与之相对应数据库表中。并且在之后的调用中是否能正确的使用。

图8.3进货单未填写经手人

图8.4进货单未填写验收结论

图8.5进货单未填写入库商品

图8.6进货单入库完成

销售功能与此功能类似,由于篇幅限制,不在赘述

8.3查询统计功能测试

图8.7全称匹配查询

图8.8全称模糊查询

图8.9简称匹配查询

图8.10简称模糊查询

图8.11显示全部数据

商品查询与供应商查询与此功能类似,再次不在赘述。

8.4库存管理功能测试

图8.12库存盘点功能测试

图8.13价格调整功能测试

图8.14产品入库功能测试

图8.15商品出库功能测试

8.5系统管理功能测试

图8.16添加操作员

 

图8.17新添加的操作员登陆成功且没有添加操作员的权限

图8.18密码更改功能

至此,本系统的全部功能已经全部测试完毕,总体来看没有明显的BUG,所有预期的功能也全部都较好的实现了,界面简洁大方,适合陶瓷工厂作为日常的管理软件长期使用。但是还是有一些小瑕疵,可以通过以后的加工使之变得更加美观科学,更易于操作,测试工作到这里就结束了。

总 结

这一次的毕业设计我认为是可以充分的检验和锻炼自己的实际代码开发能力还有系统分析能力的大好机会,通过这次的毕业设计过程,也是对我这大学四年来所学习和积累的知识的一个考察。在大四学年,我在昆山杰普实习实训基地学到了很多的实用性很强的丰富的知识和各位指导老师多年来的开发项目的经验和技巧。学习的知识越来越多,同时积累的经验也越来越丰富,随着数据库和系统知识的了解,经过和各位老师和教授的指导后,我选择了陶瓷工厂的进销存管理系统软件设计与实现这个课题。这是一个属于实际应用的课题,我所设计的进销存管理系统将实际应用到中国广大的陶瓷工厂的实际生产中去,对于初涉社会的我来说,无疑是一个非常好地锻炼的机会。在这次的毕业设计中我谨记老师给我的教诲,做一个诚实,认真负责的人,所以整个项目的编写和实现都由我一人独立实现,再次基础上,我还和两位指导老师进行了多次密切的交流,使得项目更加的科学和完善。我还非常的重视项目的基础调研工作,因为这个项目就是为了实际应用而开发,它是一个面向实际的项目。至此,本次陶瓷工厂的进销存管理系统基本实现预想的功能,在基本的增删改查等功能完美实现之后,又加入了更改密码以及模糊查询等功能。在本次毕业设计的过程中,学校给予的支持力度使是非常大的,在进行毕业设计的这段时间里,学院配合我们进行了一个实习周报的完成,在这个报告中,会将自己每周在毕设时遇到的问题报告给指导老师,老师会及时回馈。这点在毕设时给予我们非常大的帮助。但是由于完成毕业设计的时候我正在实习单位参加实习工作,时间上有所短缺,所以系统还不是非常的完善,和市场上那些非常成熟的进销存管理系统相比起来仍是有一些不足之处的,今后我将利用学习和工作之余的时间,学习新的更适合本系统的技术还有设计理念,对陶瓷工厂的进销存管理系统做多次的迭代深层次的开发学习,目标是在今后的三到四个月让整体的代码更加的完善,界面更加的易于操作,程序的可扩展性进一步的增强,成为一个能够和市场接轨,真正能够投入实际生产生活的完善的系统。

通过此次毕业设计,我确确实实学到了很多的东西,包括在学习书本知识上和动手时间上,之前在做课程设计的时候,虽然自己也成功地实现过一个个功能,但是毕竟是小组完成,或多或少会听取到别人的想法, 此次毕设则有很大的不同,基本上是有自己独立完成的,从前期的业务调查,知识准备,再到中间开发环境与工具的安装,到最后程序的编码实现,自己实实在在地完成了一个项目,激动之情无法言说。也由此,我在学习上,项目实践中能力得到了很大的提高。我相信此次经历在我以后的道路上将会是一笔伟大的财富。

本系统支持商品条形码扫描、超市小票据打印、顾客显示屏、自动控制钱箱。 全部过程和企业财务自动连成一体 业务功能全面: 一、采购:(采购入库、采购退货); 二、批发销售:(销售出库、销售退货); 三、POS:(POS出库、POS退回); 四、财务管理:(应收、应付、现金账户登录); 五、会员:(会员管理),促销员管理 六、库存管理:库存分布、库存报溢、库存盘点 软件特点 1.支持类别、编码、等级、 规格、色号、品牌、仓库管理。 2.支持双单位。(自动折算成几箱几片) 3.不同客户不同产品价格管理体系. 4、支持应收账款、应付账款管理 5、支持现金银行账及费用管理 6、全面的报表自行设计、打印、数据导出功能 7.会员卡管理(方便跟货车司机、水土师父介绍来的业务进行挂勾). 8.可时时查看库存数.客户留货数(客户已订货未提走的数).采购订货数(向工厂下订单未到货的数).可售数(库存数-客户订货未提数).可售面积. 9.销售折扣控制功能,对不同客户不同操作员不同部门可分别控制他们的销售折扣额度及他们能给客户的优惠金额额度。. 10.进货、库存、订货、销售、调价、炒货、成本、利润、往来帐款、银行帐、收支帐、预付帐、预收帐一目了然. 11.采用移动加权平均法、先进先出法等成本核算及利润分析方法。 12.产品销售排行榜、销售员业绩报表、产品售价跟踪、应收应付对帐单、客户销售报表、库存报表、经营历程、现金流量报表、 当日综合报表、销售毛利等报表让你对自已企业的经营情况时时有底. 13.免费根据客户需要设置相应的发票打印格式。 14.系统选用了多排序。 15.支持设备广泛,各种并口、usb口小票打印机均可使用,可使用笔记本安装收银系统 16.实用的会员赠品管理功能 17.灵活的单品打折和整单打折功能更适合个体店铺销售 18.灵活设置的备份功能保障数据安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值