毕业设计之进销存管理系统——一步步搭建自己的框架及系统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.金蝶精斗云进销存金蝶云进销存软件系统金蝶云进销存软件是金蝶旗下专为小微企业提供的云进销存、金蝶进销存、云进销存软件、进销存管理软件、进销存系统、库存管理。随时随地,帮您轻松管理生意,异地协同,数据共享,全球零距离,热线咨询电话:400-830-0755。https://www.jdy.com/yjxc/
2.进销库存管理系统随着市场竞争的加剧,企业的管理也越来越重视进销存管理。进销存管理是企业管理中的重要环节,它直接关系到企业的生产、销售和利润。为了更好地管理企业的进销存,许多企业开始使用进销库存管理系统。 进销库存管理系统是一种集进销存于一体的管理软件,它可以帮助企业实现对进货、销售和库存的全面管理。进销库存管理系统可以https://www.dugusoft.com/zixun/zixun4475.html
3.进销库存管理系统(WMS)低成本高效升级版通过使用进销库存管理系统,企业可以更准确地控制和维护库存、管理物流,以及系列的过程简化和现代化的工作模式,不仅大幅度缩短了库存维护和管理的时间成本,还有助于减少废品损失和提高产品质量,在较短时间内获得更高的投资回报率。 4. 提供全方位的支持 进销库存管理系统提供全方位的支持,在出现故障时能够提供即时的技http://guangzhou.11467.com/info/19474261.htm
4.进销库存管理系统excel版下载在商业贸易的过程中商家一般都需要对货物的进销存进行管理,如果想让自己的工作效率更高管理更方便,可以试试小编今天带来的这款进销库存管理系统excel版软件,这款软件能够帮助用户对商品的信息进行详细的记录和管理,包括出入库和财务数据等等,还支持用户随时查询哦! https://www.crsky.com/soft/455273.html
5.进销库存管理系统excel版.zip进销库存管理系统excel版,简单的出入库管理软件,小型企业足够使用 进销存 出入库软件 库存管理软件2019-05-31 上传大小:712KB 所需:50积分/C币 进销存管理系统(Excel VBA实现).zip 进销存管理系统(Excel VBA实现).zip 进销存管理系统(Excel VBA实现).zip https://www.iteye.com/resource/cici520114-11217949
6.简易管理工具进销库存管理系统excel版吾爱破解以前计算机物资还是自已管理的时候用过一段时间,还是挺方便的,放到U盘都能随身携带。基本功能都有,有https://www.52pojie.cn/forum.php?mod=viewthread&tid=1676574
7.进销库存管理系统excel版.zip(713KB)百度网盘资源下载进销库存管理系统excel版.zip 713KB 网站声明 请认真阅读以下说明,您只有在了解并同意该说明后,才可继续访问本站。 1. 全站链接通过程序自动收集互联网公开分享链接,本站不储存、复制、传播任何网盘文件,也不提供下载服务。 2. 毕方铺遵守相关法律法规,坚决杜绝一切违规不良信息,如您发现任何涉嫌违规的网盘信息,https://www.iizhi.cn/resource/detail/69a96ef33014ce2b0b5a95d249c648b6
8.库管王破解版库管王v1.0在线进销库存管理系统下载库管王v1.0是一款非常强大的在线进销库存管理系统,是一款具有BOM(物料清单)的在线进销存软件,具有实时更新仓储数据,让我们时刻看到原材料和产成品在仓库中的动态,具有实现多端同步、多人协同、轻松管理智能仓储的特点,突出了现代化办公中“云”的特点,便于用户进行管理仓库! http://www.winwin7.com/soft/7134.html
9.畅捷通易代账智能库存管理系统进销存管理系统畅捷通易代账智能库存管理系统,发开票商品名称与存货智能匹配推荐库存管理存货,系统会智能记忆与存货档案对应关系,通过存货别名,解决发票上开票商品名称不一致的情况。产成品成本一键分配,库存报表灵活查询。https://www.yun88.com/product/4698.html
10.库管易Excel库存管理系统20220618更新WIN版编码:1398之前分享的库管易Excel库存管理系统已更新版本了,这期二花虚拟资源(www.erhua.cc)就分享给有需要的小伙伴。 库管易网站的表格版块有很多实用出入库管理表格,作者经过分析与提取各个表格中的实用功能,制作了这套通用Excel库存管理系统表格。 它包含仓库货物做账用到的入库、出库、汇总、报表等全部功能,非常适合仓库的出https://www.erhua.cc/Chajian_view_id_4062_cid_252.html
11.通用Excel库存管理系统,最好用的Excel出入库管理表格库管易网站的表格版块有很多实用出入库管理表格,得到广大仓库管理同行的支持,经过分析与提取各个表格中的实用功能,专门制作了本套《通用Excel库存管理系统》表格。包含仓库货物做账用到的入库、出库、汇总、报表等全部功能,适合绝大部分的仓库、商铺、网店的出入库管理。 http://www.360doc.com/content/18/0124/17/52031427_724765825.shtml
12.库存管理系统图片免费下载库存管理系统素材库存管理系统模板千图网为您找到53张库存管理系统相关素材,千图网还提供库存管理系统图片,库存管理系统素材, 库存管理系统模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/kucunguanlixitong.html
13.软件/中英文版进销存系统/中英文版库存管理系统/中英文版erp系统中英文版库存管理——入库单英文界面 中英文版连锁配送——调拨送货单英文界面 中英文版销售管理——销售订单英文界面 中英文版销售管理——销售开单英文界面 中英文版库存管理——货品明细账英文界面 中英文版多门店库存管理——库存分布表英文界面 启网中英文进销存软件/中英文ERP软件APP端——功能主界面 http://www.startnet.com.cn/MultiLanguage/MultiLanguage_05
14.软件系统物料清单进销存仓库库存管理软件库存管理系统,在线进销库存管理系统。什么云进销存软件好用?库管系统,工厂仓管软件,商品库存管理软件,工厂仓库管理系统,在线进销存报表,库房管理出入库管理,仓储管理在线云进销存,库房管理、物料管理、仓库管理、物料清单管理就选库管王仓库管理系统。http://www.kuguanwang.com/
15.软件系统物料清单进销存仓库库存管理软件库存管理系统,在线进销库存管理系统。什么云进销存软件好用?库管系统,工厂仓管软件,商品库存管理软件,工厂仓库管理系统,在线进销存报表,库房管理出入库管理,仓储管理在线云进销存,库房管理、物料管理、仓库管理、物料清单管理就选库管王仓库管理系统。http://www.guojing.net/ad/ad-sz/index.html
16.门店商品库存管理制度(通用8篇)在我国便利店的库存周期一般有51天, 物流管理成本占总成本的14%, 商品信息反馈不及时, 预测不精确, 导致存货结构、周期不够合理, 给企业造成了大量多余的物流成本。库存控制随意性太大, 大多数便利店的库存控制的技术水平低下, 人员素质较低缺乏统一的标准和明确的岗位职责。目前, 多数便利店的库存控制系统存在着https://www.360wenmi.com/f/fileyytfw5k8.html
17.JSP进销存管理系统(MVC)进销存源码带手机版资源基于jsp库存管理系统 浏览:101 仓库进销存管理,管理员对其进行商品进行管理的一个应用软件。 JSP超市进销库存管理系统,SSM超市进销库存管理系统 浏览:0 JSP超市进销库存管理系统,SSM超市进销库存管理系统 功能:管理员和普通员工登录,库存管理,进货管理,商品信息管理,供应商,客户,员工管理,库存预警,临期商品提示。 技术https://download.csdn.net/download/linuxzzj/568762
18.库存管理源码asp腾讯云开发者社区默认的网站停止,然后启动test网站要想同时运行多个网站三种方法: 1.改端口号 2.改IP地址 3.绑定的域名不同首先我们需要配置如下文件:鼠标右键->属性->检查主目录- C# WINFORM进销存系统开发(内涵免费源码+部分实操视频讲解) 互联网的时代,电商火爆,大家都开始进行线上销售货品,那你是如何管理你的商品库存和进销https://cloud.tencent.com/developer/information/%E5%BA%93%E5%AD%98%E7%AE%A1%E7%90%86%E6%BA%90%E7%A0%81asp
19.库管王温度ERP简库存仓库库存管理系统软件进销存ERP系统库管王,一款把仓库装进口袋的轻量级ERP系统 为什么要使用库管王? 专注中小企业库存管理,功能全面,操作灵活,高效管理 适合广大中小企业 库管王自动预警系统,一旦库存高于或低于警戒线就自动报警,确保万无一失 实时更新库存信息,随时随地支持电脑和 手机查看最新数据 https://www.zhihuierp.com/
20.小企业进销存管理软件生产企业进销存管理软件小企业进销存管理软件,进销存软件起源于80年代,互联网的发展,社会的快节奏,促使人们开始用电脑解决小企业记账管理进货库存https://www.duote.com/zt/qykc/
21.管理系统图片管理系统设计素材红动中国素材网提供373个管理系统图片、管理系统素材、管理系统背景、管理系统模板、管理系统海报等PS素材下载,包含PSD、AI、PNG、JPG、CDR等格式源文件素材,更多精品管理系统设计素材下载,就来红动中国,最后更新于2024-11-28 18:12:56。https://so.redocn.com/guanli/b9dcc0edcfb5cdb3.htm
22.系统库存管理系统进销存记账软件仓总管是新一代进销存SAAS服务产品,致力于为用户提供仓储进销订单管理、订单账务、库存管理系统一体化服务。支持多网点管理,同时涵盖供应链管理、收付款计划、应收实收对照、退换货、盘点、领用、统计分析等功能,全流程多场景服务。http://www.hxginfo.com/
23.库存管理系统进销存软件进销存管理系统专为门店打造的库存管理系统软件,商品进销存管理全方位支持,进货退货、库存盘点、供应商管理等多元化管理功能,数据报表清晰明了,实时掌控进销库存信息。https://www.nakesoft.com/kucun.html