# 前言

  • 本系统原本开源了一年左右的时间
  • 但发现有些软件公司没有遵循开源规则,私自牟利,作者疲于应付
  • 而且一般来说,物流公司不具备开发能力,开不开源对他们无意义
  • 因此决定本系统不再开源,并开放使用授权,免费提供给物流公司使用

# 版权

  • 本系统所有打包部署的程序放在kasa_runtime目录里,已涵盖全部功能, 且能正常执行, 供有需要的朋友学习及使用.
  • 本系统虽然已开放使用,但版权仍属于本公司,依法独立享有该软件的所有权利,未经公司授权,不得将之用于商业盈利的任何用途.
  • 物流公司可免费使用本系统, 但在使用前, 请认真评估系统的业务流程是否适合自己!

# 作业流程图

![在这里插入图片描述](../assets/kasa/ui/wms_workflow.png)

# 功能列表

本系统支持大多数自有仓库的仓储管理,通过系统打印入库、出库的单据,仓库工作人员通过客户端(Swing/浏览器/PDA)的操作,进行仓库作业,极大提高现场的作业效率,同时支持低温环境下冻品作业,已在零下18度的仓库环境下进行过实操验证(武汉山绿冷链物流有限公司)

┏━EDI(电子数据接口):可通过电子文档导入订单、基础数据、库存初始化等,也可作为线上数据对接的入口
┣━AMS(权限管理系统):通用权限管理+业务权限管理
┣━OMS(订单管理系统):入库/出库单管理,提供审核功能,审核通过的订单才能进入WMS系统
┃  ┣━入库订单
┃  ┗━出库订单
┣━WMS(仓储管理系统)
┃  ┣━收货
┃  ┃  ┣━收货单管理
┃  ┃  ┣━生成统一收货单
┃  ┃  ┗━打印收货库存码
┃  ┃  ┗━上架
┃  ┣━发货
┃  ┃  ┣━发货单管理
┃  ┃  ┣━拣货计算
┃  ┃  ┣━列印拣货单(选)
┃  ┃  ┣━生成拣货任务
┃  ┃  ┣━任务调度
┃  ┃  ┣━任务调整
┃  ┃  ┣━发货确立
┃  ┃  ┣━出货集货储位(选)
┃  ┃  ┣━出货集货栈板(选)
┃  ┃  ┣━拣货还原
┃  ┃  ┗━拣货波次
┃  ┣━库内管理
┃  ┃  ┣━栈板调整
┃  ┃  ┣━储位调整
┃  ┃  ┣━商品状态调整
┃  ┃  ┣━报废
┃  ┃  ┣━库存调整
┃  ┃  ┣━特殊调整
┃  ┃  ┗━商品控制
┃  ┣━库内查询/统计
┃  ┃  ┣━储位库存查询
┃  ┃  ┣━商品库存查询
┃  ┃  ┣━储位库存状态
┃  ┃  ┣━储位库存分组统计
┃  ┃  ┣━商品库存状态统计
┃  ┃  ┣━商品进出库统计
┃  ┃  ┣━货物进出查询
┃  ┃  ┣━储位进出查询
┃  ┃  ┣━查询当日异动
┃  ┃  ┣━入库单明细查询
┃  ┃  ┣━统一收货单明细查询
┃  ┃  ┣━出库单明细查询
┃  ┃  ┣━处理中拣货单明细查询
┃  ┃  ┣━已出货拣货单明细查询
┃  ┃  ┣━储位调整明细查询
┃  ┃  ┣━库存调整明细查询
┃  ┃  ┣━特殊调整明细查询
┃  ┃  ┣━强制进货验收查询
┃  ┃  ┣━商品进货最新制造日期
┃  ┃  ┣━商品出货最新制造日期
┃  ┃  ┣━拣货位剩余库存盘点表
┃  ┃  ┣━订单->任务明细
┃  ┃  ┗━拣货任务->出货单->任务明细
┃  ┣━日结作业
┃  ┃  ┣━库存日结
┃  ┃  ┣━列印日结报表
┃  ┃  ┣━取消日结
┃  ┃  ┣━查询日结异动
┃  ┃  ┣━日结储位库存
┃  ┃  ┣━日结商品库存
┃  ┃  ┗━库存日结明细
┣━TMS(运输管理系统):客户用的不多,后期就没怎么维护了,功能列表已注释
┣━FMS(财务管理系统):客户用的不多,后期就没怎么维护了,功能列表已注释
┗━基础数据(太多,不一一列举,见系统)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

# 软件历史

本套系统从2006年孕育,到2007年有客户上线正式运营,到目前已有17个年头。

# 本系统服务的物流公司有:

  1. 武汉宝沃勤物流有限公司(最初客户,现改为卓尔宝沃勤)
  2. 九裕物流-金六福酒业集团下属的物流企业:长沙仓(家电配送)、南昌仓(红牛集团饮品配送,有线上数据对接,通过红牛sop系统推送订单数据,仓库处理完后,返结果给红牛sop系统)
  3. 天津新辰物流有限公司,主营生鲜食材,订单数据来源于EDI导入
  4. 武汉山绿冷链物流有限公司-武汉市供销社直属企业:仓库是冻仓, 零下18度, 使用PDA作业, 主配送百胜餐饮的华中地区,有线上数据对接,通过百胜系统推送订单数据,仓库处理完后,返结果给百胜系统,另还管理其它货主的物品。
  5. 其它小客户就不一一说明了

