一、立项背景和目标
立项背景
贸易型与生产型企业在内部业务管控及上下游业务协同中,存在流程分散、数据不通、协同效率低等问题,难以有效管控业务风险,亟需一款整合性管理平台解决此类痛点。
目标
打造基于 SaaS 微服务架构的平台,实现多业务模式全流程管控,助力企业提升内部业务风险管控能力及上下游客户协同效率。
二、软件功能、核心功能模块介绍
软件功能
涵盖项目管理、合同管理、采购销售管理、仓储管理、物流管理等全流程业务管控,支持多端访问,其中贸易系统为 Web 端、工控系统为 UWP、司机端为 App、报表为微信小程序,满足企业多样化使用场景。
核心功能模块
项目管理模块:对项目全生命周期进行管控,包括项目立项、进度跟踪、资源分配等,确保项目有序推进。
合同管理模块:实现合同起草、审核、签订、归档等流程数字化,方便合同查询与管理,降低合同风险。
采购销售管理模块:覆盖采购计划制定、供应商选择、订单生成,以及销售订单处理、客户管理、发货跟踪等功能,优化采销流程。
仓储管理模块:实时监控库存情况,支持入库、出库、盘点等操作,提升仓储管理效率,避免库存积压或短缺。
物流管理模块:跟踪物流信息,实现物流订单管理、运输路线规划等,司机可通过 App 获取相关物流任务与信息,确保货物及时送达。
三、业务流程、功能路径描述
业务流程
以采购业务为例,流程为:制定采购计划→在采购销售管理模块(Web 端)选择供应商→生成采购订单→订单审核通过后发送至供应商→供应商发货→司机通过 App 接收运输任务并执行→仓储管理模块(可通过工控系统 UWP 操作)进行入库操作→采购流程完成。
销售业务流程为:接收客户订单→在采购销售管理模块(Web 端)处理订单→安排发货并通过系统分配给司机(司机端 App 接收任务)→物流管理模块跟踪物流→客户确认收货→通过微信小程序查看销售相关报表→销售流程完成。
功能路径
以查看采购订单详情为例,Web 端路径为:打开浏览器登录系统→进入采购销售管理模块→找到 “订单管理” 栏目→选择对应采购订单→查看详情;司机通过 App 接收运输任务的路径为:打开司机端 App→登录账号→进入 “任务中心”→查看并接收分配的运输任务;查看销售报表的微信小程序路径为:打开对应微信小程序→登录→进入 “报表中心”→选择 “销售报表”→查看数据。
一、微服务架构与业务适配
基于.NET Core 按 “业务解耦、弹性扩展” 拆分模块,适配贸易 / 生产企业需求:
核心业务服务:拆分为项目、合同、采购销售、仓储、物流 5 大服务,各服务用 RESTful API 暴露接口,仅处理对应领域逻辑(如采购销售服务负责订单创建与履约跟踪),避免跨领域耦合。
支撑性服务:独立用户认证(含身份验证)、数据存储(多数据库交互)、第三方对接(统一外部接口)、运营工具(数据统计)服务,为核心业务提供支撑,便于单独迭代。
多终端适配:用 Ant Design+React 开发前端,通过 “组件复用 + 接口统一” 适配 APP、小程序、数据大屏、工控台。移动端侧重轻量化操作(订单查询),大屏聚焦数据可视化(库存周转率),工控台供仓储高频操作(入库扫码),确保数据一致。
二、消息队列与缓存优化
(一)事件驱动与消息队列
针对跨模块同步需求,用事件驱动 + RabbitMQ 实现异步通信:
关键事件处理:如 “采购订单确认” 后,采购服务发消息至队列,仓储服务监听后创 “入库单”,物流服务同步生 “物流需求单”,减少服务直接调用;事件日志存 MongoDB,便于追溯。
可靠性保障:消息持久化存储,接收方服务异常时自动重试;超时未处理消息触发告警,避免流程中断。
(二)分层缓存策略
结合 Redis 设计缓存方案,提升效率:
高频数据缓存:用户权限、商品分类等存 Redis(24 小时过期),减少 MariaDB 查询;如仓储扫码查库存,优先读缓存,失效后查库更新缓存。
临时数据缓存:数据大屏 “近 1 小时订单量” 等存 Redis(5 分钟过期),避免重复计算;用 Redis 分布式锁解决并发数据冲突(如库存扣减)。
三、安全与第三方对接
(一)身份验证与安全
在用户认证服务集成身份证验证:
企业注册验证:企业注册需传法人身份证,调用阿里云 OCR 提取信息,与营业执照比对,通过后完成注册,结果存 MariaDB 关联账号。
权限控制:按角色(管理员、采购专员等)分配权限,权限存 Redis;用户登录用 JWT 令牌携权限,微服务校验令牌,确保数据仅有权限者访问。
(二)第三方平台集成
通过 “第三方对接服务” 统一集成,降低耦合:
物流平台对接:封装顺丰、京东物流 API,物流服务创 “物流单” 后,调用该服务转发请求,获取物流信息存 MongoDB,前端查状态。
审批平台对接:集成微信 / 钉钉审批,用户发起 “合同审批” 后,该服务同步至微信 / 钉钉,审批结果回传 SCCP 更新状态;小程序推送审批提醒。
四、部署与运维
基于 Azure DevOps、Docker、Kubernetes 实现高效运维:
容器化部署:微服务打包为 Docker 镜像,Azure Dev