毕业设计之进销存管理系统——一步步搭建自己的框架及系统bojiangzhou

上面简单的展示了完成后的系统测试截图,你可以下载war包部署到自己的tomcat上看,下面开始进入正文。

开发一个(简单)系统,我想首要做的就是进行系统需求分析,弄清楚你为什么要做这个系统,这个系统有哪些功能模块,每个功能具体实现些什么功能。

当然,我这里的主要目的是完成毕业设计,交出毕业论文。但我并没有简单的只是为了完成一个毕业设计而去开发这个系统。主要想法是以开发这套进销存管理系统为例,详细说明一个系统从确认需求、技术选型、架构设计、系统实现到测试部署的整个开发过程。综合运用自己平时所学的知识、技术,及实习获得的经验等,去完整且较好的实现一个系统。搭建一个基础系统框架,形成一定规范,以后在此基础上做开发,可以省去很多诸如搭建框架、加入依赖、配置等工作。

这次开发所做的主要工作及意义如下:

①学会站在用户的角度分析用户需求,完成需求分析设计等。

③熟练掌握Spring+SpringMVC+Hibernate+ExtJs的开发技术。

④熟练使用maven构建工具。

⑤站在企业的角度,试着搭建自己的一个底层基础框架。

⑥建立完整的燃气管进销存管理系统,进行测试并分析结果。

⑦将系统部署到互联网上,以实现真正的web应用。

首先,对系统进行需求分析,首先需要了解的就是什么是进销存系统,进销存系统也称为供应链管理系统,最基本的内容就是采购、库存、销售、退货管理。进销存系统是对企业生产经营中采购、入库、销售进行跟踪管理,从采购单开始,到商品入库,商品销售出库,每一步都跟踪记录。有效解决企业的分销管理等业务问题。那么燃气管进销存系统有何不同呢,其实进销存系统已经具备了一般商品的进销存功能,燃气管就是一种商品。以此为出发点,开始着手设计系统功能模块。

系统分为6大模块,分别是基础设置、采购管理、销售管理、库存管理、统计分析、系统管理。系统设置的角色有admin、采购员、销售员、库存管理员等。

系统模块结构(使用xmind设计):

系统总体流程(使用visio设计):

需求确定了,就要进入具体的开发阶段,首先确定开发这个系统综合用到哪些技术、开发工具等。

简单说下这个系统的开发环境:

开发平台:windows8.1

Java版本:jdk1.8

项目管理工具:Maven

开发工具:IntellijIDEA

数据库:MySql5.1

服务器:Tomcat8.5

开发框架:Spring4+SpringMVC+Hibernate5

前端框架:ExtJs4.2+Jsp

建模工具:PowerDesigner、Visio

IDEA是java语言开发的集成环境,Intellij被公认为最好的Java开发工具之一。IDEA在代码自动提示、重构、调试、各类版本工具(maven、svn等)整合等方面都是比较强的。本人是在实习期间转用idea开发的,之前一直使用eclipse,相比eclipse,idea在调试、代码自动提示等方面更显优势。项目在idea中有一个更友好的目录结构,尤其是多工程项目。当然,eclipse比idea更容易上手,使用idea可以提高你的开发速度,但前提是你需要记住大量的快捷键。使用idea的调试功能,比如,你只需要按快捷键Alt+F8,然后输入表达式,就可以快速求值;在调试的时候,idea会在变量的后面以不同的颜色显示变量的值,你就可以很清楚的知道调试的每一步,非常方便。使用好IDEA能在很大程度上提高我们的开发速度。

ExtJs可以用来开发富客户端的ajax应用,是用javascript写的与后台技术无关的前端ajax框架,主要用于创建前端用户界面,拥有强大的数据处理功能,以及图表统计等。同时,ExtJs拥有很多个性化的主题供你选择,是开发后台管理系统的一个不错的选择。

在进行进销存系统的设计和编码之前,首先设计一个自己的底层框架,这个底层框架在之后可以作为其它具体项目开发的一个基础,从而不必每次开发项目时,都去做很多重复的工作。这个底层框架主要包括一个开发的规范,以及一些通用的工具类等,更重要的是分类别引入各个框架,如Spring、Hibernate、各个配置文件等。同时,如果以后在开发中,增加的一些新功能,还可以往这个底层中添加,不断的去完善。

