SMF Core 项目 CI/CD 流水线文档
1 概述
本文档描述了 smf-core 项目的持续集成和持续部署(CI/CD)流水线。项目采用基于 Git 分支的双流水线策略,包含完整的代码合并、测试验证和售后交付流程。该流程通过钉钉 OPL 文件进行问题反馈和 Bug 追踪,实现了开发、测试、交付的全流程自动化管理2。
1.1 文档版本
| 版本号 | 修订日期 | 修订内容 | 修订人 |
|---|---|---|---|
| 1.0 | 2022-03-15 | 初始版本,建立基础 CI/CD 流程 | 技术架构组 |
| 1.1 | 2022-06-20 | 优化部署脚本,增加自动化测试 | 技术架构组 |
| 1.2 | 2022-09-10 | 完善部署流程,补充 Linux 版本脚本 | 技术架构组 |
| 2.0 | 2023-01-15 | 重构分支策略,引入 feature 分支管理 | 技术架构组 |
| 2.1 | 2023-05-08 | 增加安全扫描和代码质量门禁 | 技术架构组 |
| 2.2 | 2024-12-08 | 集成钉钉 OPL 反馈机制 | 技术架构组 |
1.2 术语说明
- CI/CD: 持续集成/持续部署
- OPL: 现场问题日志
- SNAPSHOT: 开发快照版本
- WAR: Web应用归档文件
- GitLab: 代码仓库管理平台
- Maven: Java项目构建工具
2 流水线架构
2.1 整体流程
流水线架构
flowchart TD
%% 代码提交与触发
A[开发人员提交代码] --> B[GitLab触发流水线]
B --> C{分支判断}
%% 开发构建流水线
C -->|develop| D
subgraph D[开发构建流水线]
D1[代码编译] --> D2[运行单元测试]
D2 --> D3[代码质量检查]
D3 --> D4[生成SNAPSHOT包]
end
%% 发布构建流水线
C -->|master| E
subgraph E[发布构建流水线]
E1[完整代码编译] --> E2[运行全量测试]
E2 --> E3[代码安全扫描]
E3 --> E4[生成WAR包]
E4 --> E5[内部测试验证]
E5 --> E6[交付售后团队]
E6 --> E7[设备功能验证]
E7 --> E8{验证结果}
end
%% 验证结果处理
E8 -->|通过| E9[标记为发布版本]
E8 -->|失败| E10[人工创建OPL文件]
E10 --> E11[钉钉群通知开发团队]
E11 --> E12[开发团队处理OPL]
E12 --> E13[问题修复验证]
%% 合并请求流程
D4 --> F[等待合并请求]
F --> G[创建Merge Request]
G --> H[代码审查]
H --> I[批准合并]
I --> J[合并到master]
J --> E1
3 环境配置
3.1 构建环境
- 代码仓库: 自建 GitLab 服务器 (版本: 14.0+)
- 构建工具: Maven 3.6+
- JDK 版本: 1.8(建议: JDK 8u191+)
- 操作系统: Linux/Windows
- 开发环境: application-dev.yml
- 测试环境: application-test.yml
- 生产环境: application-prod.yml
3.2 目标环境
- 应用服务器: Tomcat 8.5+ (建议: 8.5.57+)
- 数据库: MongoDB 4.0+ (建议: 4.2.15+)
- 部署位置: 客户本地内网设备
4 分支管理策略
4.1 分支类型
- master: 生产就绪代码,仅接受合并请求
- develop: 开发集成分支,持续集成测试
- feature/功能名称-日期: 功能开发分支 (示例: feature/user-login-1208)
- hotfix/问题描述-日期: 紧急修复分支 (示例: hotfix/login-error-1208)
- release/版本号-日期: 发布分支 (示例: release/5.12.0-1208)
4.2 分支保护规则
- master分支: 需要至少2人代码审查
- release分支: 禁止直接推送,只能通过合并请求
5 流水线详细流程
5.1 代码提交阶段
提交信息规范:
- 格式: 类型(模块): 描述
- 示例: feat(user): 增加用户登录功能
- fix(order): 修复订单创建异常
触发机制:
- 开发人员推送代码到 GitLab 仓库
- GitLab Webhook 自动触发相应流水线
分支策略:
- develop分支 → 开发构建流水线(集成测试)
- master分支 → 发布构建流水线(生产就绪)
5.2 开发构建流水线 (develop分支)
5.2.1 代码编译
mvn clean compile -Pdev -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8
5.2.2 运行单元测试
mvn test -Pdev -DskipTests=false -DfailIfNoTests=true
单元测试标准
- 单元测试覆盖率: ≥80%
- 代码行覆盖率: ≥70%
- 分支覆盖率: ≥60%
5.2.3 代码质量检查
mvn checkstyle:check pmd:check cpd:check
代码质量检查标准
- Checkstyle: 零错误
- PMD: 最多5个警告
- 重复代码: ≤3%
5.2.4 生成SNAPSHOT包
mvn deploy -Pdev -DskipTests=true
5.3 合并请求流程
5.3.1 创建合并请求
前提条件:
- develop 分支构建成功
- 所有测试用例通过
- 代码质量检查达标
5.3.2 代码审查标准
- 代码符合编码规范
- 业务逻辑正确性
- 安全风险检查
- 测试覆盖充分性1
5.4 发布构建流水线 (master分支)
5.4.1 完整代码编译
mvn clean compile -Pprod
安全扫描失败标准
- 致命漏洞: 0个
- 严重漏洞: ≤2个
- 中等漏洞: ≤5个
5.4.2 运行全量测试
mvn verify -Pprod -DskipTests=false
5.4.3 代码安全扫描
mvn org.owasp:dependency-check-maven:check
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
安全扫描配置
<!-- 在pom.xml中添加 -->
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>6.5.3</version>
<configuration>
<failBuildOnAnyVulnerability>true</failBuildOnAnyVulnerability>
</configuration>
</plugin>
5.4.4 生成WAR包
mvn clean package -Pprod -DskipTests=true
5.4.5 内部测试验证
测试环境隔离要求:
- 测试数据库与生产环境隔离
- 测试数据使用模拟数据
- 网络环境模拟客户内网
测试环境搭建:
#!/bin/bash
# setup-test-env.sh - 内部测试环境准备
# 1. 部署到测试服务器
scp target/smf-core-*.war test-server:/opt/tomcat/webapps/
# 2. 重启服务
ssh test-server "systemctl restart tomcat"
# 3. 等待服务启动
sleep 30
# 4. 执行自动化测试
mvn test -Ptest -Dtest.environment=internal
测试验证清单:
- 基础功能测试通过
- 接口兼容性验证
- 性能基准测试达标
- 安全功能验证
- 文档完整性检查
5.4.6 交付售后团队
交付包生成(Maven标准化方式):
通过Maven Assembly插件直接生成标准化交付包,在pom.xml中配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/delivery.xml</descriptor>
</descriptors>
<finalName>smf-core-${project.version}-delivery</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
交付包内容描述: 交付包通过Maven自动生成,包含以下标准化内容:
- smf-core-{version}.war- 应用程序WAR文件
- deploy.sh- 标准化部署脚本
- rollback.sh- 回滚脚本
- release-notes.md- 版本说明文档
- verification-checklist.md- 验证清单
交付验证清单:
- WAR文件MD5校验通过
- 部署脚本权限正确(chmod +x)
- 版本号与交付包一致
- 依赖文件完整无缺失
交付通知流程:
Maven构建系统自动生成标准化交付包
在钉钉群中发布交付通知
售后团队下载交付包进行验证
如发现问题,按OPL流程反馈
5.4.7 现场部署与回滚流程
核心操作流程:
整个部署与回滚过程遵循以下标准化流程,确保操作的可追溯性与安全性
flowchart TD A[收到交付包] --> B[环境预检] B --> C{服务运行?} C -- 是 --> D[停止Tomcat服务] C -- 否 --> E[备份当前版本] D --> E E --> F[部署新WAR包] F --> G[启动Tomcat服务] G --> H[验证部署结果] H --> I{验证成功?} I -- 是 --> J[部署成功] I -- 否 --> K[触发回滚流程] K --> L[执行回滚操作] L --> M[回滚成功]
标准部署流程: 此脚本用于将新版本应用安全地部署到生产环境。
- 环境预检与服务停止
@echo off
echo [SMF Core] 开始执行标准部署流程...
echo 当前时间: %date% %time%
echo.
echo [1/5] 检查Tomcat服务状态...
sc query TomcatSMF | find "RUNNING" >nul
if %errorlevel% equ 0 (
echo 检测到Tomcat服务正在运行,准备停止...
net stop TomcatSMF
timeout /t 10 /nobreak >nul
echo Tomcat服务已停止。
) else (
echo Tomcat服务未运行,继续执行部署。
)
- 备份当前版本(关键步骤)
echo.
echo [2/5] 备份当前应用版本...
set "backup_dir=D:\smf-backups\backup_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%"
mkdir "%backup_dir%" 2>nul
xcopy "D:\tomcat\webapps\smf-core.war" "%backup_dir%\" /Y >nul
xcopy "D:\tomcat\webapps\smf-core" "%backup_dir%\smf-core\" /E /I /Y >nul 2>nul
if exist "D:\tomcat\webapps\smf-core.war" (
echo 应用备份已完成: %backup_dir%
) else (
echo 注意: 未发现旧版WAR文件,此为首次部署。
)
- 清理旧文件与部署新版本
echo.
echo [3/5] 清理旧文件并部署新版本...
cd /d "D:\tomcat\webapps"
del smf-core.war 2>nul
rmdir smf-core /S /Q 2>nul
copy "%~dp0smf-core-*.war" "smf-core.war" >nul
echo 新版本WAR包已复制到位。
- 启动服务并验证
echo.
echo [4/5] 启动Tomcat服务...
net start TomcatSMF
timeout /t 15 /nobreak >nul
echo Tomcat服务启动命令已执行。
echo.
echo [5/5] 验证部署结果...
timeout /t 5 /nobreak >nul
curl -s -f http://localhost:8080/smf-core/health >nul
if %errorlevel% equ 0 (
echo ✅ 部署成功!健康检查接口正常。
echo 请进行后续业务功能验证。
) else (
echo ❌ 健康检查失败!将自动触发回滚流程...
call "%~dp0rollback.bat"
exit /b 1
)
紧急回滚流程 (rollback.bat):
当新版本出现问题时,使用此脚本快速恢复到上一个稳定版本。
@echo off
echo [SMF Core] 启动紧急回滚流程...
echo 当前时间: %date% %time%
echo.
echo [1/4] 停止Tomcat服务...
net stop TomcatSMF
timeout /t 10 /nobreak >nul
echo.
echo [2/4] 查找最新的备份文件...
for /f "delims=" %%i in ('dir D:\smf-backups /ad /b /od 2^>nul') do set "latest_backup=%%i"
if "%latest_backup%"=="" (
echo ❌ 未找到任何备份目录,无法回滚。请手动处理。
exit /b 1
)
set "backup_path=D:\smf-backups\%latest_backup%"
echo.
echo [3/4] 恢复备份版本...
cd /d "D:\tomcat\webapps"
del smf-core.war 2>nul
rmdir smf-core /S /Q 2>nul
copy "%backup_path%\smf-core.war" "." >nul
if exist "%backup_path%\smf-core" (
xcopy "%backup_path%\smf-core" "smf-core\" /E /I /Y >nul
)
echo 已回滚至备份: %latest_backup%
echo.
echo [4/4] 启动Tomcat服务...
net start TomcatSMF
echo ✅ 回滚完成。请验证业务功能是否恢复正常。
echo *** 重要: 务必在钉钉创建OPL,记录此次回滚事件!***
现场操作清单
| 阶段 | 操作项 | 负责人 | 完成确认 (✓) |
|---|---|---|---|
| 部署前 | 1. 确认已收到完整的交付包(含WAR包和本脚本) | 售后人员 | |
| 部署前 | 2. 通知客户相关人员即将开始系统维护 | 售后人员 | |
| 部署中 | 3. 双击运行 deploy.bat,观察命令行输出 | 售后人员 | |
| 部署中 | 4. 脚本自动完成:停服务、备份、部署、启动、健康检查 | 自动化脚本 | |
| 部署后 | 5. 与客户共同验证核心业务功能 | 售后人员/客户 | |
| 部署后 | 6. 确认一切正常,在部署记录单上签字确认 | 售后人员/客户 | |
| 回滚 | 7. (若异常)运行 rollback.bat或根据脚本提示自动回滚 | 售后人员 | |
| 回滚 | 8. 验证回滚结果,并创建OPL文件记录回滚原因 | 售后人员 |
常见问题与故障排除
| 现象 | 可能原因 | 解决步骤 |
|---|---|---|
| 部署脚本执行失败 | 1. 命令行窗口权限不足 2. 防病毒软件拦截 3. 文件路径不正确 |
1. 以管理员身份运行CMD,然后执行脚本 2. 暂时禁用防病毒软件或添加信任 3. 检查 deploy.bat 和 rollback.bat 是否与WAR包在同一目录 |
| Tomcat服务无法启动 | 1. 新WAR包损坏或版本不兼容 2. 端口被占用 3. 内存不足 |
1. 执行回滚,确认是否为版本问题。检查WAR包MD5码 2. 运行 `netstat -ano \ |
| 健康检查通过但业务功能异常 | 1. 数据库连接问题 2. 缓存数据未更新 3. 特定功能逻辑错误 |
1. 检查数据库服务是否正常,连接字符串是否正确 2. 尝试清空应用缓存或重启服务 3. 立即创建OPL文件,详细描述问题现象和复现步骤 |
6. OPL(现场问题日志)创建指引
6.1 必须创建OPL的情况
- 部署或回滚后,任何业务功能无法正常使用。
- 系统性能显著下降,如页面加载超时、事务处理缓慢。
- 出现任何错误提示或异常日志。
- 执行了回滚操作。
6.2 OPL响应时间标准
- 紧急: 2小时内响应
- 高: 4小时内响应
- 中: 8小时内响应
- 低: 24小时内响应
6.3 OPL信息填写要点
- 编号: OPL-YYYYMMDD-序号, 示例: OPL-20241208-001
- 标题:清晰概括问题,例如:“V5.12版本部署后用户登录失败”。
- 项目编号: 设备所属的项目编号
- 发现版本:准确填写部署的版本号。
- 发现人员: [姓名]
- 发现时间: YYYY-MM-DD HH:MM
- 复现步骤:详细描述操作步骤,便于开发人员重现问题。
- 日志与截图:务必附上Tomcat日志文件 (catalina.out) 和相关界面的截图。
- 状态: 新建 → 分配中 → 处理中 → 待验证 → 已解决 → 已关闭
- 优先级:
- 紧急: 系统完全不可用,影响核心业务
- 高: 主要功能异常,但有变通方案
- 中: 次要功能问题,不影响主要业务
- 低: 优化建议或界面显示问题
6.4 OPL状态流转规则
stateDiagram-v2
[*] --> 新建
新建 --> 分配中 : 售后提交
分配中 --> 处理中 : 开发负责人分配
处理中 --> 待验证 : 开发完成修复
待验证 --> 已解决 : 售后验证通过
待验证 --> 处理中 : 售后验证失败
已解决 --> 已关闭 : 问题确认解决
已关闭 --> [*]
6.5 OPL文件跟踪要求
- 每天查看分配的OPL处理进展
- 及时回复开发人员的询问
- 验证修复后确认问题解决
- 更新OPL状态为"已关闭"
6.6 紧急问题处理流程
对于严重影响设备运行的紧急问题:
- 立即电话通知开发负责人
2.创建OPL文件并标记为"紧急"
3.持续跟踪直至问题解决
- 记录处理过程供后续参考
7. 监控和反馈机制
7.1 项目追踪看板
- 版本号: x.xx.xxxx
- 状态: 设备验证中
- OPL数量: x个(x个处理中,x个待验证)
- 预计完成: yyyy-mm-dd
- 构建成功率: 95%
- 平均构建时间: ≤15分钟
- 部署成功率: 98%
- 问题平均解决时间: ≤8小时
7.2 OPL处理流程
graph TD A[售后发现问题] --> B[创建OPL文件] B --> C[钉钉群通知开发团队] C --> D[开发负责人分配任务] D --> E[开发人员分析问题] E --> F{问题类型} F -->|紧急| G[创建hotfix分支] F -->|普通| H[安排下版本修复] G --> I[快速修复验证] I --> J[紧急发布] H --> K[常规开发流程] J --> L[售后验证修复] K --> L L --> M[关闭OPL文件]
7.3 沟通协调机制
钉钉群组分工:
- 开发群: 技术讨论、代码审查、问题分析
- 发布群: 版本发布通知、部署协调
- 项目群: 项目相关问题沟通
- 售后群: 现场问题反馈、客户沟通
- 紧急事务: 电话直接联系相关负责人
会议机制:
-
每日例会: 同步开发进度和问题
- 昨日完成工作
- 今日计划工作
- 遇到的阻塞问题
- OPL处理进展
- 周评审会: 版本计划和OPL处理情况
- 月度总结: 流程优化和改进措施
8. 应急预案
8.1 生产环境故障处理流程
-
立即响应
- 确认问题影响范围
- 通知相关责任人
- 启动紧急回滚流程
-
问题定位
- 收集错误日志和监控数据
- 分析问题根本原因
- 评估修复方案
-
修复验证
- 开发修复补丁
- 测试环境验证
- 生产环境部署
-
事后复盘
- 问题根本原因分析
- 流程改进措施
- 文档更新
9. 性能优化指南
9.1 构建性能优化
- 使用Maven镜像仓库加速依赖下载
- 配置依赖缓存减少网络请求
- 并行执行测试用例缩短构建时间
9.2 部署优化
- 增量部署减少停机时间
- 蓝绿部署实现零停机发布
- 健康检查确保服务可用性
| 核心目标 | 推荐插件 | 主要功能简介 |
|---|---|---|
| maven-surefire-plugin | Maven 默认内置,用于在 test 阶段运行你的单元测试(类名需符合 *Test.java 等模式)。 |
|
| 🧪 运行集成测试 | maven-failsafe-plugin | 专为集成测试设计,在 integration-test 和 verify 阶段运行(类名需符合 *IT.java 等模式)。其特点是即使测试失败,也会继续完成构建过程,确保清理资源,故名为 "failsafe"(安全失败)。 |
| jacoco-maven-plugin | 在测试运行时收集覆盖率数据,并可在 verify 阶段生成详细的 HTML 或 XML 格式的报告,直观展示代码行、分支等的覆盖率。 |
|
| maven-checkstyle-plugin | 根据预定义或自定义的编码规范(如 Google Java Style)检查代码风格,确保团队代码一致性。 | |
| spotbugs-maven-plugin | 分析字节码,找出潜在的 Bug(如空指针、资源未关闭、逻辑错误等),是 FindBugs 的现代版。 | |
| 🧹 分析代码设计与复杂度 | maven-pmd-plugin | 提供更深入的代码质量分析,能检测未使用的变量、重复代码、复杂的代码块等问题,帮助优化代码结构。 |
测试报告, 及质量分析
flowchart TD A[开发者提交代码至Git仓库] --> B[CI服务器触发自动化构建]
subgraph Java项目流水线
direction TB
C1[清理
maven-clean-plugin] --> C2[编译
maven-compiler-plugin]
C2 --> C3[运行单元测试
maven-surefire-plugin]
C3 --> C4[打包
maven-jar-plugin/war-plugin]
C4 --> C5[运行集成测试
maven-failsafe-plugin]
C5 --> C6[执行代码质量分析
质量工具集]
end
subgraph C6_Details [代码质量分析详情]
direction LR
D1[静态缺陷检查<br>spotbugs-maven-plugin] --> D2[代码规范检查<br>maven-checkstyle-plugin]
D2 --> D3[设计与复杂度分析<br>maven-pmd-plugin]
D3 --> D4[测试覆盖率分析<br>jacoco-maven-plugin]
end
subgraph CSharp项目流水线
direction TB
E1[编译<br>dotnet build / MSBuild] --> E2[运行测试<br>dotnet test]
E2 --> E3[代码质量分析<br>.NET 质量工具集]
end
subgraph E3_Details [代码质量分析详情]
direction LR
F1[静态分析<br>Roslyn 分析器] --> F2[测试覆盖率分析<br>Coverlet]
end
B --> Java项目流水线
B --> CSharp项目流水线
Java项目流水线 --> G[生成多维度分析报告<br>HTML/XML/控制台]
CSharp项目流水线 --> G
G --> H{是否已集成SonarQube?}
H -->|是, 未来统一平台| I[上传分析结果<br>sonar-maven-plugin / SonarScanner for .NET]
H -->|否, 当前分散模式| J[报告保存于本地<br>或CI服务器目录]
I --> K[SonarQube 平台<br>集中可视化、管理与质量门禁]
J --> L[报告独立分散]
K --> M[生成统一的<br>质量仪表盘与报告]
L --> M
1. 版本历史(回顾)
| 版本号 | 发布日期 | 核心功能/主题 | 技术栈/备注 |
|---|---|---|---|
| SMD Box v1.0 | 2020年底 | 核心架构确立:实现锡膏料仓管理、扫码料架操作、工单出库等基础业务流程 | 技术栈:传统单体架构。标志着产品原型诞生 |
| SMD Box v1.5 | 2021年下半年 | 功能深化与定制化:为客户开发看板、呆滞物料提醒等定制功能 | 体现了从通用产品向满足特定客户需求的转变 |
| SMD Box v2.0 | 2023年上半年 | 架构拓展与新硬件支持:支持SMD Box方舱等复杂硬件,完成与PanaCIM系统对接 | 为后续升级为SMF平台奠定硬件集成基础 |
| SMF v1.0 | 2022年底 | 平台重构与现代化:全面升级至Spring Boot + Vue.js + MongoDB技术栈 | 里程碑:从"工具软件"向"平台化产品"战略转型 |
| SMF v2.0 | 2023年中 | 锡膏料仓核心功能成熟:完整实现锡膏料仓的专业化功能 | 在新技栈上实现关键业务模块的深度覆盖 |
| SMF v3.0 | 2024年初 | 体验与架构优化:实现单点登录,增强安全配置,包含虚拟回仓等重大更新 | 重点关注企业级部署的安全性和用户体验 |
| SMF v4.0 | 2024年4月 | 模块化与可扩展性提升:重构核心设备控制逻辑,增强系统可配置性 | 为支持更多设备类型和客户定制打下基础 |
| SMF v5.0 | 2024年10月 | 核心逻辑重大升级:重构入库验证、库位查找等底层逻辑,引入Fuji对接 | 深刻的底层架构优化,提升系统性能和稳定性 |
| SMF v5.9 | 2025年7月 | 虚拟仓功能上线:重新引入成熟的"虚拟仓"功能,支持Nexim设备在线操作 | 标志着高级功能在SMF平台上的成功落地 |
| SMF v5.12 | 2025年10月 | MES集成深化:优化尾料仓功能,实现工单状态改变实时通知MES | 展现与上层系统的深度集成能力 |
| SMF v5.14 | 2025年11月 | 流程精细化与稳定性提升:尾料管理增强、双库位操作、设备集成优化 | 提升仓库操作体验和系统稳定性 |
2. 发布日历(展望)
| 版本号 | 预计发布日期 | 核心功能/主题 | 当前状态 | 价值主张 |
|---|---|---|---|---|
| SMF v5.13 | 2025年12月 | 客户定制功能增强(Nexim, 中车)与系统优化 | 开发中 | 深化行业大客户合作,提升系统稳健性 |
| SMF v5.15 | 2026年1月 | 年终稳定版:集中进行Bug修复、性能优化与文档完善 | 规划中 | 确保年度发布版本的极高可靠性 |
| SMF v6.0 | 2026年第一季度 | AI与智能运维探索:引入数据智能分析模块,支持预测性维护 | 规划中 | 将平台从"自动化"向"智能化"演进 |
| SMF v6.1 | 2026年第二季度 | 多云/混合云部署支持与开放性API增强 | 规划中 | 满足大型客户对部署灵活性的高阶要求 |
1. Version History (Retrospective)
| Version | Release Date | Core Features / Themes | Technical Stack / Notes |
|---|---|---|---|
| SMD Box v1.0 | End of 2020 | Core Architecture Establishment: Implemented basic business processes for solder paste storage, barcode rack operations, and work order dispensing | Tech Stack: Traditional monolithic architecture. Marked the birth of the product prototype |
| SMD Box v1.5 | Second Half of 2021 | Feature Deepening and Customization: Developed customized functions like dashboards and stagnant material alerts for clients | Reflected the shift to meet specific customer needs |
| SMD Box v2.0 | First Half of 2023 | Architecture Expansion & New Hardware Support: Added support for complex hardware like SMD Box shelters, integrated with PanaCIM system | Laid the hardware foundation for the SMF platform upgrade |
| SMF v1.0 | End of 2022 | Platform Refactoring & Modernization: Upgraded to Spring Boot + Vue.js + MongoDB tech stack | Milestone: Strategic transition from "tool" to "platform" |
| SMF v2.0 | Mid-2023 | Solder Paste Storage Core Features: Fully implemented professional features including temperature control and reporting | Achieved deep coverage of key business modules |
| SMF v3.0 | Early 2024 | Experience & Architecture Optimization: Implemented SSO, enhanced security, virtual return-to-warehouse features | Focused on enterprise-level security and user experience |
| SMF v4.0 | April 2024 | Modularization & Scalability: Refactored core device control logic, improved configurability | Foundation for supporting more device types and customization |
| SMF v5.0 | October 2024 | Major Core Logic Upgrade: Refactored inbound verification, location finding, added Fuji integration | Significant architecture optimization for performance and stability |
| SMF v5.9 | July 2025 | Virtual Warehouse Launch: Re-introduced mature "Virtual Warehouse" with Nexim device support | Successful implementation of advanced platform features |
| SMF v5.12 | October 2025 | MES Integration Deep Dive: Optimized tailings management, real-time work order status to MES | Demonstrated deep integration with upper-level systems |
| SMF v5.14 | November 2025 | Process Refinement & Stability: Enhanced tailings management, dual-location operations, device integration | Improved operational efficiency and system stability |
2. Release Calendar (Forward-Looking)
| Version | Planned Release Date | Core Features/Theme | Current Status | Value Proposition |
|---|---|---|---|---|
| SMF v5.13 | December 2025 | Customer-specific enhancements (Nexim, CRRC) and system optimization | In Development | Deepens collaboration with key customers, improves robustness |
| SMF v5.15 | January 2026 | Year-end stable release: Bug fixes, performance tuning, documentation | Planned | Ensures high reliability of annual release version |
| SMF v6.0 | Q1 2026 | AI and Predictive Maintenance: Data intelligence analysis for predictive maintenance | Planned | Evolves platform from "automation" to "intelligence" |
| SMF v6.1 | Q2 2026 | Multi-cloud/Hybrid deployment & Open API enhancement | Planned | Meets enterprise requirements for deployment flexibility |
Summary
This document tracks the evolution from SMD Box (a single-function tool) to SMF (an enterprise platform), demonstrating continuous innovation and strategic growth in industrial material management solutions.
Document Version: 1.1 | Last Updated: 2025-12-11 | Contact: Technical Documentation Team
Code Quality Inspection Standards
| Inspection Category | Tools | Maximum Tolerance | Target Value | Key Rules |
|---|---|---|---|---|
| Code Style Inspection | Checkstyle (Java) StyleCop (C#) |
0 Errors | 0 Errors | Naming conventions, indentation, comment standards |
| Code Defect Detection | PMD (Java) Roslyn Analyzers (C#) |
≤5 Warnings | 0 Warnings | Null pointer exceptions, resource leaks |
| Duplicate Code Detection | CPD (PMD) SonarQube |
≤3% | ≤1% | Duplicate code block identification |
| Code Complexity | SonarQube PMD |
Cyclomatic Complexity ≤15 | Cyclomatic Complexity ≤10 | Overly long methods, excessive nesting |
Execution Requirements: Code style inspections should be configured with team-unified coding standard files and included in version control. For PMD warnings, categories must be distinguished—security-related warnings must be cleared, while code style warnings can be appropriately relaxed but require regular review.