Signify(原飞利浦照明)作为全球照明领域的领军企业,其全国经销商网络覆盖范围广泛,每日涉及大量的产品退货与理赔业务。在旧系统使用期间,由于采用ASP.NET+C# 技术栈,系统架构较为陈旧,难以满足日益增长的业务需求。传统的线下操作流程繁琐,经销商提交理赔申请后,需要经过多轮人工传递单据,不仅审批周期长,且容易出现单据丢失、信息录入错误等问题,严重影响了退货理赔的效率与透明度。
随着市场竞争的加剧,经销商对快速处理退货理赔业务的需求愈发迫切,同时企业内部也需要更精准、实时的数据来支撑业务决策。旧系统在数据存储和处理方面也存在不足,无法高效应对日均大量单据的处理需求,经常出现系统卡顿、响应缓慢的情况。为了提升客户满意度,优化内部管理流程,实现业务的数字化转型,Signify 决定对旧系统进行重构,采用更先进的 Java 技术栈,打造一套高效、稳定、透明的退货理赔全流程管理系统。
理赔申请模块:经销商可以通过系统在线提交理赔申请,系统支持上传相关证明材料(如产品照片、检测报告等),自动生成申请单号。同时,系统会对申请信息进行初步校验,如产品型号是否在理赔范围内、申请金额是否符合规定等,减少无效申请。
多角色审批模块:基于 Flowable6.7 工作流引擎,实现了多角色的审批流程。系统根据预设的审批规则,如单笔金额大于 10 万自动流转至财务负责人,将申请单分配给相应的审批人员。审批人员可以在系统中查看申请详情和证明材料,进行审批操作(同意、驳回、退回修改),并填写审批意见。系统会实时记录审批进度,经销商和企业内部管理人员可随时查看。
折货处理模块:对于审批通过的理赔申请,系统提供折货处理功能。根据理赔金额和相关规则,自动计算可折换的产品数量和种类,经销商可以选择相应的折换产品,系统生成折货单,并与库存管理系统联动,确保折货流程的顺畅进行。
配件库存管理模块:该模块实现了配件的入库、出库、库存查询等功能。入库时,系统自动生成入库单号,并与采购订单关联,确保入库信息的准确性,同时实时更新库存数量;出库时,系统先进行库存校验,只有库存充足时才能进行出库操作,且出库需经过相应的审批流程,保障库存管理的规范性。通过库存台账功能,可实时查询配件的库存数量、出入库记录等信息,为采购和销售提供数据支持。
项目实现
技术选型与架构设计:项目团队经过充分调研和评估,选择 JDK17 + SpringBoot2.7 + MyBatis-Plus3.4 + Flowable6.7 + SQLServer 作为核心技术栈。采用分层架构设计,分为表现层、业务逻辑层、数据访问层,各层之间职责清晰,便于系统的开发和维护。
数据库设计:基于 SQLServer 设计了合理的数据库表结构,针对理赔申请表、审批流水表等数据量大的表进行分表存储,提高了数据查询和存储的效率,满足了日均 3000 + 单据处理的性能需求。
核心模块开发
主导核心模块技术重构时,采用 SpringBoot2.7 整合 MyBatis-Plus3.4 实现数据层高效操作,通过 MyBatis-Plus 的 CRUD 接口和自定义 SQL,简化了数据访问代码的编写,提高了开发效率。
基于 Flowable6.7 设计可视化工作流引擎,开发人员可以通过图形化界面设计审批流程,实现动态审批规则配置。通过事件监听机制,当审批状态发生变化时,自动触发邮件通知,及时告知相关人员,替代了旧系统的硬编码流程,使审批节点调整效率提升 80%。
开发配件管理子系统时,采用事务控制确保入库和出库操作的原子性。在入库过程中,自动生成单号并与库存联动,保证入库数据和库存数据的一致性;出库时,先进行库存校验,只有库存满足需求且通过审批后才能完成出库操作。同时,通过 MyBatis-Plus 分页查询优化库存台账查询性能,将响应时间缩短至 200ms 内。
性能优化:基于 JDK17 的新特性(如密封类、增强型 switch)优化代码结构,使代码更加简洁、高效。结合 SpringBoot 缓存注解实现高频数据(如产品主数据)本地缓存,减少了数据库的访问次数,提高了数据查询速度,系统整体吞吐量提升 50%。
测试与上线:测试人员对系统进行了全面的功能测