在进行框架设计之前,为了使软件开发过程顺畅、提高代码的可靠性,可读性和可维护性等,首先需要确定的就是开发规范了,俗话说,没有规矩不成方圆,软件开发亦是如此。下面列出一些简单的需要遵守的规范。

首先需要遵守的是一些基础规范。一般来说,公司会将域名作为所有命名的一个基础,比如文件名、包名等等。因此我申请了一个域名[www.lyyzoo.com]作为个人域名。然后将D:/lyyzoo-repo作为开发的根目录,即个人代码仓库,以后所有的项目都会建到这个目录下。所有的项目开发使用maven来管理项目,因此目录结构是标准的maven规范目录。

maven约定的目录结构:

①命名

>所有的命名需要见名之意,尽量保证通过变量名得知变量的含义,需要注释的地方尽量添加注释。

>包命名全小写,通过域名倒写+模块的形式,如:com.lyyzoo.service

>类命名采用Pascal名法,大写字母开头,每个单词首字母大写。

>方法名采用Camel命名法,小写字母开头,每个单词首字母小写;getter和setter使用Lombok自动生成,只需添加@Data注解即可。

>变量名采用Camel命名法,小写字母开头,每个单词首字母大写。变量名不宜过长,可采用首字母缩写的形式,但要见名之意。

>常量名全大写,每个单词之间使用”_”分隔。

②分层

项目以功能模块划分,不同项目建立不同的工程,使用maven的依赖进行管理。包的基本分层有controller(控制层)、service(业务层)、dao(数据访问层)、entity(模型层)。

底层模块结构图:

以下是各个POM之间的关系:

①lyyzoo>pom.xml

②lyyzoo-base>pom.xml

③lyyzoo-starter>pom.xml

结构建好后,就需要进行一些详细的依赖配置工作了,lyyzoo是所有模块的父类,所以在lyyzoo中需要添加公用的属性、依赖管理、maven插件等。

首先将所有的版本号提出来,放到里,这样一旦需要切换到另一个版本时,就可以只改个版本号就达到目的了。其中列出了一些属性如下:包括底层的版本、Java版本、Spring、Hibernate的版本等等。

①首先需要引入lyyzoo下的其它模块,如lyyzoo-base-core、lyyzoo-starter-base等模块。

说明一下,整个底层很大一部分是从之前实习的公司(这个就不说了)直接拿过来的,有些则更改了。相信我拿取的这部分代码并不会涉及机密问题,不用于商业用途,仅仅只是学习,应该没多大问题。

lyyzoo-base-core目录结构:

lyyzoo-base-core是基础核心,封装了返回结果和加入了一些常用的工具类。

com.lyyzoo.bean包下封装了BaseBean和Result,BaseBean是Bean类的一个基础类,实现了序列化,重写了toString()方法,如下:

1packagecom.lyyzoo.bean;23importorg.apache.commons.lang3.builder.ToStringBuilder;4importorg.apache.commons.lang3.builder.ToStringStyle;56importjava.io.Serializable;78/**9*BaseBean实现序列化

10*11*@authorbojiangzhou12*@date2017-03-2713*/14publicabstractclassBaseBeanimplementsSerializable{1516/**17*ToStringBuilder–用于辅助实现Object.toString()方法

18*/19publicStringtoString(){20returnToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);21}2223}ViewCodeResult则封装了返回的结果,这里主要与ExtJs相对应,ExtJs进行ajax请求时,返回success=true,会进入success()方法;返回success=false,会进入failure()方法。同时,封装了返回消息、标识、错误信息等,便于前端拿到相应数据。

lyyzoo-starter-base目录结构:

lyyzoo-starter-base是web应用程序的一个基础,主要封装了基础实体类以及spring-base和日志的配置。实体的顶层是AbstractEntity,AbstractEntity继承BaseBean。AbstractEntity重写了equals和hashCode方法,主要做的处理是,如果两个实体的id相同也算这两个对象为同一个对象。代码如下:

