程序聚合 软件案例 国药物流分销系统前置机(CMS-FE)

国药物流分销系统前置机(CMS-FE)

2026-05-13 22:08:41
行业:企业内部管理、物流仓储
载体:网站、Windows应用
技术:Spring、Bootstrap、ActiveMQ、MySQL

业务和功能介绍

一、立项背景与目标
立项背景:由于新的SAVE(国药物流供应链云服务平台系统)平台与上游CMS(货主的分销系统)在新疆等特殊地区存在网络中断的风险,同时部分地区的WMS系统不愿意直接接入新的SAVE平台。
系统目标:在完全不改造原有CMS系统的前提下,将CMS-FE作为数据交互代理服务器接管数据的收发工作。系统设计了一个灵活的“路由开关”:网络正常时,将数据发往SAVE平台;断网或需要直连时,关闭开关,直接与WMS-FE(仓库管理系统前置机)进行业务数据交换与反馈,无需平台支撑。此外,系统支持MQSSL等安全传输协议,旨在保障特殊环境下数据通信的稳定与安全。
二、核心业务与功能
系统的核心业务和功能主要划分为四大板块:
1.数据下发功能(CMS-FE->SAVE/WMS-FE)
CMS数据库中的数据变更时,通过触发器将变更数据推至OracleAQ队列,前置机监听后经WebServices(WS)或FTP下发给下游。
基础与单据下发:包括推送商品(货品)、单位(客商及地址)、入库单、出库单以及订单取消数据。
大批量对账包下发:针对库存对账等海量数据,系统通过定时任务分批读取、生成TXT并打包为ZIP,最后经FTP服务上传给下游解析。
2.数据接收与反馈功能(SAVE/WMS-FE->CMS-FE)
系统被动接收下游处理结果,采用“两阶段反馈”机制:阶段一为同步接收下发成功回执;阶段二为下游数据正式落库后异步回传的具体业务结果。
业务反馈接收:包括卡单异常(仅入临时表记日志)、出入库单关单、库存调整反馈。接收报文存入临时表后,异步调用CMS存储过程更新业务数据。
对账结果反馈:通过监听FTP对应目录,下载回传的ZIP对账文件,解压入库并调存储过程完成对账。
串行批量反馈:由于CMS系统不支持高并发操作,系统内置了基于Quartz的串行批量反馈任务(默认每5分钟执行一次),确保数据排队平稳回写。
3.反馈主动查询功能(CMS-FE->SAVE)
除了被动接收反馈,CMS-FE还能主动向SAVE平台发起查询请求(该功能仅SAVE平台提供),实时获取入库单、出库单、库存调整及库存比对的反馈结果。
4.系统配置与后台管理功能
提供基于Web的图形化控制台,保障系统高可用与灵活调度:
开关与路由控制:可一键启停AQ/MQ服务,及切换核心的路由开关(指向SAVE或WMS-FE)。
业务缓冲与错峰:支持配置“商品下发延迟”(缓冲合并修改防下游崩溃)和“反馈接收时间段”(避开CMS日结高峰期错峰反馈)。
异常重发与日志:支持对下发失败数据的手动批量重发及接收失败的延迟重发配置;提供详尽的操作、报文、卡单及对账日志查询,并支持定时自动归档陈旧报文。

项目实现

一、 设计思路和整体架构
1、CMS-FE的核心定位是作为一个数据交互代理服务器,在不改造原有CMS(货主分销系统)的前提下,接管其数据下发与反馈接收工作。
网络容灾与灵活对接:旨在解决新的SAVE(国药物流供应链云服务平台系统)平台与CMS在特定地区(如新疆)可能出现的断网问题,同时满足部分WMS(仓库管理系统)不愿直连新的SAVE平台的业务需求。灵活的路由开关:系统内置路由开关,网络正常时开启,数据发往SAVE;网络异常或需直连时关闭,直接向WMS-FE发送业务数据。
2、系统的整体架构,主要分为“一出一进”和“灵活部署”:
数据下发(出):CMS数据库内发生业务变更时,通过触发器将数据写入Oracle AQ队列。前置机监听AQ队列,提取数据后经由 Web Services (WS) 或 FTP 发送给下游(SAVE或WMS-FE)。
数据接收(进):前置机接收到下游的业务反馈(如关单、库存同步)后,一律先落入临时反馈表,随后异步调用CMS存储过程来更新CMS的正式业务表(卡单异常等单纯记录日志的除外)。
部署架构:底层基于J2EE容器。不仅支持单台Tomcat的单点部署,还支持Nginx + 多台Tomcat的高可用集群部署,以应对高负载
二、 涉及模块与技术栈
主要模块:数据下发(商品、客商、地址、出入库单、订单取消、对账包等)、数据接收(卡单、关单、库存调整、对账)、反馈查询,以及系统配置控制台(包含路由配置、协议配置、数据手动重发、日志定时归档等)。
技术栈:Java,spring,myBatis,tomcat与Nginx;数据库利用 Oracle (AQ队列、触发器、存储过程);通信协议涵盖 WS(SOA)、MQ和FTP;调度框架使用 Quartz,路由与文件处理使用 Apache Camel;数据格式涉及 XML、JSON、TXT 和 ZIP,。
四、 遇到的难点(坑)与解决方案
1、CMS系统不支持并发操作:
坑:高并发的反馈回传会导致CMS系统处理异常或锁表。
解决方案:反馈过程全部采用独立事务、异步处理,并开发了基于Quartz的“串行批量反馈”功能(默认每5分钟排队批量处理一次),确保数据平稳回写。
2、商品重复下发导致平台压力过大:
坑:CMS下发商品时,同一商品一次会触发两条记录,导致SAVE端接收大量垃圾数据并承受极大压力。
解决方案:增加商品下发延迟时间配置(默认5000毫秒/5秒),通过延迟缓冲来合并与减轻平台压力。
3、‘网络波动造成的数据处理失败或积压:
坑:通信失败导致数据不一致,且大量历史报文会拖慢系统查询性能。
解决方案:针对接收失败,开发了延迟重发机制(默认5分钟后自动重试,可配置次数);针对下发失败,提供了基于Web控制台的手动批量重发功能;同时配置定时任务,每天凌晨2点自动归档3个月前的报文日志以释放空间。

