// case · dev
企业 ERP 系统二次开发与性能优化
对存量 ERP 系统做模块扩展与慢查询治理,核心报表加载时间从 18s 降至 2s 以内。
项目背景
客户使用的 ERP 系统已运行五年,业务在增长但架构未变:报表越查越慢,新增模块只能靠堆代码。目标是既解决性能问题,又保持系统稳定运行。
第一步:代码盘点
接手二开项目,先盘点再动手。梳理出:
- 核心业务链路与调用关系
- 依赖版本与潜在升级风险
- 高频慢查询清单及其执行计划
- 原有代码中的状态耦合点
第二步:慢查询治理
定位到的问题集中在两类:缺少合适索引、以及在循环中查询数据库。
典型问题(报表接口逐条查询明细):
// 改造前:N+1 查询,1000 条订单触发 1001 次数据库访问
for (Order order : orders) {
List<OrderItem> items = itemMapper.selectByOrderId(order.getId());
order.setItems(items);
}
改为一次批量查询后在内存分组:
// 改造后:1 + 1 次查询,内存中按订单号分组
List<Long> orderIds = orders.stream().map(Order::getId).toList();
Map<Long, List<OrderItem>> grouped = itemMapper.selectByOrderIds(orderIds)
.stream()
.collect(Collectors.groupingBy(OrderItem::getOrderId));
orders.forEach(o -> o.setItems(grouped.getOrDefault(o.getId(), List.of())));
配合索引补充,核心报表从 18 秒降到 2 秒以内。
第三步:模块扩展
新增模块通过新表 + 独立 Service 实现,不改动原有表结构与历史逻辑,降低上线风险。改动范围在交付文档中逐条记录。
交付内容
改造方案文档、变更清单、源码、部署协助与技术支持期。
// related-cases
相关案例
~/cases/cross-border-order-platform.md
NE
Nest.jsTypeScriptPostgreSQL
软件开发2026.05.12
跨境电商订单处理平台
多平台订单聚合处理系统,支持订单同步、批量发货与异常订单自动归类。
- ▸多平台订单统一映射,适配层隔离各平台差异
- ▸基于队列的异步同步机制,避免接口超时阻塞
open_case() →
~/cases/data-visualization-dashboard.md
RE
ReactTypeScriptNode.js
软件开发2026.06.02
经营数据分析看板
面向管理层的经营数据看板,多数据源汇聚、指标计算与图表联动分析。
- ▸多数据源汇聚,统一指标口径
- ▸指标计算与展示分离,口径调整无需改前端
open_case() →
~/cases/campus-secondhand-platform.md
SP
SpringBoot 3Vue3MySQL
毕业设计支持2026.03.18
校园二手交易平台
基于 SpringBoot 3 + Vue3 的前后端分离项目,含商品发布、订单流转与信用评价体系。
- ▸模块化分层设计,业务逻辑与数据访问完全解耦
- ▸Redis 缓存热点商品,列表接口响应时间下降约 60%
open_case() →
// contact
有需求?先聊聊你的项目
不管是一次技术支持、一个完整项目,还是想补一段工程能力,都可以先沟通。我们会先了解需求并给出判断,再谈方案与报价。
- Trdfyl
- 2356245930
- [email protected]

扫码添加微信