1packagecom.lyyzoo.data.entity;23importcom.lyyzoo.bean.BaseBean;45importjava.io.Serializable;67/**8*抽象实体类重写equals和hashCode方法9*10*@authorbojiangzhou11*@date2017-03-2812*/13@SuppressWarnings("serial")14publicabstractclassAbstractEntityextendsBaseBeanimplementsSerializable{1516publicabstractIDgetId();1718@Override19publicbooleanequals(Objectobj){2021if(null==obj){22returnfalse;23}24if(this==obj){25returntrue;26}27if(!getClass().equals(obj.getClass())){28returnfalse;29}3031AbstractEntity<>that=(AbstractEntity<>)obj;3233returnnull==this.getId()false:this.getId().equals(that.getId());34}3536@Override37publicinthashCode(){38inthashCode=17;3940hashCode+=null==getId()0:getId().hashCode()*31;4142returnhashCode;43}4445}ViewCodeBaseEntity则继承AbstractEntity,BaseEntity作为其它实体的父类存在,BaseEntity定义了主键ID的生成策略。代码如下:

在开始开发一个系统之前,首先需要做的就是根据需求分析设计系统的实体对象以及对应的数据库表结构,这是开发的基础。

根据前面的需求分析设计的功能模块,实体对象可以分为5个模块,分别是系统模块(system)、基础模块(base)、采购模块(purchase)、销售模块(sale)、库存模块(stock)。下面是实体清单:

有了清单之后,利用PowerDesigner进行数据库物理模型设计。由于拥有对数据库的完全控制权,所以不对表设置约束,所有的约束在程序代码中进行控制。下面列出各个实体的属性即对应的表,具体可参考《数据库物理模型.pdm》。物理模型设计完成后,创建名为gpss的数据库,然后创建各个表。

数据库模型:

需求分析做完了,技术没问题,底层架构也设计好了,数据库设计好了,前面的所有准备工作做完了,下面就要进行燃气管进销存系统的编码实现了。首先要做的工作就是创建工程,项目名拟为gpss,即燃气管进销存(GasPurchaseSaleStock)的缩写,工程名则为lyyzoo-gpss。

lyyzoo-gpss目录结构:

lyyzoo-gpss>pom.xml:

lyyzoo-gpss-base>pom.xml:

lyyzoo-gpss-web>pom.xml:

一些基础的配置如下:

比如JDBC的属性:

config-online.xml:

maven环境配置,在lyyzoo-gpss>pom.xml中配置两个环境:

1234dev567env8dev91011121314online151617env18online19202122ViewCode不同环境打包插件(portable-config-maven-plugin)的配置:

1234com.juvenxu.portable-config-maven-plugin5portable-config-maven-plugin61.1.578910replace-package1112131415src/main/resources/portable/config-${env}.xml16171819ViewCode3.模块分层3.1lyyzoo-gpss-base工程建好后,创建包的结构。按照一般的分层方式,分为dao层、entity层、service层,同时,每层下按模块划分为system、base、purchase、sale、stock。然后在entity下根据表设计创建实体类。

lyyzoo-gpss-base目录结构:

然后是lyyzoo-gpss-web模块,该模块主要是controller层,以及静态资源文件、jsp文件等。com.lyyzoo.gpss.web作为controller层的包,同样,在web下按系统模块划分。

lyyzoo-gpss-web目录结构:

lyyzoo-gpss-web/src/main/webapp/static作为静态文件的根目录,static/lib目录作为三方类库的根目录,如ExtJs、jQuery、其它的插件等。static/css是系统css文件的根目录;static/img是图片的根目录;static/js是系统js文件根目录,/js下同样按模块划分。

静态资源文件目录结构:

taglib.jsp中引入了标签和设置了资源的路径:

BaseController代码如下:

HomeController代码如下:

系统容错性测试,主要是测试输入一些错误的数据类型以及超出范围的数值测试系统在异常条件下的行为。系统在这方面做得比较好,如果用户输入了一些非法的数据,会立即提醒用户输入正确的数据。首先会在前台判断用户输入的数据的合法性、是否必须输入等,数据传到后台后,还会在代码里判断一次数据是否正确,才会保存到数据库。而系统使用的Jdbc也能在一定程度上防止SQL注入等问题。如果系统发生一些无法预测的异常,也会以友好的界面提示用户,以便技术员及时维护系统。

