【springmvc+mybatis项目实战】杰信商贸-1.项目背景
1.项目背景
杰信项目物流行业的项目,
杰信商贸是国际物流行业一家专门从事进出口玻璃器皿贸易的公司。公司总部位于十一个朝代的帝王之都西安,业务遍及欧美。随着公司不断发展壮大,旧的信息系统已无法满足公司的快速发展需求,妨碍公司成长,在此背景下,公司领导决定研发《杰信商贸综合管理平台》。
《杰信商贸综合管理平台》分三期完成。一期完成仓储管理(包括:采购单、仓库、货物、条形码、入库、出库、退货、盘点、库存、库存上限报警、统计查询)和展会管理(包括:展会管理、出单管理),形成货物统一数字化管理。二期完成货运全流程管理,包括购销合同、出货表统计、出口报运单、HOME装箱单、装箱单、委托书、发票、财务统计等。三期完成决策分析(包括:成本分析图、销售情况统计、重点客户、经营情况同期比对统计、工作绩效),为公司经营决策提供数据支持。
我们解释一下一些名词:
一期的名词:
(1)仓储管理:货物储存在仓库里,每种货物有不同的分类,想取某个商品,需要在较短时间内精确的取出。这个时候就不是简单的将货物堆叠,比如我们哪些产品卖得好,就放在门口或者好取的地方,不好卖的放在里面。
总的来说就仓储管理是对货物进行合理分配使之能够迅速获取所需货物的管理方法。
(2)采购单:从供应商手中买东西,需要一个订单
(3)条形码:给每个货物上贴一个条形码,条形码的值怎么来的?条形码的杠杠粗细和数字并不是人画的,你给它一个编号规则(如jx0000),打印一个条形码就加1。和印刷厂联系,生产我们固定规则的条形码的不干胶,等到我们录入货物信息的时候,就把条形码信息给录进去,这个时候我们数据库中的货物就有一个唯一的条形码标志。关于扫描,我们日常超市使用的扫描器很贵,千把块钱(扫描精度非常高)。对我们企业来说,不需要那么精准的扫描器,我们可以使用手持的扫描枪(很多小超市使用扫描枪,不贵几十块钱至几百)。
硬件如何我们的软件系统挂钩?假设有一个界面是扫描界面,有一个input框,条码枪插到电脑上之后是有一个驱动的,安装驱动之后,条码枪扫到货物之后就会把相应编号填到input窗中,多个货物的编码可以用逗号链接,这样点击查询按钮就可以在数据库中查询了。
这里我们不需要软硬件结合的非常紧密,这样对系统的拓展性不好。我们硬件只完成扫描条形码,条形码直接传递给业务系统。硬件的任务就是,在当前鼠标的坐标点指向的输入框中填入扫描的条形码的编号,之后进行人为干预,点击"查询"就可以了(对输入框中的条形码的编号进行数据库的查询就可以了)。
(4)入库、出库、库存(ERP进销存系统):我们的货物生产之后放入仓库,也就是商品进行存储。货物出库就是从仓库取出,减去相应数值。库存的当前值就决定了仓库里货物的数量。
(5)退货:客户不接受货物,要记录货物是否被退货,要记录退货的信息。
(6)盘点:盘点仓库和货架上的货物,货物发生丢失损坏的情况,差值超过容忍范围就要追究负责人的责任。也就是再造一个账册,与库存的账册进行比对,其差值就是货物发生丢失损坏的情况。
(7)库存上限报警:反向。在五一或者十一热销日期,我们要提前备货,在原来库存的基础上进行货物增加,一旦货物小于规定的存储值,系统就会给出提示。
(8)统计查询:提供报表。
(9)展会管理:每个公司会有展台,展台上有样品。很多公司的销售机会都是在博览会获取的,在展台上展览公司的核心产品。这个时候展会的销售人员开始记录客户想要购买的货物的信息,愿意购买的价格,用户的联系方式等。展会上的客人有一个特点,看完一家就去下一家,不可能留有时间给销售人员记录信息,这样会流失一些不应该流失的单子。咱们前面有条形码,我们现场扫描之后系统从数据库取出货物信息,然后连接打印机出一个账单就可以了。这样即专业又节省客户时间。
我们接下来的编程主要就是实现二期
我们还需要打印Excel报表,需要熟练掌握报表的生成技术。
项目要分期吗?需要,但是我们这个项目只完成二期,在以后面试讲项目经验的时候就说自己来公司只负责二期的工作。
2.【面试】拿到新框架,如何下手
当到一家新的软件公司,公司给你一个新框架,让你完成一个简单模块的CRUD操作,你怎样完成?
步骤:
1)大概浏览一下说明的文档,了解软件解决什么问题,解决用户的什么需求
2)找jar,浏览它的核心框架,核心技术freemake(看到不了解的,百度,了解它的作用即可)
3)画图,画系统架构的草图
4)系统都是分层体系,都从后往前画。
a)看数据库配置文件,了解系统所连接的数据库,账号,密码
b)持久层
c)Dao 数据库访问层
d)Service 业务层
e)Controller/action 控制层
f)Jsp 视图层
找权限管理部门表,一般都是一个单表的CRUD操作。
找到模板,仿造模板,根据草图一步一步实现
遇到新的不了解的技术,应该怎么处理?百度,了解其作用即可。然后仿写。
3.用例图(了解业务)
了解业务,UML 用例图
业界画用例图 Rational rose UML 非常强大的工具(大公司)
用例图、类图、序列图、状态图(复杂状态流转时才画)
用PowerDesigner 画数据库建模
PD,ROSE都可以生产伪代码,但在实际业务中无人问津。
下面我们在用PowerDesigner 画用例图
我们在界面中这么设置:
我们按照上面的配置点击创建之后,界面如下图
画用例图的要点
1)角色:代表系统中的一类用户
2)用例:代表业务功能
3)连线关系:哪个角色操作哪些用例
画图的目的:为了开发人员了解整个系统的概貌,当画很多细节时,就会干扰我们对图的了解。
说明:我们的系统是内部系统,使用VPN才可以访问。外网访问的话我们把需要公布的信息使用WebService来对外提供。
我们画好的用例图如下
用例图是比较粗糙的,但是可以大致浏览系统功能。
细节可以用系统功能结构图来表示
4.系统功能结构图
1)功能点(分层,主次)演化成主菜单,左侧菜单,功能点
2)了解系统的所有功能
3)按功能点分配工作
4)用户报价的依据(按模块报价)
【springmvc+mybatis项目实战】杰信商贸-1.项目背景的更多相关文章
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码) 转 https://blog.csdn.net/lhl1124281072/article/details/800 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案
本文目录1. Net下日志记录2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 2.4 日志 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-10项目各种全局帮助类
本文目录 1. 前沿2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装3.XmlHelper快速操作xml文档4.SerializationHe ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-9项目各种全局帮助类
本文目录 1. 前沿2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装3.XmlHelper快速操作xml文档4.SerializationHe ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-8项目加密解密方案
本文目录1. 摘要2. MD5加密封装3. AES的加密.解密4. DES加密/解密5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等,Asp.N ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-7项目缓冲方案( Redis)
本文目录1. 摘要2. Redis配置3. RedisHelper4.使用实例 5. 总结 1. 摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数据存储在 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-3项目架构说明
本文目录1. 摘要2. 框架介绍 3. 权限管理之多一点说明4. 总结 1. 摘要 NCMVC角色权限管理框架是由最近练习Net Core时抽时间整理的系统,后续能不能发展成一个cms还要看朋友们是 ...
- 【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增
我们要实现新的功能,就是生产厂家的新增先来回顾一下系统架构图我们数据库这边已经建好表了,接下来要做的就是mapper映射 编辑FactoryMapper.xml文件,加入“添加”的逻辑配置代码块 &l ...
- 【springmvc+mybatis项目实战】杰信商贸-6.重点知识回顾
1.重点知识回顾 Maven1)覆盖仓库文件,实际企业开发,公司会架一个测试服务器,在测试服务器中架私服.我们开发人员的程序,都连接私服.当本地没有项目中要使用的jar,Myeclipse maven ...
随机推荐
- STM32 Cortex-M3 NMI异常
最近在调试STM32 Cortex-M3 HardFault异常,以外发现程序居然进入了NMI异常.对于这种异常,从来没有出现过,如下图所示. 此时的R0等寄存器的值如下图所示, 堆栈指针是0x200 ...
- Unity透明视频播放 所需的Shader脚本
Shader "Custom/ShaderMovie" { Properties { _MainTex("Color (RGB)", 2D) = "b ...
- Shader Optimization Tips
Author : http://www.cnblogs.com/open-coder/p/3982999.html During the last few months, I have been wo ...
- python 输入三个整数,按照从小到大的顺序打印
# # 3 输入三个整数,按照从小到大的顺序打印 a = int(input('请输入第一个整数:')) b = int(input('请输入第二个整数:')) c = int(input('请输入第 ...
- #leetcode刷题之路37-解数独
编写一个程序,通过已填充的空格来解决数独问题.一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只 ...
- 第一代到第四代多址技术:从FDMA、TDMA、CDMA到OFDMA
做通信物理层有关的内容研究已经有很长一段时间了.一直没有怎么总结,今天借着秋招,来总结一波. 本文所讲的是多址技术,日常常见的有时分多址.频分多址.码分多址,对应TDMA.FDMA.CDMA. 那么什 ...
- Python入门 —— 04字符串解析
字符串 -字符串是 Python 中最常用的数据类型.(可以说是大多数语言都常用) 1. 创建字符串 ( '' 或 "" 和 '''''')(单,双和三引号)(字符串可以为空) - ...
- php的基础知识(一)
php(超文本预处理器)定义: php(外文名:php:Hertext Preprocessor,中文名:“超文本预处理器”)是一种通用的开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于 ...
- 爬取猫眼TOP100
学完正则的一个小例子就是爬取猫眼排行榜TOP100的所有电影信息 看一下网页结构: 可以看出要爬取的信息在<dd>标签和</dd>标签中间 正则表达式如下: pattern ...
- 用elk+filebeat监控容器日志
elk 为 elasticsearch(查询搜索引擎),logstash(对日志进行分析和过滤,然后转发给elasticsearch),kibana(一个web图形界面用于可视化elasticsea ...