小而美的仓储应用

通过腾讯云开发平台实现一个简单的仓储应用

服务端用到腾讯云平台中的产品

云开发

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等 serverless 化能力,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用、Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。

智能对话平台TBP

腾讯智能对话平台(Tencent Bot Platform,TBP)专注于“对话即服务”的愿景,全面开放腾讯对话系统核心技术,为大型企业客户、合作伙伴提供开发平台和机器人中间件能力,实现高效、便捷、多样化、低成本人机对话体验。

客户端使用Flutter开发

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

应用由来

经常有朋友问,有没有推荐的仓储软件,要的很简单,能够收货发货,查询库存数量,如果可以管控批次更好。库存管理软件的确挺多的,但随着软件落地,为了满足业务的差异性,功能也越加越多,软件也越来越臃肿,到最后上手也变动复杂,这几年一直想做一款小而美的仓储管理软件,希望可以浓缩这几年仓储实施经验进去。

麻雀虽小五脏俱全

第一个版本,实现基本的收发货,库存查询,批次管理和多批属性管理。

仓储基本功能结构图

应用设计和开发

库存设计采用批属性表与库存表独立设计,同一物料,根据不同收货批次独立库存记录,云数据库用的是文件型数据库,很方便的解决动态批属性问题。

1.数据库设计

1.1基础模块功能

1.1.1 用户

{用户编号:hxs,用户名称:黄旭,邮箱:[email protected],角色:[角色编号],默认仓库:xxx,默认货主:xxx}

1.1.2批属性 lottable

{批属性编号:00001,仓库号:00001,批属性值:[{批属性键:批属性1,批属性名称:批次号,是否必填:是,是否系统默认:否}]}

1.2收货模块

1.2.1 收货单表 receipt

{仓库号:00001,收货单号:0000000001,货主编号:00001,供应商:00001,外部单号:xxx,外部行号:xxx,单据类型:xxx,预计到货日期:xxx,状态:xxx,货品编号:SKU001,托盘号:xxx,预计数:100,收货数:20,库位:xxx,批次:xxx,批属性编号:xx,批属性值:[{批属性健:批属性1,批属性值:批次号}]}

1.3库存模块

1.3.1 库存表 lotxlocxlpn

{仓库号:00001,货主编号:xxx,货品编号:SKU001,库位编号:STAGE,LPN:L000000001,批次:xxx,状态:xxx,现有数量:xxx,分配数量:xxx,拣货数量:xxx,冻结数量:xxx,可用数量:xxx}

1.3.2 批属性表 lotattribute

{仓库号:00001,货主编号:xxx,货品编号:SKU001,批次号:xxx,批属性值:[{批属性健:批属性1,批属性值:批次号}]}

1.4出库模块

1.4.1 出库订单 orders

{仓库号:00001,出库单号:0000000001,货主编号:00001,客户:00001,承运商:00001,外部单号:xxx,外部行号:xxx,单据类型:xxx,需求发货日期:xxx,实际发货时间:xxx,状态:xxx,货品编号:SKU001,箱号:xxx,订单数:100,未结数:100,分配数:100,拣货数:100,发运数:100,批次:xxx,批属性编号:xx,批属性值:[{批属性健:批属性1,批属性值:批次号}]}

1.4.2 拣货单 pickdetail

{仓库号:00001,拣货序号:xxx,货主编号:00001,货品编号:SKU001,出库单号:0000000001,状态:xxx,批次号:xxx,库位:xxx,箱号:xxx,落放 ID:xx,来源库位:xxx,目标库位:xxx,拣货数:100,箱序号:xxx,波次号:xxx}

2.功能场景开发

2.1 完成一次收货

2.1.1 创建一个收货类:包含一个根据收货单号收货方法

2.1.2 通过TBP服务调用收货云函数,对话内容如下:1问“按单收货”,2答“请输入收货单号”,3问“xxx”,4答“收货完成,本次收货数xx剩余库存数为xxx”。

2.2 完成一次无单物料收货

2.2.1 创建一个无单按物料收货方法:根据用户ui获取默认仓库和默认货主,自动创建收货单,再调用按单收货完成物料收货

2.2.2 通过TBP服务调用收货云函数,对话内容如下:1开始“按物料收货”,2问“请输物料”,3问“请输入数量”,4答“xx物料收货完成,本次收货数xx剩余库存数为xxx”。

2.3 完成一次出库单出库

2.3.1 创建一个出库类:包含一个根据出库单号出库方法,通过出库单创建拣货单,再通过拣货到完成库存扣减

2.3.2 通过TBP服务调用收货云函数,对话内容如下:1问“按单出库”,2答“请输入出库单号”,3问“xxx”,4答“出库完成,本次出库数xx剩余库存数为xxx”。

3.代码整理

3.1 flutter 页面插件化

3.2 对话意图使用工厂模式

4.代码上传GitHub

4.1 仓储前端代码:huangtao_app

      Flutter作为前端,对话方式调用腾讯云函数以及腾讯智能对话平台,实现简单的消息即服务仓储应用服务。

4.2 仓储服务端代码:tbp-huangtao-wms-service

      腾讯云函数,消息即服务仓储应用

4.3 腾讯智能对话调用代码:wxtbp

      腾讯云函数调用智能对话平台TBP


应用效果

APP初始页面

用户注册


用户登录


无单批次收货

无单物料发货


库存查询


腾讯开发云

腾讯云数据库

腾讯智能对话平台 TBP

意图管理
意图配置

CMS 内容管理系统

批次库存

总结

项目代码已经上传GitHub,后面功能会持续优化,本项目为传统软件和新技术结合,尝试提供一种全新的仓储管理软件人机交互模式。

你可能感兴趣的:(小而美的仓储应用)