服装批发零售进销存管理软件,提供商品管理,仓库管理、出入库管理、订单管理等功能,
点击空白处退出提示
服装批发零售进销存管理软件,提供商品管理,仓库管理、出入库管理、订单管理等功能,
技术/框架:
Kotlin/Java,MVP 转 Jetpack+MVVM,Retrofit + OkHttp,Glide,Room
技术要点:
订单打印任务管理
此需求的难点在于运行时要保证稳定性,时效性,准确性以及高频订单下对打印任务的压力处理。
基于此,参考了 OkHttp 分发器的设计来管理打印订单任务,以及连接池来复用多台打印机的 socket连接。
首先遍历订单类型,将按照类型所属打印机的归类封装成相应的打印任务;
分发器维护 2 个任务队列,等待队列和正在执行的队列,因为打印机的打印动作是同步的,分发器负责把非同 ip 的任务筛选出来放到正在执行的队列并交给线程池中去执行,其余任务放到等待队列;
打印任务的代码中会先去获取同 ip 的 socket 连接,有则复用,没有则新建连接并加入到连接池,建立连接后输出打印指令完成打印,每个打印任务执行完成后,将其从正在打印的队列移出,无论成功或失败都会再次触发分发器按照之前的规则分发一次以执行后续打印任务;
将订单的打印结果(成功或失败,具体到菜品)同步到应用后台数据库,方便商家在订单列表执行后续处理。对于打印失败的任务,设置重试机制,多次失败后执行日志上报到后台分析并提示商家去处理异常。
通过执行压力测试,排除网络和打印机硬件导致的失败,没有出现丢单和稳定性异常。
订单推送机制
顾客在手机端下单的时候需要把订单推送到商家端,使用三方免费的推送 sdk 体验不是很好,常常出现漏单和推送延迟的问题。
基于此,新增一个后台服务维护一个与应用服务器的 webSocket 长连接保证推送效率,同时保留第三方推送,两者互斥处理推送订单消息,同时接收到订单消息会上报给服务器,便于统计订单推送状态,通过此方案有效地改善了订单推送的时效性问题。
架构改进
在 2017 年创建的老项目,重复代码,模块划分不清晰,技术也
服装批发零售进销存管理软件,提供商品管理,仓库管理、出入库管理、订单管理等功能,负责手机端、POS端、台式终端app开发




评论