仓库管理系统WMS的标签打印解决方案

简介: 在仓库管理的业务场景中,实现标签打印。

需求分析

  1. 多端:发起标签打印的终端有 App 和 Web
  2. 批量:除了单个打印,还需要支持后台自动批量打印
  3. 便携:仓库人员能随身携带打印机,出标签后直接贴到对应库位或物品上

调研标签机

  1. 云打印机如飞鹅云都是需要插电的,没有电池,无法在仓库随身携带;
  2. 汉印蓝牙标签打印机,无法支持Web端发起打印请求
  3. 最后选定 优博讯 UROVO K329 WIFI版。

Web触发打印方案分析

标签打印机有2种调用方式:

  • 驱动模式:在Windows上安装驱动,发送要打印的数据到打印机
  • 指令模式:将 tspl,cpcl或esc 指令通过蓝牙或者WIFI方式发送到打印机

使用驱动模式的话,App端无法发送数据,Web端也必须先生成图片或PDF,无法跳过浏览器的文件存储逻辑,也就无法实现后台静默自动打印。

使用指令模式,由于蓝牙距离限制,PC和打印机通过蓝牙通信是不稳定的,所以采用 WIFI 连接发送数据。

其实也可以主要用App蓝牙交互的逻辑,Web把数据推到队列,App轮询接口或者websockt连接,和前端同事讨论对App性能有影响。

另外考虑到工期和前端工作量问题,App端的打印调API来还是走Web转发打印的逻辑,后期可以实现App通过蓝牙发指令到打印机,这样会更稳定,毕竟WiFi信号离路由器远了也会变弱。

流程确认

  1. App和Web向队列写数据
  2. PC上运行一个打印数据转发程序 Printer.exe,向服务器请求打印数据
  3. PC程序 Printer.exe 向打印机发送打印指令数据

考虑到将 Rabbitmq 的配置写到exe程序里会有安全问题,所以还是才用接口轮询的方法,让 Printer.exe 每隔一秒去请求打印数据。

基于 Python 实现打印数据转发程序

主要实现以下几个功能:

  • 请求数据接口
  • 向标签机 IP:PORT 发送打印指令
  • 定时重复请求
  • 记录日志,清理7天前的日志文件
  • 使用 pyinstaller -F .\printer.py 打包成exe程序
目录
相关文章
|
1天前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
11 1
|
1天前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
|
1天前
|
JavaScript Java 测试技术
基于Java的民宿预订管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的民宿预订管理系统的设计与实现(源码+lw+部署文档+讲解等)
24 0
|
6月前
|
开发框架 供应链 JavaScript
一个简单、功能完整的开源WMS​仓库管理系统
一个简单、功能完整的开源WMS​仓库管理系统
292 0
|
8月前
|
缓存 BI
SAP ABAP 报表屏幕输入字段如何实现联动效果试读版
SAP ABAP 报表屏幕输入字段如何实现联动效果试读版
36 0
|
Java 程序员 数据库连接
二、《学生教务系统》之标签管理模块实现
《学生教务系统》之标签管理模块实现 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
90 0
二、《学生教务系统》之标签管理模块实现
若依管理系统图片的显示、修改操作
若依管理系统图片的显示、修改操作
3381 0
若依管理系统图片的显示、修改操作
|
Scala 开发者
CRM 项目-实现了显示客户列表 | 学习笔记
快速学习 CRM 项目-实现了显示客户列表
67 0
CRM 项目-实现了显示客户列表 | 学习笔记
|
前端开发 JavaScript
数据工厂平台-8:首页统计功能
数据工厂平台-8:首页统计功能
数据工厂平台-8:首页统计功能
|
自然语言处理
Reflex WMS系统,跟SAP系统的几个神似之处
Reflex WMS系统,跟SAP系统的几个神似之处