总体来说,整个的测试过程比较顺利,也存在一些小问题,就立即修复了。功能全部实现了,该系统能满足一个基本的进销存流程,以后也还可以扩展。

写到这里就基本完了,大学四年的最后一篇博客,以后就是在工作中去学习了。

很开心,要离开学校了,可以去工作找money了;很忧伤,要离开学校了,一生中可能最舒适的时光就是大学时光了。

我很喜欢我的学校——西南大学,坐落于缙云山下,环境优美、美女如云,哈哈!

THE END
1.乐销药农资进销存管理系统农销乐农资进销存管理系统是专业的农药电子台账提供商,已成功帮助中国10万家农药店办理农药经营许可证。通过农销乐农资进销存管理系统/农药电子台账,您可以了解每个客户或每种产品有多少收益、在过去哪个产品卖的最好,账目一目了然,专业易用,一看就会!通过一站式服务https://nongxiaole.com/articles
2.农资进销存台账管理系统精准农业供需链的数字化操控者在现代农业中,农资进销存台账管理系统已经成为提高农业生产效率、优化资源配置和降低成本的关键工具。这种系统不仅能够帮助农场主和经销商精确记录每一笔交易,还能实时更新库存信息,为他们提供决策依据。 首先,让我们来看看何为“进销存台账”。这是一个详细记录了所有购买商品(进货)、销售商品(销货)以及现有库存数量的账https://www.3qzuyeya.com/liang-you-zuo-wu-zhong-zhi/610857.html
3.农药app有哪些?专门卖农药的正规app下载学农药知识的软件买农药在哪个app?什么软件app可以购买农药?网上买农药下载哪个APP?小编今天为大家整理了一些可以直接在网上购买农药以及查询农药的手机app,包括农一网、中国农药查询、大丰收168农资电商、农药第一网、盐都益农网、植品汇、耘眼、种地保农资、云南农药监管等,包含的农药种类多,可以满足不同庄稼的喷洒需求!http://www.downcc.com/k/nongyaoapp/
4.农资进销存台账管理系统我的收成之路不过,由于不断完善和优化,这些问题变得越来越少,对我的工作产生了积极影响。现在,每当春季降临,一切准备都在这套农资进销存台账管理系统下进行,无论是我购买什么样的种子还是何时开始播種,都充满信心,因为我知道自己拥有了一把看透未来的大门——无论是丰收还是寒冬,只要掌握好这些数字,就能在农业领域游刃有余。https://www.deoyjxkbs.com/ke-pu-wen-zhang/331316.html
5.进销存平台app下载历史版本 标签:会员管理 介绍 集会员管理、商品进销存、微信商城、分销拓客等功能于一体。解决店铺信息化管理,赋能新零售。让天下没有难做的生意!【微信会员】顾客扫码即为会员,方便省事;【微信商城】让您的生意随时随地都在进行;【分销拓客】发动全民来做你的销售员;【微信营销】微信消费通知,微信自助查询,微信电子https://m.liqucn.com/rj/137787.wml
6.农资进销存台账管理系统对农业生产有什么具体作用在现代农业中,农资进销存台账管理系统(以下简称“农资管理系统”)已经成为提高农业生产效率、降低成本和提升竞争力的重要工具。它不仅能够帮助农民更好地控制和监管农药、种子、肥料等农业投入品的流动,而且还能为他们提供数据分析服务,从而做出更加科学的决策。 首先https://www.l0dm1h3tk.cn/hua-hui-zi-xun/488783.html
7.农资管理新篇章进销存台账系统的智慧运作在现代农业生产中,农资(农业化学品)管理是确保作物健康、提高产量和质量的关键环节。传统的进销存台账记录往往依赖于人工记载,容易出现误差和遗漏。随着信息技术的发展,农资进销存台账管理系统逐渐成为现代农业生产中的重要工具。 首先,这种系统能够实时更新库存信息,无需手动核对,便捷高效。用户可以通过电脑或手机轻松查询到https://www.mefyxql8a.cn/qin-lei-yang-zhi-ji-shu/224468.html
8.进销存软件免费版下载,高效助力企业运营的管理神器摘要:进销存软件免费版下载,是一款助力企业高效运营的管理工具。该软件可帮助企业实现进货、销售、库存等业务流程的自动化管理,提高工作效率,减少人为错误。该软件还具有易用性、稳定性和安全性等特点,可满足不同企业的需求,是企业管理的得力助手。 本文目录导读: http://zjqrzy.cn/post/4693.html
9.管家婆八肖版资料大全值得支持在当今信息爆炸的时代,如何在纷繁复杂的数据中抽丝剥茧,找到真正有价值的信息,成为了许多人面临的挑战,而“管家婆八肖版资料大全”作为一款集数据汇总、分析预测于一体的软件,其最新版本v104.703的推出,无疑为众多需求者带来了福音,本文将从多个维度探讨这款软件为何值得支持与安装。 https://3g.yqjhsl.com/new/2491.html
10.中国农药数字监督管理平台本次升级之后最新版本号是1.8.8,1.5.74及之前版本若无法正常升级请下载最新版本客户端进行安装,下载地址是https://www.icama.cn/农资进销存管理系统.zip。 附件:1.农资进销存管理系统安装程序 2.农资进销存管理系统用户服务协议 3.农资进销存管理系统安装手册 https://www.icama.cn/portal/homepage/getpitai.do?id=2c9280e5635ee6ca016371c08b420dbc&type=1
11.销售管理软件哪个好?销售管理系统免费版销售管理软件推荐商一通进销存管理系统appv1.1.5 安卓版商务办公 / 17.4M / 2021-02-07下载 云知数据v1.3.83 安卓版商务办公 / 59.9M / 2021-03-11下载 订单日记v1.0 官方版商务办公 / 4.3M / 2021-09-15下载 抖音销帮appv1.2.1 最新版商务办公 / 44.2M / 2023-05-31下载 销售管理平台软件v1.1.8 最新版商务办https://m.qqtn.com/k/xsglxt
12.中医处方系统软件免费版本V1.8中医处方系统软件免费版本V1.8是一款专为医学专业人士设计的综合性中医管理软件,集成了处方、病历、病案、配方以及门诊管理等多种功能。这款软件的主要目标是提高中医诊疗过程的效率,规范处方书写,同时方便数据存储与管理。 作为一款中医处方软件,它具备强大的处方管理功能。用户可以根据病症、体质等因素输入相应的中药方剂https://download.csdn.net/download/soft119/5830289
13.2021爱快销进销存v1.8.3.87.IM客服系统接入8.修复客户地图海量点不展示9.更改隐私权限 爱快销进销存介绍 快销-爱快销进销存管理软件主要功能包括:销售管理、订单管理、客户管理CRM,业务拜访、路线规划、外勤管理、车销访销、库存管理、采购管理软件。适用于快消品超市经销商等行业,让销售人员轻松规划客户拜访、外勤出货单开单。支持多种销售https://m.wandoujia.com/apps/8006746/history_v81
14.柠檬云进销存官方app下载版本:v3.3.8免费版 分类:办公必备 大小:19.3M 语言:中文 时间:2024-03-12 10:9 星级: 官网:暂无 柠檬云进销存app是一款手机进销存系统软件,这款软件可以针对中小企业或者是个体户商户提供非常方便快捷的进销存管理功能,操作简单,可以方便店铺管理,还有各种仓库的商品进出管理等等,另外所有功能免费使用哦! https://www.fxxz.com/azsoft/554150.html
15.一款中小企业的进销存管理系统,无需编写任何代码,支持高效开发这是我目前见过最好的进销存管理系统项目。功能完整,代码结构清晰。值得推荐。 项目介绍 功能模块 代码语言:javascript 复制 ┌─库存管理 │ ├─入库管理 │ │├─采购入库(自动生成采购应付)│ │├─采购退货出库(自动生成红字采购应付)│ │ ├─盘盈入库 https://cloud.tencent.com/developer/article/2161278
16.清政〔2023〕5号清丰县人民政府关于印发清丰县县域商业体系建设根据《河南省商务厅河南省财政厅河南省乡村振兴局关于开展新一批县域商业体系建设试点县(市)认定工作的通知》(豫商建〔2023〕2号)工作要求和全县发展最新动态,制定了《清丰县县域商业体系建设实施方案》,出台了《清丰县县域商业体系建设项目考核验收制度》《清丰县县域商业体系建设项目管理制度》《清丰县县域商业体系建设http://www.qingfeng.gov.cn/show.asp?id=1000003221
17.管家婆最准一肖一马,系统执行管理总的来说,头部精准数据在当今商业环境中扮演着至关重要的角色。而系统执行管理_创新增强版7.5.48则为企业提供了更加高效和精准的数据支持,帮助企业在激烈的市场竞争中立于不败之地。因此,企业应当充分利用头部精准数据及系统执行管理的优势,不断提升自身的竞争力,实现可持续发展。扫一扫在手机打开当前页 http://www.xjche365.com/dodoc/jiangxi/120787.html
18.诺言电脑版下载诺言财税综合服务软件下载v1.8.7.259版本:v1.8.7.259大小:102.15M语言:简体中文类别:办公软件 类型:国产软件 授权:免费软件 更新:2024-05-06 厂商:浙江诺诺网络科技有限公司 环境:Windows11,Windows10,Windows8,Windows7 9.1 0%0% 详情介绍 诺言电脑版是一款集办公、交流、服务为一体的智能化办公协同平台软件,软件整个设计界面清爽美观,美观用户都能即https://www.32r.com/soft/88264.html
19.管家宝进销存管理系统管家宝进销存管理系统下载管家宝进销存管理系统功能完善强大,易学易用、高效实用让您管理企业游刃有余。进销存和财务紧密结合,特别适合中小型企业使用。https://www.crsky.com/soft/26538.html
20.乐发lX下载下载网络管理| 下载 3 微信Mac版v3.7.0官方版本 聊天工具| 下载 4 macOS 10.13v10.13.6官方版本 操作系统| 下载 5 优酷v1.9.9.09197官方版本 媒体播放| 下载 6 macOS 10.14v10.14.6官方版本 操作系统| 下载 7 企业微信Mac版v4.1.3.90694官方版本 聊天工具| 下载 8 QQ Mac版v6.9.12.10951官方http://www.hsbpgy.com/
21.Java实战范例之进销存管理系统的实现java读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+vue+Springboot+ssm+mysql+maven+redis实现一个前后端分离的进销存管理系统,大家可以在过程中查缺补漏,提升水平https://www.jb51.net/article/229088.htm
22.精准信息预测免费官方版下载网络管理|下载 3微信Mac版v3.7.0官方版本 聊天工具|下载 4macOS 10.13v10.13.6官方版本 操作系统|下载 5优酷v1.9.9.09197官方版本 媒体播放|下载 6macOS 10.14v10.14.6官方版本 操作系统|下载 7企业微信Mac版v4.1.3.90694官方版本 聊天工具|下载 8QQ Mac版v6.9.12.10951官方版本 聊天工具|下载 9钉钉Mac版v7.0http://www.jinxcm.com/
23.没有找到站点您的请求在Web服务器中没有找到对应的站点! 可能原因: 您没有将此域名或IP绑定到对应站点! 配置文件未生效! 如何解决: 检查是否已经绑定到对应站点,若确认已绑定,请尝试重载Web服务; 检查端口是否正确; 若您使用了CDN产品,请尝试清除CDN缓存; 普通网站访客,请联系网站管理员;http://www.zhiguan100.com/
24.凤凰56677app下载网络管理| 下载 3 微信Mac版v3.7.0官方版本 聊天工具| 下载 4 macOS 10.13v10.13.6官方版本 操作系统| 下载 5 优酷v1.9.9.09197官方版本 媒体播放| 下载 6 macOS 10.14v10.14.6官方版本 操作系统| 下载 7 企业微信Mac版v4.1.3.90694官方版本 聊天工具| 下载 8 QQ Mac版v6.9.12.10951官方http://010m.ytzshn.cn/