基于Java的ERP系统设计与实现
摘 要
本次课题结合了结合目前市面上很多正在使用的企业ERP系统和对未来企业ERP系统的发展进行广泛的研究和分析,在此基础上结合当前软件应用现状对软件系统进行新的创新和改进,利用所学MySql数据库,JavaEE,SpringBoot框架,JQuery,EasyUI等知识开发一个基于Java的企业ERP系统。以期实现综合平衡和优化管理企业所拥有的人、财、物、信息、时间和空间等综合资源,协调企业各管理部门,ERP管理系统围绕市场导向开展业务活动,提高企业的核心竞争力,从而取得最好的经济效益。
关键词:ERP;MYSQL;SpringBoot;JQuery;EasyUI
Design and implementation of ERP system based on Java
Abstract
This topic combines many enterprise ERP systems currently in use in the market with extensive research and Analysis on the development of enterprise ERP system in the future. On this basis, combined with the current situation of software application, this paper carries out new innovation and improvement on the software system, using the MySQL database, JavaEE, springboot framework, jQuery, Develop an enterprise ERP system based on Java. In order to achieve a comprehensive balance and optimize the management of human, financial, material, information, time and space and other comprehensive resources owned by the enterprise, coordinate the management departments of the enterprise, ERP management system around the market-oriented business activities, improve the core competitiveness of the enterprise, so as to achieve the best economic benefits.
Key words: ERP;MYSQL;SpringBoot;JQuery;EasyUI
目 录
前 言
1.1. 项目背景
随着时代的发展,科学技术有了很大的发展,数据库技术,数字化技术,网络系统大规模应用技术,网络系统开发工具等等不断完善。中国也顺应时代的发展进入到了高速的“互联网+”时代。高速的互联网给人们的日常生活带来的很大的便利和改善,很多行业得益于此快速发展。
ERP管理系统是IT技术与管理思想的融合体,ERP管理系统也就是先进的管理思想借助IT技术,来达成提升企业的管理水平的目标。当企业发展到一定的阶段,常规的管理显然已不能满足现实发展的需要,所以如何实现规范化、标准化的管理来提高企业经营效益,就成为一个新的议题。如果不建立与之相适应的管理信息系统,就很难在这个竞争日趋激烈的时代获胜。
1.2. 研究现状
毋庸置疑,21世纪是网络经济、电子商务的信息化的世纪,而一个真正的电子商务必须包括网上商务(B2B)、客户管理(CRM )、供应商管理(SCM )、企业内部管理(ERP管理系统 )四大系统,因此企业当前首要的目标是实现企业内部管理与ERP管理系统 整合,实现资源充分有效利用、运作效率提高、成本的降低和准时交货承诺的保证,在拥有了ERP管理系统 “后台”这一核心的基础上再与“前台”的网上商务集成在线实时运作,跨进电子商务时代。所以,企业要规范化、规模化、国际化,则ERP管理系统的引入是必然的。
1.3. 开发系统的意义
ERP系统,将企业实际管理需求与先进信息技术完美结合,打造企业全程一体化管理体系,打破各部门、各区域、各系统之间沟通和协作的壁垒,建立规范、灵捷、高效的业务流程,实现销售、客户、项目、生产、库存、采购、人资、财务、办公等所有环节全程无缝管理,确保了数据信息在传递过程中的准确性、时效性和有效性,帮助企业快速反应、紧密协作、良好运营,更快推进业务发展,全面提升核心竞争力。
系统设计思想和技术介绍
2.1. 设计思想
技术方面系统采用B/S架构,并将数据库和后台服务端以及前台展示页面部署到公有云上的形式以方便用户任何时间,任何地点高效率的办理自己的业务。数据库采用免费开源的MySQL数据库以节省成本,后台服务器端采用SpringBoot框架进行快速搭建和运行,采用Maven管理依赖提升项目开发过程中规范性与高效性,采用MyBatis框架做持久层处理器,采用MVC的设计模式方便代码的阅读和编辑,采用EasyUI解决界面设计问题。
2.2. 技术介绍
2.2.1. Spring框架
Spring框架是由Pivotal团队开发的轻量级开发脚手架。通过注解对java对象进行管理提高开发的效率和质量和面向切面编程的能力,去繁从简,将大量重复的业务逻辑一个注解搞定,并且程序间的耦合度非常低,任何java应用都可以从中受益。
Spring的一个最大特点就是它是一个万金油似的框架,他可以和其他的任何框架结合起来使用,并对这些框架进行管理和配置,是当今SSH,SSM,SpringBoot等框架的基础。
2.2.2. Mybatis框架
Mybatis是现在绝大多数java项目的必用框架,是当今最火热的半自动化的SQL语句模板引擎,在解决数据库范式带来的问题和提升数据库表扁平化的角度上起了很大的作用。在我的了解中,现在很多人摈弃数据库范式的关联关系,大量使用冗余数据,这就给半自动化的Mybatis发展起了很大的发展作用。
Mybatis是用来解决MVC中的持久数据库层问题的解决方案,它是一个组件,开发时我们也要以组件的方式去引用它,并且它可以被集成进入Spring管理,只要引入了它并一键开启,除了SQL外我们都不用管,但是SQL语句本身我们还是要自己来编撰的,所以Mybatis是一个半自动的SQL语句处理框架,这给我们开发实现过程化中优化SQL语句,提升服务的整体性能提供了很大的帮助。
2.2.3. SpringMVC框架
早期JAVA网络程序开发模式理论和实际层次很简单,所有的要实现的功能都在一个类中实现,没有层次,这样虽然很大的降低的代码的复用率和开发周期,但是程序之间的耦合度很高很高。并且前端和后端相互依赖夹杂,使程序的很难看懂实现了那些功能,不能进行有效的再次开发测试。
这种开发方式虽然很简单,弊病也很重,因此这种代码逻辑方式被前后分离的MVC 模式取代,而MVC的核心是由Servlet组件实现的。前端发生的HTTP请求到后台,经过后台解析后找到相应的方法,然后根据请求的参数和解析结果调用相应的实体类和分层实现获取需要的结果,结果返回后,前端页面完成业务处理,这样的模式我们就称为 MVC 模式。
SpringMVC的执行过程如下图2-1所示:
图2-1 SpringMVC执行过程
2.2.4. SpringBoot框架
SpringBoot也是由Pivotal团全新开源的轻量级框架,通过简化配置来进一步简化了Spring应用的整个搭建和开发过程,另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题。
2.2.5. Mysql数据库
Mysql是由Apache公司提供的一款开源的数据库管理系统,其功能非常强大,提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点,并且支持事务、视图、存储过程、触发器等。
2.2.6. EasyUI
EasyUI是一种基于jQuery的用户界面插件集。 EasyUI 提供易于使用的组件,它使 Web 开发人员能快速地在流行的 jQuery 核心和 HTML5 上建立程序页面,节省您网页开发的时间和规模。
需求建模
3.1. 需求分析
本系统开发的目的是实现企业在运营过程中涉及的采购流程、入库流程、销售流程以及财务管理和生产等方面智能化。
根据需求分析目前想要实现的主要功模块能有:采购管理,销售管理,仓库管理,财务管理,报表查询,商品管理,基本资料及系统管理。同时从细节上对各个功能模块进行设计。
设计采购管理模块包含了订单,入库,退货等功能。
设计销售管理模块包含订单管理类,出库,入库等功能。
设计仓库管理模块包含出库,入库功能。
设计财务管理模块包含了对收入、支出、收付款、转账的管理。
设计报表管理模块包含了对库存状况,进货统计,销售统计,入库明细,出库明细等的管理设计。
设计商品管理模块包含了对商品类型,详细信息,型号,商品编号的管理。
设计基本资料模块包含了供应商信息,客户信息,会员信息,仓库信息,账户信息,经手人管理的设计。
设计系统管理包含了角色管理,用户,机构,日志,常用配置等功能。
需求模块分析图如下图3-1所示。
图3-1系统模块需求分析图
3.2. 模块分析
3.2.1. 登录模块
登录模块是一个系统安全保证的核心功能,本系统采用shiro安全校验框架,结合session数据存储,搭建用户安全拦截校验。登录模块流程如下图3-2所示。
图3-2登录模块需求分析图
3.2.2. 采购模块
采购管理模块包括三部分功能:采购订单,采购入库,采购退货。
采购管理模块流程图如下图3-3所示:
图3-3采购管理模块流程图
采购人员在采购订单中新建一个采购订单。新建订单信息后,由采购单审核权限的审核人员在采购订单中进行审核。审核通过后,采购人员在采购入库中新建一个入库单,该入库单可关联已经审核通过的采购单,然后采购单中采购的商品入库,该商品库存增加。如需退货,在采购退货中新建一个退货单,在退货单中选择供应商及退货的商品,退货商品数量。
3.2.3. 销售模块
销售管理模块包括三部分功能:销售订单,销售出库,销售退货。
销售管理模块流程图如下图3-4所示:
图3-4销售管理模块流程图
销售人员在销售订单中新建一个销售订单。新建后,有销售单审核权限的审核人员在销售订单中进行审核。审核通过后,销售人员在销售出库中新建一个出库单,该出库单可关联已经审核通过的销售单,然后销售单中销售的商品出库,该商品库存减少。如需退货,在销售退货中新建一个退货单,在退货单中选择客户及退货的商品,退货商品数量等信息。
3.2.4. 仓管模块
仓管管理模块包括三部分功能:新增仓库,出库,入库退货。
仓管管理模块流程图如下图3-5所示:
图3-5仓管模块流程图
仓库管理员新增仓库信息。出库时需要将仓库,商品信息,客户信息关联起来,用以达到 很快捷方便创建出库信息的目的。仓库管理员在执行入库操作是只需选择相应的商品就可以执行入库操作。
3.2.5. 系统管理
系统管理模块包括5个部分功能:角色管理,用户管理,机构管理,日志管理和系统配置。
系统管理模块流程图如下图3-6所示:
图3-6系统管理流程图
系统管理员新增首先用户角色信息,机构信息等。
创建系统用户时需要选择用户的角色信息,和机构信息,赋能用户的权限角色。
系统日志管理的功能是记录系统用户的操作信息。
3.3. 可行性分析
3.3.1. 技术可行性
根据上述功能需求分析,本课题使用JAVA作为本次课题落地技术实现的技术支撑。根据页面的动态效果和个人所学知识,采用JQuery以及EsayUI,bootstrap等前端开发技术作为前端页面展示效果的技术支撑。服务器后端采用当今比较火的SpringBoot框架作为主体框架,并结合Mybatis数据库持久层组件,druid组件等技术作为后端技术支撑。数据库选用免费开源易操作且功能完善的mysql数据库。采用tomcat服务器作为项目发布部署运行的服务器,采用Maven做项目架构管理和版本信息管理等。
以上技术完整的搭建了一个从前端到后台在到数据库最后发布到服务器的项目。从技术层面上来分析,以上技术均是当前比较火热的前沿技术,而且技术成熟,用例很广,容易搭建,容易维护,所以在技术上本需求可行。
3.3.2. 实用性分析
对于很多的想要实现采购,入库,销售等企业资源智能化、信息化管理的机构来说,无论是大型的企业平台还是中小型的企业,超市等,都需求一个具有核心功能完善的ERP管理系统。一个核心完善的ERP管理能够极大的加快货款回收效率,同时也能节省很多的运营成本,优化采购及销售环节的同时,也减轻了企业的账目管理压力,给用户带来更加直观的数据体验。就像上述功能分析的一样,无论从什么角色和什么方向,本系统都能适应,而且开发成本低,实用性强,所以从经济实用性角度来说,本系统可行。
概要设计
4.1. 数据库需求分析
针对上述需求分析,设计系统数据库主要需求表如下表4-1所示:
表4-1 数据库需求表
jsh_account | 账户信息 |
jsh_account_head | 财务主表 |
jsh_account_item | 财务子表 |
jsh_depot | 仓库表 |
jsh_depot_head | 单据主表 |
jsh_depot_item | 单据子表 |
jsh_function | 功能模块表 |
jsh_in_out_item | 收支项目 |
jsh_log | 操作日志 |
jsh_material | 产品表 |
jsh_material_category | 产品类型表 |
jsh_material_current_stock | 产品当前库存 |
jsh material extend | 产品价格扩展 |
jsh_material_initial_stock | 产品初始库存 |
jsh_material_property | 产品扩展字段表 |
jsh_msg | 消息表 |
jsh_orga_user_rel | 机构用户关系表 |
jsh_organization | 机构表 |
jsh_person | 经手人表 |
jsh_platform_config | 平台参数 |
jsh_role | 角色表 |
jsh_sequence | 单据编号表 |
jsh_serialnumber | 序列号表 |
jsh_supplier | 供应商/客户信息表 |
jsh_system_config | 系统参数 |
jsh_tenant | 租户 |
jsh_unit | 多单位表 |
jsh_user | 用户表 |
jsh_user_business | 用户/角色/模块关系表 |
4.2. 数据库物理实现
财务主表如下表4-2所示:
表4-2 jsh_account_head财务主表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | type | varchar | 50 | YES | 类型 |
3 | organ_id | bigint | 20 | YES | 单位Id |
4 | hands_person_id | bigint | 20 | YES | 经手人id |
5 | creator | bigint | 20 | YES | 操作员 |
6 | change_amount | decimal | 24 | YES | 变动金额 |
7 | total_price | decimal | 24 | YES | 合计金额 |
8 | account_id | bigint | 20 | YES | 账户 |
9 | bill_no | varchar | 50 | YES | 单据编号 |
10 | bill_time | datetime | 0 | YES | 单据日期 |
11 | remark | varchar | 100 | YES | 备注 |
12 | tenant_id | bigint | 20 | YES | 租户id |
13 | delete_flag | varchar | 1 | YES | 删除标记 |
财务子表如下表4-3所示:
表4-3 jsh_account_item 财务子表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | header_id | bigint | 20 | YES | 表头Id |
3 | account_id | bigint | 20 | YES | 账户Id |
4 | in_out_item_id | bigint | 20 | YES | 收支项目Id |
5 | each_amount | decimal | 24 | YES | 单项金额 |
6 | remark | varchar | 100 | YES | 单据备注 |
7 | tenant_id | bigint | 20 | YES | 租户id |
8 | delete_flag | varchar | 1 | YES | 删除标记 |
仓库表如下表4-4所示:
表4-4 jsh_depot 仓库表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | name | varchar | 20 | YES | 仓库名称 |
3 | address | varchar | 50 | YES | 仓库地址 |
4 | warehousing | decimal | 24 | YES | 仓储费 |
5 | truckage | decimal | 24 | YES | 搬运费 |
6 | type | int | 10 | YES | 类型 |
7 | sort | varchar | 10 | YES | 排序 |
8 | remark | varchar | 100 | YES | 描述 |
9 | principal | bigint | 20 | YES | 负责人 |
10 | tenant_id | bigint | 20 | YES | 租户id |
11 | delete_Flag | varchar | 1 | YES | 删除标记 |
12 | is_default | bit | 1 | YES | 是否默认 |
单据主表如下表4-5所示:
表4-5 jsh_depot_head 单据主表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | type | varchar | 50 | YES | 类型 |
3 | sub_type | varchar | 50 | YES | 出入库分类 |
4 | default_number | varchar | 50 | YES | 初始票据号 |
5 | number | varchar | 50 | YES | 票据号 |
6 | create_time | datetime | 0 | YES | 创建时间 |
7 | oper_time | datetime | 0 | YES | 出入库时间 |
8 | organ_id | bigint | 20 | YES | 供应商id |
9 | hands_person_id | bigint | 20 | YES | 经手人id |
10 | creator | bigint | 20 | YES | 操作员 |
11 | account_id | bigint | 20 | YES | 账户id |
12 | change_amount | decimal | 24 | YES | 变动金额 |
13 | total_price | decimal | 24 | YES | 合计金额 |
14 | pay_type | varchar | 50 | YES | 付款类型 |
15 | bill_type | varchar | 50 | YES | 单据类型 |
16 | remark | varchar | 1000 | YES | 备注 |
17 | sales_man | varchar | 50 | YES | 业务员 |
18 | account_id_list | varchar | 50 | YES | 账户ID |
19 | account_money_list | varchar | 200 | YES | 金额列表 |
20 | discount | decimal | 24 | YES | 优惠率 |
21 | discount_money | decimal | 24 | YES | 优惠金额 |
22 | discount_last_money | decimal | 24 | YES | 优惠后金额 |
23 | other_money | decimal | 24 | YES | 费用合计 |
24 | other_money_list | varchar | 200 | YES | 项目Id数组 |
25 | other_money_item | varchar | 200 | YES | 费用 |
26 | account_day | int | 10 | YES | 结算天数 |
27 | status | varchar | 1 | YES | 状态 |
28 | link_number | varchar | 50 | YES | 关联订单号 |
29 | tenant_id | bigint | 20 | YES | 租户id |
30 | delete_flag | varchar | 1 | YES | 删除标记 |
单据子表如下表4-6所示:
表4-6 jsh_depot_item单据子表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | header_id | bigint | 20 | YES | 表头Id |
3 | material_id | bigint | 20 | YES | 商品Id |
4 | material_extend_id | bigint | 20 | YES | 商品扩展id |
5 | material_unit | varchar | 20 | YES | 商品计量单位 |
6 | oper_number | decimal | 24 | YES | 数量 |
7 | basic_number | decimal | 24 | YES | 基础数量 |
8 | unit_price | decimal | 24 | YES | 单价 |
9 | tax_unit_price | decimal | 24 | YES | 含税单价 |
10 | all_price | decimal | 24 | YES | 金额 |
11 | remark | varchar | 200 | YES | 备注 |
12 | img | varchar | 50 | YES | 图片 |
13 | incidentals | decimal | 24 | YES | 运杂费 |
14 | depot_id | bigint | 20 | YES | 仓库ID |
15 | another_depot_id | bigint | 20 | YES | 对方仓库Id |
16 | tax_rate | decimal | 24 | YES | 税率 |
17 | tax_money | decimal | 24 | YES | 税额 |
18 | tax_last_money | decimal | 24 | YES | 价税合计 |
19 | material_type | varchar | 20 | YES | 商品类型 |
20 | tenant_id | bigint | 20 | YES | 租户id |
21 | delete_flag | varchar | 1 | YES | 删除标记 |
收支项目表如下表4-7所示:
表4-7 jsh_in_out_item收支项目表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | name | varchar | 50 | YES | 名称 |
3 | type | varchar | 20 | YES | 类型 |
4 | remark | varchar | 100 | YES | 备注 |
5 | tenant_id | bigint | 20 | YES | 租户id |
6 | delete_flag | varchar | 1 | YES | 删除标记 |
产品表如下表4-8所示:
表4-8 jsh_material 产品表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | category_id | bigint | 20 | YES | 产品类型id |
3 | name | varchar | 50 | YES | 名称 |
4 | mfrs | varchar | 50 | YES | 制造商 |
5 | safety_stock | decimal | 24 | YES | 安全存量 |
6 | model | varchar | 50 | YES | 型号 |
7 | standard | varchar | 50 | YES | 规格 |
8 | color | varchar | 50 | YES | 颜色 |
9 | unit | varchar | 50 | YES | 单位-单个 |
10 | remark | varchar | 100 | YES | 备注 |
11 | unit_id | bigint | 20 | YES | 计量单位Id |
12 | enabled | bit | 1 | YES | 启用 |
13 | enable_serial_number | varchar | 1 | YES | 开启序列号 |
14 | tenant_id | bigint | 20 | YES | 租户id |
产品类型表如下表4-9所示:
表4-9 jsh_material_category产品类型表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | name | varchar | 50 | YES | 名称 |
3 | category_level | smallint | 6 | YES | 等级 |
4 | parent_id | bigint | 20 | YES | 上级id |
5 | sort | varchar | 10 | YES | 显示顺序 |
6 | status | varchar | 1 | YES | 状态 |
7 | serial_no | varchar | 100 | YES | 编号 |
8 | remark | varchar | 1024 | YES | 备注 |
9 | create_time | datetime | 0 | YES | 创建时间 |
10 | creator | bigint | 20 | YES | 创建人 |
11 | update_time | datetime | 0 | YES | 更新时间 |
12 | updater | bigint | 20 | YES | 更新人 |
13 | tenant_id | bigint | 20 | YES | 租户id |
产品库存表如下表4-10所示:
表4-10 jsh_material_current_stock产品库存表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | material_id | bigint | 20 | YES | 产品id |
3 | depot_id | bigint | 20 | YES | 仓库id |
4 | current_number | decimal | 24 | YES | 当前库存数量 |
5 | tenant_id | bigint | 20 | YES | 租户id |
6 | delete_flag | varchar | 1 | YES | 删除标记 |
供应商/客户信息表如下表4-11所示:
表4-11 jsh_supplier供应商/客户信息表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | supplier | varchar | 255 | YES | 供应商名称 |
3 | contacts | varchar | 100 | YES | 联系人 |
4 | phone_num | varchar | 30 | YES | 联系电话 |
5 | | varchar | 50 | YES | 电子邮箱 |
6 | description | varchar | 500 | YES | 备注 |
7 | isystem | tinyint | 4 | YES | 是否系统自带 |
8 | type | varchar | 20 | YES | 类型 |
9 | enabled | bit | 1 | YES | 启用 |
10 | advance_in | decimal | 24 | YES | 预收款 |
11 | begin_need_get | decimal | 24 | YES | 期初应收 |
12 | begin_need_pay | decimal | 24 | YES | 期初应付 |
13 | all_need_get | decimal | 24 | YES | 累计应收 |
14 | all_need_pay | decimal | 24 | YES | 累计应付 |
15 | fax | varchar | 30 | YES | 传真 |
16 | telephone | varchar | 30 | YES | 手机 |
17 | address | varchar | 50 | YES | 地址 |
18 | tax_num | varchar | 50 | YES | 纳税人识别号 |
19 | bank_name | varchar | 50 | YES | 开户行 |
20 | account_number | varchar | 50 | YES | 账号 |
21 | tax_rate | decimal | 24 | YES | 税率 |
22 | tenant_id | bigint | 20 | YES | 租户id |
23 | delete_flag | varchar | 1 | YES | 删除标记 |
机构表如下表4-12所示:
表4-12 jsh_organization机构表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | org_no | varchar | 20 | YES | 机构编号 |
3 | org_full_name | varchar | 500 | YES | 机构全称 |
4 | org_abr | varchar | 20 | YES | 机构简称 |
5 | org_tpcd | varchar | 9 | YES | 机构类型 |
6 | org_stcd | char | 1 | YES | 机构状态 |
7 | org_parent_no | varchar | 20 | YES | 机构父节点 |
8 | sort | varchar | 20 | YES | 机构显示顺序 |
9 | remark | varchar | 500 | YES | 备注 |
10 | create_time | datetime | 0 | YES | 创建时间 |
11 | creator | bigint | 20 | YES | 创建人 |
12 | update_time | datetime | 0 | YES | 更新时间 |
13 | updater | bigint | 20 | YES | 更新人 |
14 | org_create_time | datetime | 0 | YES | 机构创建时间 |
15 | org_stop_time | datetime | 0 | YES | 机构停运时间 |
16 | tenant_id | bigint | 20 | YES | 租户id |
角色信息表如下表4-13所示:
表4-13 jsh_role角色信息表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | name | varchar | 50 | YES | 名称 |
3 | type | varchar | 50 | YES | 类型 |
4 | value | varchar | 200 | YES | 值 |
5 | description | varchar | 100 | YES | 描述 |
6 | tenant_id | bigint | 20 | YES | 租户id |
7 | delete_flag | varchar | 1 | YES | 删除标记 |
新闻信息表如下表4-14所示:
表4-14 movie_news新闻信息表
序号 | 数据类型 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | 主键id |
2 | create_time | datetime | 0 | NO | 创建时间 |
3 | update_time | datetime | 0 | NO | 更新时间 |
4 | abs | varchar | 256 | NO | 摘要 |
5 | content | varchar | 2560 | NO | 内容 |
6 | picture | varchar | 128 | NO | 图片 |
7 | title | varchar | 128 | NO | 标题 |
8 | view_num | int | 11 | YES | 观看次数 |
用户信息表如下表4-15所示:
表4-15 jsh_user用户信息表
序号 | 列名 | 字段类型 | 长度 | 允许为空 | 备注 |
1 | id | bigint | 20 | NO | Id主键 |
2 | username | varchar | 255 | YES | 表头Id |
3 | login_name | varchar | 255 | YES | 商品Id |
4 | password | varchar | 50 | YES | 商品扩展id |
5 | position | varchar | 200 | YES | 商品计量单位 |
6 | department | varchar | 255 | YES | 数量 |
7 | | varchar | 100 | YES | 基础数量 |
8 | phonenum | varchar | 100 | YES | 单价 |
9 | ismanager | tinyint | 4 | YES | 含税单价 |
10 | isystem | tinyint | 4 | YES | 金额 |
11 | status | tinyint | 4 | YES | 备注 |
12 | description | varchar | 500 | YES | 图片 |
13 | remark | varchar | 500 | YES | 运杂费 |
14 | tenant_id | bigint | 20 | YES | 仓库ID |
功能实现
5.3. 销售管理
5.4. 仓库管理
5.6. 报表查询
5.7. 商品管理
5.8. 基本资料
5.9. 系统管理
系统测试
6.1. 测试的目的与目标
为了使系统稳定健壮,能够适应在各种环境下的使用场景,本系统使用各种方法对系统的整体内容加以测试,并在测试过程中找到系统存在的问题和不足,通过论坛网络资源等查询解决办法,解决遇到的问题。
6.2. 测试方法和内容
本次测试采用了软件开发中常用的压力测试,功能测试,健壮性测试以及安全性测试这4个测试方法。
利用压力测试测试了多个角色同时登录和操作对系统的负载和影响,查看是否有冲突等。
利用功能测试,测试系统各个功能模块在各种情况下是否使用正常,若测试出不正常的查看后台日志和bug输出,及时的解决各种bug。功能测试的方法主要就是采用不同的角色身份对系统整体流程进行操作,查看流程是否能够走通,逻辑是否有异常,功能实现是否有异常等。
健壮性测试就是测试系统在各种使用环境下是否能够正常使用,采用人为制造bug的形式,观察系统在运行中遇到bug后的情况。查看是否有逻辑漏洞,查看是否有突发事件异常无法处理等。
系统的安全性测试包含了2个部分的安全。一部分是系统接口调用安全,系统采用Session安全校验组件对整体的接口做安全校验拦截,若用户没有安全登录,则拦截所有对系统不安全的请求。另一部分是数据库安全,系统采用事务处理和Mybatis框架对数据进行数据安全校验,保证数据库持久化的数据正常。
6.3. 测试结论
经过一系列的测试排除和解决问题,本次基于Java的企业ERP系统达到能整体运行,前端适配性强,后台代码健壮,安全性高的目标。在测试过程中,发现了很多系统存在的问题,有很多的问题都是由于自己的不细心和知识储备不充分造成的。经过这次的测试开发我希望自己以后能够细心的对待开发过程,尽量减少开发编写过程中的bug。
结 论
本文介绍了基Java的ERP系统,采用目前市场上流行的springboot框架进行搭建,采用B/S架构对系统进行设计,采用shiro安全校验框架对系统的整体安全性能进行提升,使系统更加适用于需求明确且不复杂的企业。总体上来说,系统的结构还是比较完善的,各个角色的权限功能简洁方便,没有用不上的功能,但是还是有好多不尽人意的地方,本系统还是可以继续扩展增加功能的。比如说加上第三方支付,加上短信验证通知等,介于个人能力以及设计的时间有限,本设计仅实现适用于企业资源管理的核心功能,这些扩展功能就不一一的加入进来了。
通过本项目的开发,自己从中也学习到了java开发很多的知识,比如说springboot框架的搭建,数据库的设计,开发方案的确定,需求的分析等等这些问题,对自己的技术提升有很大的帮助。同时我在开发过程中也遇到很多的难题,比如说mybatis编写xml文件完成dao层的映射,手动编写sql语句,优化sql,设计数据库之间的关联等,通过解决这些问题我也意识到自己的能力点,然后有针对性的加强这些方面的学习。
希望自己以后能够做出更加完善的项目,一步步的解决这些问题,进一步提升自己的能力。
[1] 胡强.MySQL数据库常见问题分析与研究[J].电脑编程技巧与维护,2019(12):91-92.
[2] 刘新丽.电子产品企业性ERP系统设计与实现[D].硕士.哈尔滨:哈尔滨工业大学,2015
[3] 赵国文,夏平平.基于JavaEE的人事管理系统的设计与实现[J].现代工业经济和信息化,2019,9(11):88-89.
[4] 王小丽.中小企业资源计划管理系统的设计与实现[D].硕士.成都.电子科技大学.2018.06
[5] 陈静.基于云计算的新零售化妆品企业ERP系统的设计与实施[D].硕士.济南.山东大学.2020
[6] 段明磊.SaaS HR软件开发项目商业计划书[D].硕士,广州:华南理工大学,2019.
[7] 李凯佳.基于J2EE企业ERP管理系统的设计与实现[D].硕士.吉林:吉林大学,2019
[8] 陆长城.陇源公司ERP系统实施研究[D].硕士.兰州.兰州大学.2020
[9] 岳青玲.Java面向对象编程的三大特性[J/OL].电子技术与软件工程,2019(24):239-240
[10] 王崇娴.中小企业进销存管理信息系统设计与实现[D].硕士.南昌.江西财经大学.2017
致 谢
时间过得确实快,四年一下就过去了,好多时候我甚至感觉自己还是一个刚上大学的学生。大学四年里,经历了很多的人和事,很多人对我都很好,教我做人做事的方法和原则,很感谢他们帮助了我成长。很感谢我的老师们,是你们教会了我学习的本领,让我学习到很多的知识。从选题至今,碰到过很多的难点和疑问,经过老师的指导以及同事的帮助,我完成了这次毕业设计。
不管怎么说吧,大学四年匆匆过去了,留下的不仅仅是宝贵的知识财富还有很多美好的回忆。和老师及同学们一起拼搏的日子,我永远都不能忘怀。衷心感谢学院的各位老师们,谢谢大学四年有您们的关照,您们辛苦了!
<body> <div class="container"> <qq>1453632038</qq> <vx>yuquan1083</vx> </div> </body>