示例图片视频


大伯不是李白
30天前活跃
方向: 后端-Java、前端-跨端开发、
交付率:100.00%
相似推荐
Java 应用集群迁移与 Elasticsearch 数据同步
一、背景与目标 客户因业务调整,需要将现有生产环境的网站服务及数据完整迁移至新服务器。涉及约 10 个 Java 网络应用程序及配套的搜索、消息队列服务。目标是在保证数据完整性的前提下,实现业务的平滑割接,确保迁移后服务可正常访问。 二、功能模块 1.全量服务迁移: 涵盖 Elasticsearch 7.8.0 搜索引擎、Nginx 反向代理、RabbitMQ 消息队列及 Redis 缓存服务的部署与配置还原。 2.Java 应用部署: 迁移并配置 10 个左右的 Java 后端应用,恢复其 JVM 参数及配置文件。 3.数据一致性保障: 执行数据库与索引数据的导出导入操作,确保新旧环境数据一致。
CentOS7 Docker 基础运行环境搭建与组件部署
客户需要在单台 CentOS 7 服务器上快速构建一套标准化的后端开发与运行环境。目标是替代繁琐的手动安装过程,通过容器化技术统一部署 MySQL、MongoDB、Redis、Kafka、Zookeeper、MinIO 等中间件,并预置 GoLang 开发环境,确保环境的一致性和可移植性。 功能模块: 1.中间件容器化: 集成 MySQL 5.7+、MongoDB 6.0+、Redis 7.0+、Kafka 及 Zookeeper 等核心组件,通过 Docker Compose 进行统一编排启动。 2.对象存储服务: 部署 MinIO 对象存储,用于非结构化数据的存储测试。 3.环境初始化: 编写初始化脚本,自动完成各组件的用户名密码配置(如 mysql/mongodb/redis/minio 统一认证),并安装 GoLang 1.18 及 Git 工具链,交付即可用的基础镜像环境。
考霸APP
面向小学、初中、高中学生,主打本地名校真题、同步教材、AI 智能刷题,题库超 350 万道,适配人教版、北师大版等主流教材版本。 核心功能 本地真题资源:名校月考、联考、教研室统考、分班考试卷,贴合本地考情 视频讲解:试卷、难题配套名师视频,支持投屏观看 AI 错题本:自动归集错题,按知识点分类;AI 举一反三推送同类变式题,做一道通一类;学情统计,定位薄弱知识点 音频磨耳朵:语文、历史、道法等文科考点音频,通勤碎片时间背诵记忆 同步教材练习:同步课本章节预习、课后巩固,试卷支持下载打印 PDF 备考计划:寒暑假提分计划、一轮二轮复习、中考真题专项训练
微信小程序商城
本项目围绕微信小程序商城及服务业务场景进行开发,集商品展示、在线预约、订单管理、微信支付、用户中心、服务管理和数据统计等功能于一体。用户可通过小程序完成商品浏览、服务预约、订单提交、在线支付及订单查询等操作,企业则可通过管理后台统一管理商品、服务、用户、订单、支付记录及运营数据,并可根据后续业务需求扩展会员、优惠券、积分、物流配送、消息通知及第三方系统接口等功能。
山姆拼团小程序
一、立项背景和目标 山姆会员店商品多为大容量家庭装,个人/小家庭用户常面临单品分量过大、不易储存或单独购买起送门槛高的问题。本项目旨在打造一款专为山姆商品设计的“社区/同城拼单与分装小程序”,支持用户快速发起拼单、凑单分装、分摊会员优惠与配送费,降低购买门槛,提升商品流通与履约效率。 二、软件功能与核心功能模块 1. 商品与拼团管理模块:支持山姆商品目录展示、拼单发起(支持按份数/按件拆分拼团)、拼团时效倒计时与成团状态流转。 2. 订单与支付分账模块:集成微信支付与预授权机制,支持成团自动扣款、拼团失败自动原路退款及差额多退少补。 3. 履约配送与自提核销:支持团长代收分装、同城配送对接、社区自提点选择及到货动态取件码核销。 4. 社交裂变与通知提醒:提供拼团海报一键生成、微信群转发分享及基于模板消息的成团/发货进度实时提醒。 三、业务流程与功能路径 团长/用户选择山姆商品并发起拼单 -> 设定拼团规则(成团人数/件数/有效时间)并分享至微信群或好友 -> 参团成员加车支付参团 -> 满员触发成团事件与采购通知(未满员超时自动退款) -> 商品到货团长分装/核销自提 -> 完成订单闭环。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服