# 本系统服务的货主客户有:

  1. 华润万家
  2. 沃尔玛
  3. 家乐福
  4. 海尔家电
  5. 九阳电器
  6. 格力家电
  7. 金六福酒业
  8. 红牛饮品
  9. 肯德基冻品
  10. 麦当劳冻品
  11. 小肥羊冻品
  12. 双汇集团
  13. 其它小客户就不一一说明了

# 迭代说明

  • 由于系统陆陆续续开发了很多年,经历过多次版本迭代升级,可以说是一个大杂烩,融合了很多技术及框架,因此避免不了架构上有一定的混乱及代码风格差异大,但系统在运营的所用客户中,稳定性和效率性还是没问题的。
  • 本系统最初是C/S架构的,通讯使用的数据包协议是公司自研开发的(好处是大大减少传输层的数据量,提高通讯性能,这在当年机器性能和网络带宽低下的情况下还是非常有用的),然后改成现在的C/S+B/S混合运行(原通讯协议还是保留,同时增加转换协议,将原数据转换成json数据),原因是随着物流公司的业务变化,需要与货主公司进行线上数据对接,因此采用springboot框架,这样就导致原主要的仓储业务逻辑使用hibernate持久层(代码在server_storage项目文件夹里),线上数据对接部分使用mybatis作为持久层(代码在kasa_webserver_springboot项目文件夹里)
  • 原通讯使用的数据包协议封装在zto.jar包中,源代码没开放,因为当前硬件设备和网络环境比起当初开发系统时,有了质的飞跃,导致目前软件公司几乎不用了,所以开源无意义,如果现在还有感兴趣的朋友,可找我索取。
  • 前端最初只有java swing版本,随着web的流行,先加了react版本的客户端,前后端分离,后来改成vue2版本,进而改成目前的vue3版本,ui框架使用element-plus。
  • 因swing版本的客户端是最初版本,功能完全且性能还不错,客户觉得也挺好用,加上现场作业已支持PDA, web版就不那么重要了, 而且web版在大数据的表格展现, 性能远低于swing版, 客户也就不太愿意花钱买,故web版本的客户端一直没上心开发,所以功能不完整,我估计以后也不会再投入精力开发web版客户端,有兴趣的朋友可自己试试!
  • 2021年,因百胜集团货主的规范化要求,现场必须采用pda扫码作业,所以采用uniapp技术,新开发了手持终端的客户端,安装包见 pda/kasa-pda-release.apk

# 系统虽然老旧,但也不断尝试使用新技术,相信也有一定值得学习的地方,比如:

  1. 权限管理,大多通用的权限管理只能做到对角色分配功能权限,然后把用户添加到这个角色中,而本系统不仅支持这种赋权模式外,还允许给用户单独赋予某个功能的权限
  2. 普通crud操作,支持使用工具生成代码和配置文件,而且对常用功能做了深度封装的组件,大大提高普通数据的开发效率
  3. 业务流程是10几年来的经验累积,同时对现场的作业尽量做到精简和优化,使作业效率更高,以后有时间会抽出专题进行讲解
  4. 有些业务逻辑的复杂度很高,比如拣货计算,经过多次版本迭代,代码运行效率也做到尽可能的优化,当然还有再优化的可能行,有兴趣的朋友可以提出来,一起探讨!

# 软件架构

# B/S + C/S 混合架构,也可单独C/S简单部署

  • 后端采用java swing+mina+springboot+hibernate+mybatis-plus+......
  • 前端采用java swing+iReport+vue3(Element plus)+uniapp+......

# 演示图

# 目录介绍

┏━━assets: README需要用到的图片,非项目文件,略过
┣━━kasa_runtime:所有程序打包目录
┃        ┗━━client:C/S架构-客户端运行环境
┃        ┗━━server:C/S架构-服务端运行环境
┃        ┗━━WWW:Vue客户端编译后文件
┃        ┗━━kasa-server:springboot后端部署环境
┃        ┗━━kasa-pda:PDA安装程序apk
┣━━workspace_kasa:源代码工作空间目录
┃        ┗━━client_storage:swing客户端源码
┃        ┗━━server_storage:swing服务端源码,是kasa_web_springboot编译时必须用到的依赖项目
┃        ┗━━kasa_web_springboot:springboot版后台源码,主要做在线数据对接功能,必须依赖server_storage的代码
┃        ┗━━kasa_web_ui:Vue3(element-plus)Web版前端源码
┃        ┗━━kasa_pda:PDA源码
┣━━sql:建库、建表脚本及演示数据脚本
┣━━vuepress:非项目文件, 忽略
┣━━tools:内部开发工具
┃     ┗━━license:后台服务license生成工具及密码生成工具
┗     ┗━━schemas:建表工具,能生成开发用的代码及脚本
┗     ┗━━conf_files:当前版本生成的界面配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19