mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
feat: add service config templates and extraction script
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# cw-elevator-application v2.0.0 SQL与代码一致性审核记录
|
||||
|
||||
**审核目标**:确认发布规范涉及 SQL 脚本与当前代码逻辑一致,满足实施交付依据留档要求。
|
||||
**审核范围**:`tenant_visitor_floor_policy` 建表脚本、初始化脚本、访客派梯策略读取与求交流程。
|
||||
**审核时间**:`2026-04-29`
|
||||
**审核人**:`____________`
|
||||
|
||||
---
|
||||
|
||||
## 1. 审核过程
|
||||
|
||||
1. 审阅 SQL 脚本:
|
||||
- `docs/sql/tenant_visitor_floor_policy.sql`
|
||||
- `docs/sql/tenant_visitor_floor_policy_init_guangfa_fund.sql`
|
||||
2. 审阅代码路径:
|
||||
- `cw-elevator-application-service/.../PersonRuleServiceImpl#addVisitor`
|
||||
- `cw-elevator-application-data/.../TenantVisitorFloorPolicyMapper.xml`
|
||||
- `cw-elevator-application-data/.../TenantVisitorFloorPolicyDto`
|
||||
3. 做场景对照:
|
||||
- UC-01:调用方未传 `floorIds`
|
||||
- UC-02:调用方已传 `floorIds`
|
||||
- 策略缺失/无效 JSON/交集为空等异常分支
|
||||
4. 形成一致性结论与风险提示,并纳入发布包。
|
||||
|
||||
---
|
||||
|
||||
## 2. 审核依据与结果
|
||||
|
||||
| 检查项 | SQL 依据 | 代码依据 | 结论 |
|
||||
|------|----------|----------|------|
|
||||
| 策略表字段是否齐全(business_id/policy_type/allow_zone_ids/building_id/enabled/policy_version) | `tenant_visitor_floor_policy.sql` DDL 定义上述字段 | Mapper 查询并映射到 DTO 同名语义字段 | 一致 |
|
||||
| 代码是否只读取“启用+租户默认+INTERSECT_ALLOWLIST”策略 | 初始化脚本使用 `policy_type='INTERSECT_ALLOWLIST'`、`building_id=NULL`、`enabled=1` | Mapper `WHERE enabled=1 AND policy_type='INTERSECT_ALLOWLIST' AND (building_id IS NULL OR building_id='')` | 一致 |
|
||||
| allow_zone_ids 的数据格式是否匹配代码解析方式 | SQL 注释与初始化脚本均为 JSON 数组字符串(如 `["605560545117995008"]`) | `parseAllowZoneIds` 使用 `JSON.parseArray(..., String.class)` 解析 | 一致 |
|
||||
| 未传 floorIds 时是否执行“被访人楼层 ∩ 策略楼层” | 策略表提供 allowlist 数据来源 | `addVisitor` 在 `!callerProvidedFloors` 分支求交 | 一致 |
|
||||
| 交集为空是否按规范失败 | 初始化脚本可构造交集为空场景 | `intersected.isEmpty()` 返回 `76260532` | 一致 |
|
||||
| 已传 floorIds 是否跳过策略表 | SQL 与此分支无冲突 | `callerProvidedFloors=true` 时不进入策略读取分支 | 一致 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 关键证据(摘录)
|
||||
|
||||
- 代码读取策略(启用、类型、租户默认)来自 `TenantVisitorFloorPolicyMapper.xml`。
|
||||
- 代码在 `PersonRuleServiceImpl#addVisitor` 中:
|
||||
- `!callerProvidedFloors` 才读取被访人楼层与租户策略;
|
||||
- `allow_zone_ids` 解析成功且非空才参与求交;
|
||||
- 求交为空返回 `76260532`;
|
||||
- 调用方已传楼层时不走策略求交流程。
|
||||
- 初始化脚本 `tenant_visitor_floor_policy_init_guangfa_fund.sql` 的字段取值与上述查询条件完全兼容。
|
||||
|
||||
---
|
||||
|
||||
## 4. 审核结论
|
||||
|
||||
**结论:通过。**
|
||||
发布规范涉及的 SQL 脚本内容与当前代码逻辑一致,满足 v2.0.0 发布包“数据库脚本 + 功能升级说明 + 实施交付依据”要求。
|
||||
|
||||
---
|
||||
|
||||
## 5. 风险提示与建议
|
||||
|
||||
1. **唯一性治理风险(中)**
|
||||
DDL 使用 `UNIQUE KEY (business_id, building_id)`,在 MySQL 下 `building_id=NULL` 可能存在多行;当前代码通过 `ORDER BY updated_at DESC, policy_version DESC LIMIT 1` 取最新一条,不阻断功能,但建议运维侧增加“每租户默认策略唯一”巡检。
|
||||
2. **配置数据质量风险(中)**
|
||||
`allow_zone_ids` 必须是电梯域 `zone_id` 字符串数组,若误填其它系统 UUID 会导致策略不生效或交集为空。
|
||||
|
||||
---
|
||||
|
||||
## 6. 签字确认
|
||||
|
||||
| 角色 | 姓名 | 日期 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 审核人 | `____________` | `____` | `____` |
|
||||
| 实施负责人 | `____________` | `____` | `____` |
|
||||
| 甲方确认(可选) | `____________` | `____` | `____` |
|
||||
|
||||
+5
-2
@@ -7,7 +7,10 @@
|
||||
**对甲交付(业务表述与排期)**:
|
||||
|
||||
- [甲方版本升级说明](./cw-elevator-application-v2.0.0-甲方版本升级说明.md)
|
||||
- [升级计划(含夜间 · 周二/周三窗口)](./cw-elevator-application-v2.0.0-升级计划.md)
|
||||
- [升级计划(含夜间 · 周二/周三窗口)](./cw-elevator-application-v2.0.0-升级计划.md)
|
||||
- [实施交付清单(实施方内部与对甲交付核对)](./cw-elevator-application-v2.0.0-实施交付清单.md)
|
||||
- [实施验收记录模板(上线当晚记录)](./cw-elevator-application-v2.0.0-实施验收记录模板.md)
|
||||
- [SQL与代码一致性审核记录(发布规范走查依据)](./cw-elevator-application-v2.0.0-SQL与代码一致性审核记录.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -20,7 +23,7 @@ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
||||
./scripts/release-cw-elevator-application.sh
|
||||
```
|
||||
|
||||
输出:`**maven-cw-elevator-application/releases/v2.0.0/**`,含 `jar`、`ddl/`、`版本升级说明书.md`、`甲方版本升级说明.md`、`升级计划.md`、`发布说明.md`、`BUILD_MANIFEST.txt`。
|
||||
输出:`**maven-cw-elevator-application/releases/v2.0.0/**`,含 `jar`、`ddl/`(建表与初始化脚本)、`config/`(生产基线属性文件)、`版本升级说明书.md`、`甲方版本升级说明.md`、`升级计划.md`、`实施交付清单.md`、`实施验收记录模板.md`、`SQL与代码一致性审核记录.md`、`发布说明.md`、`BUILD_MANIFEST.txt`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
# cw-elevator-application v2.0.0 实施交付清单
|
||||
|
||||
**用途**:用于正式发布交付前后的材料核对,满足“发布包 + 数据库脚本 + 升级说明 + 实施验收记录”闭环。
|
||||
|
||||
---
|
||||
|
||||
## 1. 发布包文件清单
|
||||
|
||||
- [ ] `cw-elevator-application-2.0.0.jar`
|
||||
- [ ] `ddl/tenant_visitor_floor_policy.sql`(建表脚本)
|
||||
- [ ] `ddl/tenant_visitor_floor_policy_init_guangfa_fund.sql`(广发基金初始化示例/可直接执行)
|
||||
- [ ] `版本升级说明书.md`(技术实施口径)
|
||||
- [ ] `甲方版本升级说明.md`(业务口径)
|
||||
- [ ] `升级计划.md`(实施窗口与回滚安排)
|
||||
- [ ] `实施验收记录模板.md`(上线当晚记录)
|
||||
- [ ] `BUILD_MANIFEST.txt`(构建时间、分支、提交号)
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据库变更交付项
|
||||
|
||||
- [ ] DBA 已确认目标库与执行窗口
|
||||
- [ ] 已备份目标库(全库/指定库按现场规范)
|
||||
- [ ] 已执行 `tenant_visitor_floor_policy.sql`
|
||||
- [ ] 已执行或评审 `tenant_visitor_floor_policy_init_guangfa_fund.sql`
|
||||
- [ ] 已确认 `allow_zone_ids` 使用的是电梯库 `zone_id`(非其它系统 UUID)
|
||||
- [ ] 已留存 SQL 执行记录(执行人、时间、结果)
|
||||
|
||||
---
|
||||
|
||||
## 3. 应用部署交付项
|
||||
|
||||
- [ ] 上线前已保存旧版 JAR 回滚包
|
||||
- [ ] 已按窗口替换为 `cw-elevator-application-2.0.0.jar`
|
||||
- [ ] 应用启动日志无严重报错
|
||||
- [ ] 关键接口健康检查通过(含 `add/visitor` 主链路)
|
||||
- [ ] 监控观察窗口内无持续异常
|
||||
|
||||
---
|
||||
|
||||
## 4. 验收交付项
|
||||
|
||||
- [ ] UC-01:未传 `floorIds` 且策略启用时,楼层为 `floorList ∩ allow_zone_ids`
|
||||
- [ ] UC-01:无交集时返回 `76260532`
|
||||
- [ ] UC-02:显式传 `floorIds` 时不受策略表影响
|
||||
- [ ] 未启用策略租户行为与升级前一致
|
||||
- [ ] 已按《实施验收记录模板》完成签字/邮件留档
|
||||
|
||||
---
|
||||
|
||||
## 5. 交付确认信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 实施项目 | cw-elevator-application v2.0.0 |
|
||||
| 实施日期 | `____年____月____日` |
|
||||
| 甲方确认人 | `____________` |
|
||||
| 乙方实施人 | `____________` |
|
||||
| 文档留存路径 | `____________` |
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# cw-elevator-application v2.0.0 实施验收记录模板
|
||||
|
||||
**用途**:实施当晚记录数据库执行、应用部署、业务验收和回滚判定,作为交付归档依据。
|
||||
|
||||
---
|
||||
|
||||
## 1. 基本信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 项目名称 | 智慧电梯 / 访客派梯系统 |
|
||||
| 发布版本 | v2.0.0 |
|
||||
| 实施日期 | `____年____月____日` |
|
||||
| 实施时段 | `____:____` - `____:____` |
|
||||
| 环境 | 生产 / 预生产(圈选) |
|
||||
| 实施负责人 | `____________` |
|
||||
| 甲方联系人 | `____________` |
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据库执行记录
|
||||
|
||||
| 序号 | 脚本 | 执行时间 | 执行人 | 结果 | 备注 |
|
||||
|------|------|----------|--------|------|------|
|
||||
| 1 | tenant_visitor_floor_policy.sql | `____` | `____` | 成功/失败 | `____` |
|
||||
| 2 | tenant_visitor_floor_policy_init_guangfa_fund.sql | `____` | `____` | 成功/失败 | `____` |
|
||||
|
||||
**异常记录**:`______________________________________________`
|
||||
|
||||
---
|
||||
|
||||
## 3. 应用发布记录
|
||||
|
||||
| 项目 | 记录 |
|
||||
|------|------|
|
||||
| 上线前版本 | `____________` |
|
||||
| 上线后版本 | `cw-elevator-application-2.0.0.jar` |
|
||||
| 启停方式 | `____________` |
|
||||
| 服务恢复时间 | `____________` |
|
||||
| 日志健康检查 | 通过 / 不通过 |
|
||||
| 监控观察结论 | 正常 / 异常(说明) |
|
||||
|
||||
---
|
||||
|
||||
## 4. 验收结果记录
|
||||
|
||||
| 用例 | 期望 | 实际 | 结论 |
|
||||
|------|------|------|------|
|
||||
| UC-01(未传 floorIds,策略启用) | floorList 与 allow_zone_ids 求交 | `____` | 通过/不通过 |
|
||||
| UC-01(交集为空) | 返回 `76260532` | `____` | 通过/不通过 |
|
||||
| UC-02(显式传 floorIds) | 不受策略表影响 | `____` | 通过/不通过 |
|
||||
| 无策略租户回归 | 行为与升级前一致 | `____` | 通过/不通过 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 回滚判定
|
||||
|
||||
- [ ] 无需回滚,发布成功
|
||||
- [ ] 需要回滚应用(原因:`________________`)
|
||||
- [ ] 需要回滚数据/策略(原因:`________________`)
|
||||
|
||||
回滚执行记录(如发生):`______________________________________________`
|
||||
|
||||
---
|
||||
|
||||
## 6. 签字确认
|
||||
|
||||
| 角色 | 姓名 | 日期 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 甲方确认 | `____________` | `____` | `____` |
|
||||
| 乙方实施 | `____________` | `____` | `____` |
|
||||
| 乙方复核 | `____________` | `____` | `____` |
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
# cw-elevator-application v2.0.6 SQL与代码一致性审核记录
|
||||
|
||||
**审核目标**:确认发布规范涉及 SQL 脚本与当前代码逻辑一致,满足实施交付依据留档要求。
|
||||
**审核范围**:`tenant_visitor_floor_policy` 建表脚本、初始化脚本、访客派梯策略读取与求交流程。
|
||||
**审核时间**:`2026-04-29`
|
||||
**审核人**:`____________`
|
||||
|
||||
---
|
||||
|
||||
## 1. 审核过程
|
||||
|
||||
1. 审阅 SQL 脚本:
|
||||
- `docs/sql/tenant_visitor_floor_policy.sql`
|
||||
- `docs/sql/tenant_visitor_floor_policy_init_guangfa_fund.sql`
|
||||
2. 审阅代码路径:
|
||||
- `cw-elevator-application-service/.../PersonRuleServiceImpl#addVisitor`
|
||||
- `cw-elevator-application-data/.../TenantVisitorFloorPolicyMapper.xml`
|
||||
- `cw-elevator-application-data/.../TenantVisitorFloorPolicyDto`
|
||||
3. 做场景对照:
|
||||
- UC-01:调用方未传 `floorIds`
|
||||
- UC-02:调用方已传 `floorIds`
|
||||
- 策略缺失/无效 JSON/交集为空等异常分支
|
||||
4. 形成一致性结论与风险提示,并纳入发布包。
|
||||
|
||||
---
|
||||
|
||||
## 2. 审核依据与结果
|
||||
|
||||
| 检查项 | SQL 依据 | 代码依据 | 结论 |
|
||||
|------|----------|----------|------|
|
||||
| 策略表字段是否齐全(business_id/policy_type/allow_zone_ids/building_id/enabled/policy_version) | `tenant_visitor_floor_policy.sql` DDL 定义上述字段 | Mapper 查询并映射到 DTO 同名语义字段 | 一致 |
|
||||
| 代码是否只读取“启用+租户默认+INTERSECT_ALLOWLIST”策略 | 初始化脚本使用 `policy_type='INTERSECT_ALLOWLIST'`、`building_id=NULL`、`enabled=1` | Mapper `WHERE enabled=1 AND policy_type='INTERSECT_ALLOWLIST' AND (building_id IS NULL OR building_id='')` | 一致 |
|
||||
| allow_zone_ids 的数据格式是否匹配代码解析方式 | SQL 注释与初始化脚本均为 JSON 数组字符串(如 `["605560545117995008"]`) | `parseAllowZoneIds` 使用 `JSON.parseArray(..., String.class)` 解析 | 一致 |
|
||||
| 未传 floorIds 时是否执行“被访人楼层 ∩ 策略楼层” | 策略表提供 allowlist 数据来源 | `addVisitor` 在 `!callerProvidedFloors` 分支求交 | 一致 |
|
||||
| 交集为空是否按规范失败 | 初始化脚本可构造交集为空场景 | `intersected.isEmpty()` 返回 `76260532` | 一致 |
|
||||
| 已传 floorIds 是否跳过策略表 | SQL 与此分支无冲突 | `callerProvidedFloors=true` 时不进入策略读取分支 | 一致 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 关键证据(摘录)
|
||||
|
||||
- 代码读取策略(启用、类型、租户默认)来自 `TenantVisitorFloorPolicyMapper.xml`。
|
||||
- 代码在 `PersonRuleServiceImpl#addVisitor` 中:
|
||||
- `!callerProvidedFloors` 才读取被访人楼层与租户策略;
|
||||
- `allow_zone_ids` 解析成功且非空才参与求交;
|
||||
- 求交为空返回 `76260532`;
|
||||
- 调用方已传楼层时不走策略求交流程。
|
||||
- 初始化脚本 `tenant_visitor_floor_policy_init_guangfa_fund.sql` 的字段取值与上述查询条件完全兼容。
|
||||
|
||||
---
|
||||
|
||||
## 4. 审核结论
|
||||
|
||||
**结论:通过。**
|
||||
发布规范涉及的 SQL 脚本内容与当前代码逻辑一致,满足 v2.0.6 发布包“数据库脚本 + 功能升级说明 + 实施交付依据”要求。
|
||||
|
||||
---
|
||||
|
||||
## 5. 风险提示与建议
|
||||
|
||||
1. **唯一性治理风险(中)**
|
||||
DDL 使用 `UNIQUE KEY (business_id, building_id)`,在 MySQL 下 `building_id=NULL` 可能存在多行;当前代码通过 `ORDER BY updated_at DESC, policy_version DESC LIMIT 1` 取最新一条,不阻断功能,但建议运维侧增加“每租户默认策略唯一”巡检。
|
||||
2. **配置数据质量风险(中)**
|
||||
`allow_zone_ids` 必须是电梯域 `zone_id` 字符串数组,若误填其它系统 UUID 会导致策略不生效或交集为空。
|
||||
|
||||
---
|
||||
|
||||
## 6. 签字确认
|
||||
|
||||
| 角色 | 姓名 | 日期 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 审核人 | `____________` | `____` | `____` |
|
||||
| 实施负责人 | `____________` | `____` | `____` |
|
||||
| 甲方确认(可选) | `____________` | `____` | `____` |
|
||||
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
# cw-elevator-application v2.0.6 升级计划
|
||||
|
||||
**项目名称**(可填):智慧电梯 / 访客派梯系统升级
|
||||
**版本**:v2.0.6
|
||||
**计划性质**:执行级排期草案,**具体日期、起止时刻以与甲方书面/邮件确认为准**。
|
||||
|
||||
---
|
||||
|
||||
## 1. 升级目标
|
||||
|
||||
完成电梯派梯应用 **v2.0.6** 上线,启用**租户访客固定访问楼层**能力所需的应用与数据库对象;按业务需要为指定租户配置策略并完成验收。
|
||||
|
||||
---
|
||||
|
||||
## 2. 计划时间窗口(夜间 · 暂定周二、周三)
|
||||
|
||||
| 窗口 | 意向安排 | 建议内容(可合并或调整) |
|
||||
|------|-----------|----------------------------|
|
||||
| **第一次:周二晚间** | 夜间低峰段,具体 **HH:MM–HH:MM** 待定 | 环境检查、数据库备份、执行 **DDL**(新建策略表)、(可选)预发布验证、必要时准备回滚包与检查单 |
|
||||
| **第二次:周三晚间** | 夜间低峰段,具体 **HH:MM–HH:MM** 待定 | 部署新版本 **JAR**、滚动/重启应用、按需 **INSERT** 租户策略数据、业务联调与验收、监控与值守 |
|
||||
|
||||
**说明**:
|
||||
|
||||
- 若贵方现场要求**一个晚上完成全部步骤**,可将 DDL 与部署**合并在同一晚间窗口**执行,本表仅体现「周二、周三两晚」的**当前意向拆分**,最终以确认单为准。
|
||||
- 两次窗口建议**间隔至少数小时至一个工作日**,便于第一次变更后观察库表与低风险项;若合并为单次窗口,须在计划单中注明**连续操作顺序与回滚点**。
|
||||
|
||||
**待确认栏**(实施时填写):
|
||||
|
||||
- 周二实施日期:`____年____月____日`,时段: `____ : ____` – `____ : ____`
|
||||
- 周三实施日期:`____年____月____日`,时段: `____ : ____` – `____ : ____`
|
||||
- 甲方现场联系人: `____________` 乙方/实施负责人: `____________`
|
||||
|
||||
---
|
||||
|
||||
## 3. 影响范围与沟通
|
||||
|
||||
| 项目 | 说明 |
|
||||
|------|------|
|
||||
| 影响系统 | 电梯派梯相关应用(`cw-elevator-application`)及同一业务库。 |
|
||||
| 用户感知 | 应用重启期间可能出现短时派梯接口失败;策略误配可能导致部分访客路径失败,需按验收清单核对。 |
|
||||
| 通知范围 | 建议提前通知:物业/客服、前台与访客登记、安保与梯控相关值班(按项目实际 roster 确定)。 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 前置条件(升级前)
|
||||
|
||||
- [ ] 已与甲方确认 **周二 / 周三** 夜间窗口。
|
||||
- [ ] 取得 **v2.0.6** 发布包(含 `jar`、`ddl/tenant_visitor_floor_policy.sql`、说明书)。
|
||||
- [ ] 目标环境 **JDK 版本**符合实施方要求(与构建说明一致,一般为 JDK 8)。
|
||||
- [ ] 数据库已做**备份**(全库或按运维规范),并可从发布包定位 DDL。
|
||||
- [ ] 明确需启用「固定访客楼层」的租户列表及**允许区域**配置(若不启用,可跳过策略数据录入,行为与升级前一致)。
|
||||
- [ ] 回滚包:保留**当前线上 JAR** 备份与回滚步骤(见下文)。
|
||||
|
||||
---
|
||||
|
||||
## 5. 实施步骤(建议顺序)
|
||||
|
||||
### 5.1 周二晚间(或首个窗口)
|
||||
|
||||
1. 备份数据库。
|
||||
2. 执行 `tenant_visitor_floor_policy.sql`(`CREATE TABLE IF NOT EXISTS`,可重复执行需与 DBA 确认)。
|
||||
3. (可选)在测试/预发环境先执行一遍并验证。
|
||||
4. 记录执行人、时间与结果。
|
||||
|
||||
### 5.2 周三晚间(或第二个窗口 / 同晚续作)
|
||||
|
||||
1. 停止或滚动发布应用(按现网规范)。
|
||||
2. 替换为 `cw-elevator-application-2.0.6.jar` 并启动。
|
||||
3. 按业务需求对需启用的租户执行策略 **INSERT**(`enabled=1`、`allow_zone_ids` 等为合法 JSON 等,字段级以技术说明书为准)。
|
||||
4. 抽样验证:未传显式楼层时的访客派梯、租户策略开/关、与组织楼层无交集时的失败提示等。
|
||||
5. 观察监控与日志,**值守**至约定结束时间。
|
||||
|
||||
*若合并为单次窗口:按「备份 → DDL → 部署 JAR → 策略数据 → 验收」顺序连续执行,并预留回滚决策时间。*
|
||||
|
||||
---
|
||||
|
||||
## 6. 验收要点(摘要)
|
||||
|
||||
- 未配置或未启用策略时:与升级前行为一致。
|
||||
- 已启用策略且业务走「未显式指定楼层」路径:访客可去楼层为**组织允许**与**租户允许**的**交集**。
|
||||
- 交集为空时:接口返回预期业务错误(技术码见实施方说明书)。
|
||||
- 第三方已显式传入楼层的路径:不因本策略表改变原逻辑。
|
||||
|
||||
---
|
||||
|
||||
## 7. 回滚预案
|
||||
|
||||
| 场景 | 建议动作 |
|
||||
|------|-----------|
|
||||
| 应用异常 | 回退至上一版本 JAR;数据库新表若已存在且旧应用不读该表,通常可继续服务;与实施方确认。 |
|
||||
| 策略配置错误 | 优先**停用或修正策略行**,避免大规模回滚应用。 |
|
||||
| 必须撤表 | 仅在评估无依赖后由 DBA 执行删表;**高风险**,需书面确认。 |
|
||||
|
||||
---
|
||||
|
||||
## 8. 交付物核对
|
||||
|
||||
- [ ] `cw-elevator-application-2.0.6.jar`
|
||||
- [ ] `ddl/tenant_visitor_floor_policy.sql`
|
||||
- [ ] 《版本升级说明书》(实施/技术)
|
||||
- [ ] 本《甲方版本升级说明》(如已作为对甲交付)
|
||||
- [ ] 本《升级计划》(双方确认签字/邮件留档)
|
||||
|
||||
---
|
||||
|
||||
**文档状态**:草案;**时间点为暂定周二、周三晚间**,正式实施前请更新「待确认栏」并留存确认记录。
|
||||
@@ -0,0 +1,32 @@
|
||||
# cw-elevator-application v2.0.6 发布索引
|
||||
|
||||
本版本**功能升级说明**已单独成文,**仅覆盖「租户访客固定访问楼层」**及配套数据库 DDL,见:
|
||||
|
||||
**[cw-elevator-application-v2.0.6-版本升级说明书](./cw-elevator-application-v2.0.6-版本升级说明书.md)**
|
||||
|
||||
**对甲交付(业务表述与排期)**:
|
||||
|
||||
- [甲方版本升级说明](./cw-elevator-application-v2.0.6-甲方版本升级说明.md)
|
||||
- [升级计划(含夜间 · 周二/周三窗口)](./cw-elevator-application-v2.0.6-升级计划.md)
|
||||
- [实施交付清单(实施方内部与对甲交付核对)](./cw-elevator-application-v2.0.6-实施交付清单.md)
|
||||
- [实施验收记录模板(上线当晚记录)](./cw-elevator-application-v2.0.6-实施验收记录模板.md)
|
||||
- [SQL与代码一致性审核记录(发布规范走查依据)](./cw-elevator-application-v2.0.6-SQL与代码一致性审核记录.md)
|
||||
|
||||
---
|
||||
|
||||
## 一键构建与发布目录
|
||||
|
||||
在仓库根目录、**JDK 8** 下执行:
|
||||
|
||||
```bash
|
||||
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
||||
./scripts/release-cw-elevator-application.sh 2.0.6
|
||||
```
|
||||
|
||||
输出:**`maven-cw-elevator-application/releases/cw-elevator-application-V2.0.6.<YYYYMMDD>/`**(目录名含构建日期,与 `cw-elevator-application-V1.0.0.20211103` 命名风格一致;可用环境变量 **`RELEASE_DATE_LABEL`** 指定日期),含 `cw-elevator-application-2.0.6.jar`、`ddl/`、发布根目录下的 `bootstrap.properties` / `application*.properties`(与星中心/V1 同层摆放,**无额外 `config/` 子目录**)、`start.sh` / `stop.sh` / `cw-elevator-application.service`(路径占位符需现场替换)、`run.sh`、`common-java.sh`、**`collect_elevator_runtime_evidence.sh`**(根目录,现场只读证据采集)、`版本升级说明书.md`、甲方与实施类 Markdown、`BUILD_MANIFEST.txt`;默认另生成 **`releases/cw-elevator-application-V2.0.6.<YYYYMMDD>.zip`**(设 `RELEASE_MAKE_ZIP=0` 可跳过)。
|
||||
|
||||
---
|
||||
|
||||
## Git 与大文件
|
||||
|
||||
`maven-cw-elevator-application/.gitignore` 忽略 `**releases/**/*.jar**`;**DDL 与说明书**可提交;可执行 JAR 请通过制品库或制品服务器分发。
|
||||
@@ -0,0 +1,60 @@
|
||||
# cw-elevator-application v2.0.6 实施交付清单
|
||||
|
||||
**用途**:用于正式发布交付前后的材料核对,满足“发布包 + 数据库脚本 + 升级说明 + 实施验收记录”闭环。
|
||||
|
||||
---
|
||||
|
||||
## 1. 发布包文件清单
|
||||
|
||||
- [ ] `cw-elevator-application-2.0.6.jar`
|
||||
- [ ] `ddl/tenant_visitor_floor_policy.sql`(建表脚本)
|
||||
- [ ] `ddl/tenant_visitor_floor_policy_init_guangfa_fund.sql`(广发基金初始化示例/可直接执行)
|
||||
- [ ] `版本升级说明书.md`(技术实施口径)
|
||||
- [ ] `甲方版本升级说明.md`(业务口径)
|
||||
- [ ] `升级计划.md`(实施窗口与回滚安排)
|
||||
- [ ] `实施验收记录模板.md`(上线当晚记录)
|
||||
- [ ] `BUILD_MANIFEST.txt`(构建时间、分支、提交号)
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据库变更交付项
|
||||
|
||||
- [ ] DBA 已确认目标库与执行窗口
|
||||
- [ ] 已备份目标库(全库/指定库按现场规范)
|
||||
- [ ] 已执行 `tenant_visitor_floor_policy.sql`
|
||||
- [ ] 已执行或评审 `tenant_visitor_floor_policy_init_guangfa_fund.sql`
|
||||
- [ ] 已确认 `allow_zone_ids` 使用的是电梯库 `zone_id`(非其它系统 UUID)
|
||||
- [ ] 已留存 SQL 执行记录(执行人、时间、结果)
|
||||
|
||||
---
|
||||
|
||||
## 3. 应用部署交付项
|
||||
|
||||
- [ ] 上线前已保存旧版 JAR 回滚包
|
||||
- [ ] 已按窗口替换为 `cw-elevator-application-2.0.6.jar`
|
||||
- [ ] 应用启动日志无严重报错
|
||||
- [ ] 关键接口健康检查通过(含 `add/visitor` 主链路)
|
||||
- [ ] 监控观察窗口内无持续异常
|
||||
|
||||
---
|
||||
|
||||
## 4. 验收交付项
|
||||
|
||||
- [ ] UC-01:未传 `floorIds` 且策略启用时,楼层为 `floorList ∩ allow_zone_ids`
|
||||
- [ ] UC-01:无交集时返回 `76260532`
|
||||
- [ ] UC-02:显式传 `floorIds` 时不受策略表影响
|
||||
- [ ] 未启用策略租户行为与升级前一致
|
||||
- [ ] 已按《实施验收记录模板》完成签字/邮件留档
|
||||
|
||||
---
|
||||
|
||||
## 5. 交付确认信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 实施项目 | cw-elevator-application v2.0.6 |
|
||||
| 实施日期 | `____年____月____日` |
|
||||
| 甲方确认人 | `____________` |
|
||||
| 乙方实施人 | `____________` |
|
||||
| 文档留存路径 | `____________` |
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# cw-elevator-application v2.0.6 实施验收记录模板
|
||||
|
||||
**用途**:实施当晚记录数据库执行、应用部署、业务验收和回滚判定,作为交付归档依据。
|
||||
|
||||
---
|
||||
|
||||
## 1. 基本信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 项目名称 | 智慧电梯 / 访客派梯系统 |
|
||||
| 发布版本 | v2.0.6 |
|
||||
| 实施日期 | `____年____月____日` |
|
||||
| 实施时段 | `____:____` - `____:____` |
|
||||
| 环境 | 生产 / 预生产(圈选) |
|
||||
| 实施负责人 | `____________` |
|
||||
| 甲方联系人 | `____________` |
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据库执行记录
|
||||
|
||||
| 序号 | 脚本 | 执行时间 | 执行人 | 结果 | 备注 |
|
||||
|------|------|----------|--------|------|------|
|
||||
| 1 | tenant_visitor_floor_policy.sql | `____` | `____` | 成功/失败 | `____` |
|
||||
| 2 | tenant_visitor_floor_policy_init_guangfa_fund.sql | `____` | `____` | 成功/失败 | `____` |
|
||||
|
||||
**异常记录**:`______________________________________________`
|
||||
|
||||
---
|
||||
|
||||
## 3. 应用发布记录
|
||||
|
||||
| 项目 | 记录 |
|
||||
|------|------|
|
||||
| 上线前版本 | `____________` |
|
||||
| 上线后版本 | `cw-elevator-application-2.0.6.jar` |
|
||||
| 启停方式 | `____________` |
|
||||
| 服务恢复时间 | `____________` |
|
||||
| 日志健康检查 | 通过 / 不通过 |
|
||||
| 监控观察结论 | 正常 / 异常(说明) |
|
||||
|
||||
---
|
||||
|
||||
## 4. 验收结果记录
|
||||
|
||||
| 用例 | 期望 | 实际 | 结论 |
|
||||
|------|------|------|------|
|
||||
| UC-01(未传 floorIds,策略启用) | floorList 与 allow_zone_ids 求交 | `____` | 通过/不通过 |
|
||||
| UC-01(交集为空) | 返回 `76260532` | `____` | 通过/不通过 |
|
||||
| UC-02(显式传 floorIds) | 不受策略表影响 | `____` | 通过/不通过 |
|
||||
| 无策略租户回归 | 行为与升级前一致 | `____` | 通过/不通过 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 回滚判定
|
||||
|
||||
- [ ] 无需回滚,发布成功
|
||||
- [ ] 需要回滚应用(原因:`________________`)
|
||||
- [ ] 需要回滚数据/策略(原因:`________________`)
|
||||
|
||||
回滚执行记录(如发生):`______________________________________________`
|
||||
|
||||
---
|
||||
|
||||
## 6. 签字确认
|
||||
|
||||
| 角色 | 姓名 | 日期 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 甲方确认 | `____________` | `____` | `____` |
|
||||
| 乙方实施 | `____________` | `____` | `____` |
|
||||
| 乙方复核 | `____________` | `____` | `____` |
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
# cw-elevator-application v2.0.6 版本升级说明书
|
||||
|
||||
**适用范围**:本说明**仅**描述 **v2.0.6** 中与 **租户访客固定访问楼层**(租户级允许区域与组织 `floorList` 求交)相关的升级内容,不含其它性能优化或通用发布项。
|
||||
|
||||
**应用制品**:`cw-elevator-application-2.0.6.jar`(Spring Boot 可执行 fat JAR)。
|
||||
|
||||
---
|
||||
|
||||
## 1. 功能概述
|
||||
|
||||
在 **访客派梯** 接口 **`add/visitor`**(实现类 `PersonRuleServiceImpl#addVisitor`)中,当调用方 **未传入非空 `floorIds`**(业务流程 **UC-01**:按被访人组织侧楼层推导)时:
|
||||
|
||||
1. 服务仍先通过 **`person/detail`** 取得被访人 **`floorList`**(与升级前一致)。
|
||||
2. **新增**:若数据库中存在**启用**的租户策略行,且 **`allow_zone_ids`** 解析为非空 JSON 数组,则最终生效楼层为
|
||||
**`effectiveFloors = floorList ∩ allow_zone_ids`**(顺序保持 **`floorList`** 原有顺序)。
|
||||
3. 若交集 **为空**,接口返回失败码 **`76260532`**(不允许静默放宽到其它楼层)。
|
||||
4. 若无策略表、无启用行、`allow_zone_ids` 为空或 JSON 无效:行为与升级前一致,使用 **`floorList` 全集**。
|
||||
|
||||
当调用方 **已传入非空 `floorIds`**(**UC-02**,第三方显式指定楼层)时:**不读取**策略表,**不对入参求交**,与升级前一致。
|
||||
|
||||
> **产品表述**:「固定访问楼层」在本阶段由租户管理员通过 **`allow_zone_ids`** 声明**允许开放给访客派梯的区域(zoneId)集合**;在 UC-01 路径下与组织返回的 **`floorList`** 取交集,从而将访客权限**收敛**到既有「被访人可去楼层」与「租户允许楼层」的双重约束内。
|
||||
|
||||
---
|
||||
|
||||
## 2. 涉及的数据库变更
|
||||
|
||||
### 2.1 变更类型
|
||||
|
||||
| 类型 | 对象 |
|
||||
|------|------|
|
||||
| **新增表** | `tenant_visitor_floor_policy` |
|
||||
|
||||
**执行库**:与电梯应用 **同一数据源**(MySQL/InnoDB,与现有派梯业务库一致)。
|
||||
|
||||
### 2.2 表用途(摘要)
|
||||
|
||||
| 字段 | 含义 |
|
||||
|------|------|
|
||||
| `business_id` | 租户/机构 ID |
|
||||
| `policy_type` | 本阶段固定 **`INTERSECT_ALLOWLIST`** |
|
||||
| `allow_zone_ids` | **TEXT**,存 **JSON 数组**字符串,元素为允许访客派梯的 **zoneId** |
|
||||
| `building_id` | 租户级默认策略填 **NULL**(预留楼栋维) |
|
||||
| `enabled` | **1** 启用 / **0** 停用 |
|
||||
| `policy_version` | 配置版本号(审计) |
|
||||
|
||||
唯一约束 **`uk_biz_building (business_id, building_id)`**:同一租户、租户级策略(`building_id` 为空)**建议仅维护一行**,避免多行时查询仅命中「最新一条」与运维预期不符。
|
||||
|
||||
### 2.3 DDL 脚本位置
|
||||
|
||||
| 用途 | 仓库内路径 |
|
||||
|------|------------|
|
||||
| **权威 DDL** | `docs/sql/tenant_visitor_floor_policy.sql` |
|
||||
|
||||
**发布包内副本**:随 v2.0.6 发布目录一并下发,路径为 **`ddl/tenant_visitor_floor_policy.sql`**(与根目录 JAR 同级下的 `ddl` 子目录)。
|
||||
|
||||
脚本内容为 **`CREATE TABLE IF NOT EXISTS`**,在未建表环境可重复执行;**不含**业务数据 `INSERT`,上线需按租户配置自行 **`INSERT`** 策略行。
|
||||
|
||||
### 2.4 上线执行顺序(建议)
|
||||
|
||||
1. **备份**当前电梯应用库(至少包含待变更库的全库或相关表备份策略)。
|
||||
2. 在目标库执行 **`ddl/tenant_visitor_floor_policy.sql`**(或直接使用仓库 `docs/sql` 下同源文件)。
|
||||
3. 对需启用策略的租户 **`INSERT`** 一行(示例字段:`business_id`、`policy_type='INTERSECT_ALLOWLIST'`、`allow_zone_ids` 为合法 JSON 数组、`enabled=1`、`building_id` 为 **NULL**)。
|
||||
4. 部署 **`cw-elevator-application-2.0.6.jar`** 并滚动重启应用。
|
||||
5. 按 §4 做 **UC-01 / UC-02** 验收。
|
||||
|
||||
### 2.5 回滚说明
|
||||
|
||||
- **仅回滚应用**:还原旧版本 JAR 后,若库中**已存在**策略行且仍为 **enabled=1**,旧版本应用**通常不读取**该表,行为与历史一致;表结构可保留。
|
||||
- **回滚数据库**:若需删除表(谨慎),在确认无其它依赖后执行 **`DROP TABLE tenant_visitor_floor_policy`**;请在变更窗口与 DBA 确认。
|
||||
|
||||
---
|
||||
|
||||
## 3. 行为与错误码(验收)
|
||||
|
||||
| 场景 | `floorIds` | 策略库 | 期望 |
|
||||
|------|------------|--------|------|
|
||||
| UC-01 基线 | 空/未传 | 无启用行或 allow 空/无效 | 使用组织 **`floorList` 全集**(与升级前一致) |
|
||||
| UC-01 + 固定楼层 | 空/未传 | 有启用行且 allow 非空 | **`floorList ∩ allow`**(保序) |
|
||||
| 无交集 | 空/未传 | allow 与 `floorList` 无交集 | **`76260532`** |
|
||||
| 被访人无楼层 | 空/未传 | 任意 | **`76260531`** |
|
||||
| UC-02 | **非空** | 任意 | **不读策略表**,按请求楼层处理 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 发布包目录结构(v2.0.6)
|
||||
|
||||
执行仓库根目录 **`./scripts/release-cw-elevator-application.sh 2.0.6`** 后,输出目录为(名称含构建日期 `<YYYYMMDD>`,与历史运行包 **`cw-elevator-application-V1.0.0.20211103`** 同构;可用环境变量 **`RELEASE_DATE_LABEL`** 固定日期):
|
||||
|
||||
**`maven-cw-elevator-application/releases/cw-elevator-application-V2.0.6.<YYYYMMDD>/`**
|
||||
|
||||
| 文件/目录 | 说明 |
|
||||
|-----------|------|
|
||||
| `cw-elevator-application-2.0.6.jar` | 可执行应用 |
|
||||
| `bootstrap.properties`、`application*.properties` | 与 JAR 同层(**不**再使用 `config/` 子目录重复存放) |
|
||||
| `ddl/tenant_visitor_floor_policy.sql` | 与本功能相关的 **唯一 DDL**(与 `docs/sql` 同源) |
|
||||
| `版本升级说明书.md` | 本文件副本(便于随包交付) |
|
||||
| `BUILD_MANIFEST.txt` | 构建时间、JDK、`git` 修订号 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 参考文档(仓库内)
|
||||
|
||||
| 文档 | 路径 |
|
||||
|------|------|
|
||||
| 数据库阶段变更记录 | `docs/business/租户访客默认楼层-数据库阶段变更记录.md` |
|
||||
| 数据库配置阶段技术设计 | `docs/business/租户访客默认楼层-数据库配置阶段技术设计.md` |
|
||||
| 技术产品方案 | `docs/business/租户访客默认楼层技术产品方案.md` |
|
||||
| 访客注册与派梯楼层走查 | `docs/business/访客注册与派梯楼层业务流程走查.md` |
|
||||
|
||||
---
|
||||
|
||||
**文档版本**:与制品 **`cw-elevator-application-2.0.6`** 对齐;若仅升级文档而不改代码,请以 **`BUILD_MANIFEST.txt`** 中构建时间为准。
|
||||
@@ -0,0 +1,34 @@
|
||||
# 电梯派梯应用 v2.0.6 — 版本升级说明(广发基金)
|
||||
|
||||
**制品**:`cw-elevator-application-2.0.6.jar`。技术细节、验收码与脚本位置见同目录《版本升级说明书》。
|
||||
|
||||
---
|
||||
|
||||
## 本次升级做什么
|
||||
|
||||
针对**广发基金**租户:访客走常见派梯路径(接口**未单独传楼层**)时,系统在「被访人所在单位给的可去楼层」基础上,再按**广发基金侧配置的允许区域**做一次收紧,两边**都满足**的楼层才能派梯。这样可以把访客权限收在比如固定接待层,而员工本人仍可按组织权限去多层办公。
|
||||
|
||||
广发基金若**未配置或未启用**该策略,行为与现在一致。
|
||||
|
||||
---
|
||||
|
||||
## 上线要动什么
|
||||
|
||||
- 换新版应用包。
|
||||
- 库里**多一张策略表**(脚本在发布包 `ddl/` 下);表里为广发基金写入**一行**启用策略即可,允许区域(如接待层对应的 zone)由业务与实施定稿。
|
||||
|
||||
其它租户不配策略则**不受影响**。
|
||||
|
||||
---
|
||||
|
||||
## 对您这边的影响
|
||||
|
||||
- **时间**:安排在**夜间**,具体周二/周三窗口见《升级计划》。
|
||||
- **中断**:重启应用时派梯接口可能**短暂**不可用,一般会控制在很短时间。
|
||||
- **配合**:指定一个对接人;确认广发基金侧要开放的**访客可达区域/楼层**(与前台、接待流程对齐);上线后若有异常派梯请及时反馈。
|
||||
|
||||
---
|
||||
|
||||
## 出问题怎么办
|
||||
|
||||
应用可先退回上一版包;策略数据可单独改/停,不一定整库回滚。细则见《升级计划》。
|
||||
@@ -0,0 +1,75 @@
|
||||
# cw-elevator-application v2.0.7 SQL与代码一致性审核记录
|
||||
|
||||
**审核目标**:确认发布规范涉及 SQL 脚本与当前代码逻辑一致,满足实施交付依据留档要求。
|
||||
**审核范围**:`tenant_visitor_floor_policy` 建表脚本、初始化脚本、访客派梯策略读取与求交流程。
|
||||
**审核时间**:`2026-04-29`
|
||||
**审核人**:`____________`
|
||||
|
||||
---
|
||||
|
||||
## 1. 审核过程
|
||||
|
||||
1. 审阅 SQL 脚本:
|
||||
- `docs/sql/tenant_visitor_floor_policy.sql`
|
||||
- `docs/sql/tenant_visitor_floor_policy_init_guangfa_fund.sql`
|
||||
2. 审阅代码路径:
|
||||
- `cw-elevator-application-service/.../PersonRuleServiceImpl#addVisitor`
|
||||
- `cw-elevator-application-data/.../TenantVisitorFloorPolicyMapper.xml`
|
||||
- `cw-elevator-application-data/.../TenantVisitorFloorPolicyDto`
|
||||
3. 做场景对照:
|
||||
- UC-01:调用方未传 `floorIds`
|
||||
- UC-02:调用方已传 `floorIds`
|
||||
- 策略缺失/无效 JSON/交集为空等异常分支
|
||||
4. 形成一致性结论与风险提示,并纳入发布包。
|
||||
|
||||
---
|
||||
|
||||
## 2. 审核依据与结果
|
||||
|
||||
| 检查项 | SQL 依据 | 代码依据 | 结论 |
|
||||
|------|----------|----------|------|
|
||||
| 策略表字段是否齐全(business_id/policy_type/allow_zone_ids/building_id/enabled/policy_version) | `tenant_visitor_floor_policy.sql` DDL 定义上述字段 | Mapper 查询并映射到 DTO 同名语义字段 | 一致 |
|
||||
| 代码是否只读取“启用+租户默认+INTERSECT_ALLOWLIST”策略 | 初始化脚本使用 `policy_type='INTERSECT_ALLOWLIST'`、`building_id=NULL`、`enabled=1` | Mapper `WHERE enabled=1 AND policy_type='INTERSECT_ALLOWLIST' AND (building_id IS NULL OR building_id='')` | 一致 |
|
||||
| allow_zone_ids 的数据格式是否匹配代码解析方式 | SQL 注释与初始化脚本均为 JSON 数组字符串(如 `["605560545117995008"]`) | `parseAllowZoneIds` 使用 `JSON.parseArray(..., String.class)` 解析 | 一致 |
|
||||
| 未传 floorIds 时是否执行“被访人楼层 ∩ 策略楼层” | 策略表提供 allowlist 数据来源 | `addVisitor` 在 `!callerProvidedFloors` 分支求交 | 一致 |
|
||||
| 交集为空是否按规范失败 | 初始化脚本可构造交集为空场景 | `intersected.isEmpty()` 返回 `76260532` | 一致 |
|
||||
| 已传 floorIds 是否跳过策略表 | SQL 与此分支无冲突 | `callerProvidedFloors=true` 时不进入策略读取分支 | 一致 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 关键证据(摘录)
|
||||
|
||||
- 代码读取策略(启用、类型、租户默认)来自 `TenantVisitorFloorPolicyMapper.xml`。
|
||||
- 代码在 `PersonRuleServiceImpl#addVisitor` 中:
|
||||
- `!callerProvidedFloors` 才读取被访人楼层与租户策略;
|
||||
- `allow_zone_ids` 解析成功且非空才参与求交;
|
||||
- 求交为空返回 `76260532`;
|
||||
- 调用方已传楼层时不走策略求交流程。
|
||||
- 初始化脚本 `tenant_visitor_floor_policy_init_guangfa_fund.sql` 的字段取值与上述查询条件完全兼容。
|
||||
|
||||
---
|
||||
|
||||
## 4. 审核结论
|
||||
|
||||
**结论:通过。**
|
||||
发布规范涉及的 SQL 脚本内容与当前代码逻辑一致,满足 v2.0.7 发布包“数据库脚本 + 功能升级说明 + 实施交付依据”要求。
|
||||
|
||||
---
|
||||
|
||||
## 5. 风险提示与建议
|
||||
|
||||
1. **唯一性治理风险(中)**
|
||||
DDL 使用 `UNIQUE KEY (business_id, building_id)`,在 MySQL 下 `building_id=NULL` 可能存在多行;当前代码通过 `ORDER BY updated_at DESC, policy_version DESC LIMIT 1` 取最新一条,不阻断功能,但建议运维侧增加“每租户默认策略唯一”巡检。
|
||||
2. **配置数据质量风险(中)**
|
||||
`allow_zone_ids` 必须是电梯域 `zone_id` 字符串数组,若误填其它系统 UUID 会导致策略不生效或交集为空。
|
||||
|
||||
---
|
||||
|
||||
## 6. 签字确认
|
||||
|
||||
| 角色 | 姓名 | 日期 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 审核人 | `____________` | `____` | `____` |
|
||||
| 实施负责人 | `____________` | `____` | `____` |
|
||||
| 甲方确认(可选) | `____________` | `____` | `____` |
|
||||
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
# cw-elevator-application v2.0.7 升级计划
|
||||
|
||||
**项目名称**(可填):智慧电梯 / 访客派梯系统升级
|
||||
**版本**:v2.0.7
|
||||
**计划性质**:执行级排期草案,**具体日期、起止时刻以与甲方书面/邮件确认为准**。
|
||||
|
||||
---
|
||||
|
||||
## 1. 升级目标
|
||||
|
||||
完成电梯派梯应用 **v2.0.7** 上线,启用**租户访客固定访问楼层**能力所需的应用与数据库对象;按业务需要为指定租户配置策略并完成验收。
|
||||
|
||||
---
|
||||
|
||||
## 2. 计划时间窗口(夜间 · 暂定周二、周三)
|
||||
|
||||
| 窗口 | 意向安排 | 建议内容(可合并或调整) |
|
||||
|------|-----------|----------------------------|
|
||||
| **第一次:周二晚间** | 夜间低峰段,具体 **HH:MM–HH:MM** 待定 | 环境检查、数据库备份、执行 **DDL**(新建策略表)、(可选)预发布验证、必要时准备回滚包与检查单 |
|
||||
| **第二次:周三晚间** | 夜间低峰段,具体 **HH:MM–HH:MM** 待定 | 部署新版本 **JAR**、滚动/重启应用、按需 **INSERT** 租户策略数据、业务联调与验收、监控与值守 |
|
||||
|
||||
**说明**:
|
||||
|
||||
- 若贵方现场要求**一个晚上完成全部步骤**,可将 DDL 与部署**合并在同一晚间窗口**执行,本表仅体现「周二、周三两晚」的**当前意向拆分**,最终以确认单为准。
|
||||
- 两次窗口建议**间隔至少数小时至一个工作日**,便于第一次变更后观察库表与低风险项;若合并为单次窗口,须在计划单中注明**连续操作顺序与回滚点**。
|
||||
|
||||
**待确认栏**(实施时填写):
|
||||
|
||||
- 周二实施日期:`____年____月____日`,时段: `____ : ____` – `____ : ____`
|
||||
- 周三实施日期:`____年____月____日`,时段: `____ : ____` – `____ : ____`
|
||||
- 甲方现场联系人: `____________` 乙方/实施负责人: `____________`
|
||||
|
||||
---
|
||||
|
||||
## 3. 影响范围与沟通
|
||||
|
||||
| 项目 | 说明 |
|
||||
|------|------|
|
||||
| 影响系统 | 电梯派梯相关应用(`cw-elevator-application`)及同一业务库。 |
|
||||
| 用户感知 | 应用重启期间可能出现短时派梯接口失败;策略误配可能导致部分访客路径失败,需按验收清单核对。 |
|
||||
| 通知范围 | 建议提前通知:物业/客服、前台与访客登记、安保与梯控相关值班(按项目实际 roster 确定)。 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 前置条件(升级前)
|
||||
|
||||
- [ ] 已与甲方确认 **周二 / 周三** 夜间窗口。
|
||||
- [ ] 取得 **v2.0.7** 发布包(含 `jar`、`ddl/tenant_visitor_floor_policy.sql`、说明书)。
|
||||
- [ ] 目标环境 **JDK 版本**符合实施方要求(与构建说明一致,一般为 JDK 8)。
|
||||
- [ ] 数据库已做**备份**(全库或按运维规范),并可从发布包定位 DDL。
|
||||
- [ ] 明确需启用「固定访客楼层」的租户列表及**允许区域**配置(若不启用,可跳过策略数据录入,行为与升级前一致)。
|
||||
- [ ] 回滚包:保留**当前线上 JAR** 备份与回滚步骤(见下文)。
|
||||
|
||||
---
|
||||
|
||||
## 5. 实施步骤(建议顺序)
|
||||
|
||||
### 5.1 周二晚间(或首个窗口)
|
||||
|
||||
1. 备份数据库。
|
||||
2. 执行 `tenant_visitor_floor_policy.sql`(`CREATE TABLE IF NOT EXISTS`,可重复执行需与 DBA 确认)。
|
||||
3. (可选)在测试/预发环境先执行一遍并验证。
|
||||
4. 记录执行人、时间与结果。
|
||||
|
||||
### 5.2 周三晚间(或第二个窗口 / 同晚续作)
|
||||
|
||||
1. 停止或滚动发布应用(按现网规范)。
|
||||
2. 替换为 `cw-elevator-application-2.0.7.jar` 并启动。
|
||||
3. 按业务需求对需启用的租户执行策略 **INSERT**(`enabled=1`、`allow_zone_ids` 等为合法 JSON 等,字段级以技术说明书为准)。
|
||||
4. 抽样验证:未传显式楼层时的访客派梯、租户策略开/关、与组织楼层无交集时的失败提示等。
|
||||
5. 观察监控与日志,**值守**至约定结束时间。
|
||||
|
||||
*若合并为单次窗口:按「备份 → DDL → 部署 JAR → 策略数据 → 验收」顺序连续执行,并预留回滚决策时间。*
|
||||
|
||||
---
|
||||
|
||||
## 6. 验收要点(摘要)
|
||||
|
||||
- 未配置或未启用策略时:与升级前行为一致。
|
||||
- 已启用策略且业务走「未显式指定楼层」路径:访客可去楼层为**组织允许**与**租户允许**的**交集**。
|
||||
- 交集为空时:接口返回预期业务错误(技术码见实施方说明书)。
|
||||
- 第三方已显式传入楼层的路径:不因本策略表改变原逻辑。
|
||||
|
||||
---
|
||||
|
||||
## 7. 回滚预案
|
||||
|
||||
| 场景 | 建议动作 |
|
||||
|------|-----------|
|
||||
| 应用异常 | 回退至上一版本 JAR;数据库新表若已存在且旧应用不读该表,通常可继续服务;与实施方确认。 |
|
||||
| 策略配置错误 | 优先**停用或修正策略行**,避免大规模回滚应用。 |
|
||||
| 必须撤表 | 仅在评估无依赖后由 DBA 执行删表;**高风险**,需书面确认。 |
|
||||
|
||||
---
|
||||
|
||||
## 8. 交付物核对
|
||||
|
||||
- [ ] `cw-elevator-application-2.0.7.jar`
|
||||
- [ ] `ddl/tenant_visitor_floor_policy.sql`
|
||||
- [ ] 《版本升级说明书》(实施/技术)
|
||||
- [ ] 本《甲方版本升级说明》(如已作为对甲交付)
|
||||
- [ ] 本《升级计划》(双方确认签字/邮件留档)
|
||||
|
||||
---
|
||||
|
||||
**文档状态**:草案;**时间点为暂定周二、周三晚间**,正式实施前请更新「待确认栏」并留存确认记录。
|
||||
@@ -0,0 +1,32 @@
|
||||
# cw-elevator-application v2.0.7 发布索引
|
||||
|
||||
本版本**功能升级说明**已单独成文,**仅覆盖「租户访客固定访问楼层」**及配套数据库 DDL,见:
|
||||
|
||||
**[cw-elevator-application-v2.0.7-版本升级说明书](./cw-elevator-application-v2.0.7-版本升级说明书.md)**
|
||||
|
||||
**对甲交付(业务表述与排期)**:
|
||||
|
||||
- [甲方版本升级说明](./cw-elevator-application-v2.0.7-甲方版本升级说明.md)
|
||||
- [升级计划(含夜间 · 周二/周三窗口)](./cw-elevator-application-v2.0.7-升级计划.md)
|
||||
- [实施交付清单(实施方内部与对甲交付核对)](./cw-elevator-application-v2.0.7-实施交付清单.md)
|
||||
- [实施验收记录模板(上线当晚记录)](./cw-elevator-application-v2.0.7-实施验收记录模板.md)
|
||||
- [SQL与代码一致性审核记录(发布规范走查依据)](./cw-elevator-application-v2.0.7-SQL与代码一致性审核记录.md)
|
||||
|
||||
---
|
||||
|
||||
## 一键构建与发布目录
|
||||
|
||||
在仓库根目录、**JDK 8** 下执行:
|
||||
|
||||
```bash
|
||||
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
||||
./scripts/release-cw-elevator-application.sh 2.0.7
|
||||
```
|
||||
|
||||
输出:**`maven-cw-elevator-application/releases/cw-elevator-application-V2.0.7.<YYYYMMDD>/`**(目录名含构建日期,与 `cw-elevator-application-V1.0.0.20211103` 命名风格一致;可用环境变量 **`RELEASE_DATE_LABEL`** 指定日期),含 `cw-elevator-application-2.0.7.jar`、`ddl/`、发布根目录下的 `bootstrap.properties` / `application*.properties`(与星中心/V1 同层摆放,**无额外 `config/` 子目录**)、`start.sh` / `stop.sh` / `cw-elevator-application.service`(路径占位符需现场替换)、`run.sh`、`common-java.sh`、**`collect_elevator_runtime_evidence.sh`**(根目录,现场只读证据采集)、`版本升级说明书.md`、甲方与实施类 Markdown、`BUILD_MANIFEST.txt`;默认另生成 **`releases/cw-elevator-application-V2.0.7.<YYYYMMDD>.zip`**(设 `RELEASE_MAKE_ZIP=0` 可跳过)。
|
||||
|
||||
---
|
||||
|
||||
## Git 与大文件
|
||||
|
||||
`maven-cw-elevator-application/.gitignore` 忽略 `**releases/**/*.jar**`;**DDL 与说明书**可提交;可执行 JAR 请通过制品库或制品服务器分发。
|
||||
@@ -0,0 +1,60 @@
|
||||
# cw-elevator-application v2.0.7 实施交付清单
|
||||
|
||||
**用途**:用于正式发布交付前后的材料核对,满足“发布包 + 数据库脚本 + 升级说明 + 实施验收记录”闭环。
|
||||
|
||||
---
|
||||
|
||||
## 1. 发布包文件清单
|
||||
|
||||
- [ ] `cw-elevator-application-2.0.7.jar`
|
||||
- [ ] `ddl/tenant_visitor_floor_policy.sql`(建表脚本)
|
||||
- [ ] `ddl/tenant_visitor_floor_policy_init_guangfa_fund.sql`(广发基金初始化示例/可直接执行)
|
||||
- [ ] `版本升级说明书.md`(技术实施口径)
|
||||
- [ ] `甲方版本升级说明.md`(业务口径)
|
||||
- [ ] `升级计划.md`(实施窗口与回滚安排)
|
||||
- [ ] `实施验收记录模板.md`(上线当晚记录)
|
||||
- [ ] `BUILD_MANIFEST.txt`(构建时间、分支、提交号)
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据库变更交付项
|
||||
|
||||
- [ ] DBA 已确认目标库与执行窗口
|
||||
- [ ] 已备份目标库(全库/指定库按现场规范)
|
||||
- [ ] 已执行 `tenant_visitor_floor_policy.sql`
|
||||
- [ ] 已执行或评审 `tenant_visitor_floor_policy_init_guangfa_fund.sql`
|
||||
- [ ] 已确认 `allow_zone_ids` 使用的是电梯库 `zone_id`(非其它系统 UUID)
|
||||
- [ ] 已留存 SQL 执行记录(执行人、时间、结果)
|
||||
|
||||
---
|
||||
|
||||
## 3. 应用部署交付项
|
||||
|
||||
- [ ] 上线前已保存旧版 JAR 回滚包
|
||||
- [ ] 已按窗口替换为 `cw-elevator-application-2.0.7.jar`
|
||||
- [ ] 应用启动日志无严重报错
|
||||
- [ ] 关键接口健康检查通过(含 `add/visitor` 主链路)
|
||||
- [ ] 监控观察窗口内无持续异常
|
||||
|
||||
---
|
||||
|
||||
## 4. 验收交付项
|
||||
|
||||
- [ ] UC-01:未传 `floorIds` 且策略启用时,楼层为 `floorList ∩ allow_zone_ids`
|
||||
- [ ] UC-01:无交集时返回 `76260532`
|
||||
- [ ] UC-02:显式传 `floorIds` 时不受策略表影响
|
||||
- [ ] 未启用策略租户行为与升级前一致
|
||||
- [ ] 已按《实施验收记录模板》完成签字/邮件留档
|
||||
|
||||
---
|
||||
|
||||
## 5. 交付确认信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 实施项目 | cw-elevator-application v2.0.7 |
|
||||
| 实施日期 | `____年____月____日` |
|
||||
| 甲方确认人 | `____________` |
|
||||
| 乙方实施人 | `____________` |
|
||||
| 文档留存路径 | `____________` |
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# cw-elevator-application v2.0.7 实施验收记录模板
|
||||
|
||||
**用途**:实施当晚记录数据库执行、应用部署、业务验收和回滚判定,作为交付归档依据。
|
||||
|
||||
---
|
||||
|
||||
## 1. 基本信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 项目名称 | 智慧电梯 / 访客派梯系统 |
|
||||
| 发布版本 | v2.0.7 |
|
||||
| 实施日期 | `____年____月____日` |
|
||||
| 实施时段 | `____:____` - `____:____` |
|
||||
| 环境 | 生产 / 预生产(圈选) |
|
||||
| 实施负责人 | `____________` |
|
||||
| 甲方联系人 | `____________` |
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据库执行记录
|
||||
|
||||
| 序号 | 脚本 | 执行时间 | 执行人 | 结果 | 备注 |
|
||||
|------|------|----------|--------|------|------|
|
||||
| 1 | tenant_visitor_floor_policy.sql | `____` | `____` | 成功/失败 | `____` |
|
||||
| 2 | tenant_visitor_floor_policy_init_guangfa_fund.sql | `____` | `____` | 成功/失败 | `____` |
|
||||
|
||||
**异常记录**:`______________________________________________`
|
||||
|
||||
---
|
||||
|
||||
## 3. 应用发布记录
|
||||
|
||||
| 项目 | 记录 |
|
||||
|------|------|
|
||||
| 上线前版本 | `____________` |
|
||||
| 上线后版本 | `cw-elevator-application-2.0.7.jar` |
|
||||
| 启停方式 | `____________` |
|
||||
| 服务恢复时间 | `____________` |
|
||||
| 日志健康检查 | 通过 / 不通过 |
|
||||
| 监控观察结论 | 正常 / 异常(说明) |
|
||||
|
||||
---
|
||||
|
||||
## 4. 验收结果记录
|
||||
|
||||
| 用例 | 期望 | 实际 | 结论 |
|
||||
|------|------|------|------|
|
||||
| UC-01(未传 floorIds,策略启用) | floorList 与 allow_zone_ids 求交 | `____` | 通过/不通过 |
|
||||
| UC-01(交集为空) | 返回 `76260532` | `____` | 通过/不通过 |
|
||||
| UC-02(显式传 floorIds) | 不受策略表影响 | `____` | 通过/不通过 |
|
||||
| 无策略租户回归 | 行为与升级前一致 | `____` | 通过/不通过 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 回滚判定
|
||||
|
||||
- [ ] 无需回滚,发布成功
|
||||
- [ ] 需要回滚应用(原因:`________________`)
|
||||
- [ ] 需要回滚数据/策略(原因:`________________`)
|
||||
|
||||
回滚执行记录(如发生):`______________________________________________`
|
||||
|
||||
---
|
||||
|
||||
## 6. 签字确认
|
||||
|
||||
| 角色 | 姓名 | 日期 | 备注 |
|
||||
|------|------|------|------|
|
||||
| 甲方确认 | `____________` | `____` | `____` |
|
||||
| 乙方实施 | `____________` | `____` | `____` |
|
||||
| 乙方复核 | `____________` | `____` | `____` |
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
# cw-elevator-application v2.0.7 版本升级说明书
|
||||
|
||||
**适用范围**:本说明**仅**描述 **v2.0.7** 中与 **租户访客固定访问楼层**(租户级允许区域与组织 `floorList` 求交)相关的升级内容,不含其它性能优化或通用发布项。
|
||||
|
||||
**应用制品**:`cw-elevator-application-2.0.7.jar`(Spring Boot 可执行 fat JAR)。
|
||||
|
||||
---
|
||||
|
||||
## 1. 功能概述
|
||||
|
||||
在 **访客派梯** 接口 **`add/visitor`**(实现类 `PersonRuleServiceImpl#addVisitor`)中,当调用方 **未传入非空 `floorIds`**(业务流程 **UC-01**:按被访人组织侧楼层推导)时:
|
||||
|
||||
1. 服务仍先通过 **`person/detail`** 取得被访人 **`floorList`**(与升级前一致)。
|
||||
2. **新增**:若数据库中存在**启用**的租户策略行,且 **`allow_zone_ids`** 解析为非空 JSON 数组,则最终生效楼层为
|
||||
**`effectiveFloors = floorList ∩ allow_zone_ids`**(顺序保持 **`floorList`** 原有顺序)。
|
||||
3. 若交集 **为空**,接口返回失败码 **`76260532`**(不允许静默放宽到其它楼层)。
|
||||
4. 若无策略表、无启用行、`allow_zone_ids` 为空或 JSON 无效:行为与升级前一致,使用 **`floorList` 全集**。
|
||||
|
||||
当调用方 **已传入非空 `floorIds`**(**UC-02**,第三方显式指定楼层)时:**不读取**策略表,**不对入参求交**,与升级前一致。
|
||||
|
||||
> **产品表述**:「固定访问楼层」在本阶段由租户管理员通过 **`allow_zone_ids`** 声明**允许开放给访客派梯的区域(zoneId)集合**;在 UC-01 路径下与组织返回的 **`floorList`** 取交集,从而将访客权限**收敛**到既有「被访人可去楼层」与「租户允许楼层」的双重约束内。
|
||||
|
||||
---
|
||||
|
||||
## 2. 涉及的数据库变更
|
||||
|
||||
### 2.1 变更类型
|
||||
|
||||
| 类型 | 对象 |
|
||||
|------|------|
|
||||
| **新增表** | `tenant_visitor_floor_policy` |
|
||||
|
||||
**执行库**:与电梯应用 **同一数据源**(MySQL/InnoDB,与现有派梯业务库一致)。
|
||||
|
||||
### 2.2 表用途(摘要)
|
||||
|
||||
| 字段 | 含义 |
|
||||
|------|------|
|
||||
| `business_id` | 租户/机构 ID |
|
||||
| `policy_type` | 本阶段固定 **`INTERSECT_ALLOWLIST`** |
|
||||
| `allow_zone_ids` | **TEXT**,存 **JSON 数组**字符串,元素为允许访客派梯的 **zoneId** |
|
||||
| `building_id` | 租户级默认策略填 **NULL**(预留楼栋维) |
|
||||
| `enabled` | **1** 启用 / **0** 停用 |
|
||||
| `policy_version` | 配置版本号(审计) |
|
||||
|
||||
唯一约束 **`uk_biz_building (business_id, building_id)`**:同一租户、租户级策略(`building_id` 为空)**建议仅维护一行**,避免多行时查询仅命中「最新一条」与运维预期不符。
|
||||
|
||||
### 2.3 DDL 脚本位置
|
||||
|
||||
| 用途 | 仓库内路径 |
|
||||
|------|------------|
|
||||
| **权威 DDL** | `docs/sql/tenant_visitor_floor_policy.sql` |
|
||||
|
||||
**发布包内副本**:随 v2.0.7 发布目录一并下发,路径为 **`ddl/tenant_visitor_floor_policy.sql`**(与根目录 JAR 同级下的 `ddl` 子目录)。
|
||||
|
||||
脚本内容为 **`CREATE TABLE IF NOT EXISTS`**,在未建表环境可重复执行;**不含**业务数据 `INSERT`,上线需按租户配置自行 **`INSERT`** 策略行。
|
||||
|
||||
### 2.4 上线执行顺序(建议)
|
||||
|
||||
1. **备份**当前电梯应用库(至少包含待变更库的全库或相关表备份策略)。
|
||||
2. 在目标库执行 **`ddl/tenant_visitor_floor_policy.sql`**(或直接使用仓库 `docs/sql` 下同源文件)。
|
||||
3. 对需启用策略的租户 **`INSERT`** 一行(示例字段:`business_id`、`policy_type='INTERSECT_ALLOWLIST'`、`allow_zone_ids` 为合法 JSON 数组、`enabled=1`、`building_id` 为 **NULL**)。
|
||||
4. 部署 **`cw-elevator-application-2.0.7.jar`** 并滚动重启应用。
|
||||
5. 按 §4 做 **UC-01 / UC-02** 验收。
|
||||
|
||||
### 2.5 回滚说明
|
||||
|
||||
- **仅回滚应用**:还原旧版本 JAR 后,若库中**已存在**策略行且仍为 **enabled=1**,旧版本应用**通常不读取**该表,行为与历史一致;表结构可保留。
|
||||
- **回滚数据库**:若需删除表(谨慎),在确认无其它依赖后执行 **`DROP TABLE tenant_visitor_floor_policy`**;请在变更窗口与 DBA 确认。
|
||||
|
||||
---
|
||||
|
||||
## 3. 行为与错误码(验收)
|
||||
|
||||
| 场景 | `floorIds` | 策略库 | 期望 |
|
||||
|------|------------|--------|------|
|
||||
| UC-01 基线 | 空/未传 | 无启用行或 allow 空/无效 | 使用组织 **`floorList` 全集**(与升级前一致) |
|
||||
| UC-01 + 固定楼层 | 空/未传 | 有启用行且 allow 非空 | **`floorList ∩ allow`**(保序) |
|
||||
| 无交集 | 空/未传 | allow 与 `floorList` 无交集 | **`76260532`** |
|
||||
| 被访人无楼层 | 空/未传 | 任意 | **`76260531`** |
|
||||
| UC-02 | **非空** | 任意 | **不读策略表**,按请求楼层处理 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 发布包目录结构(v2.0.7)
|
||||
|
||||
执行仓库根目录 **`./scripts/release-cw-elevator-application.sh 2.0.7`** 后,输出目录为(名称含构建日期 `<YYYYMMDD>`,与历史运行包 **`cw-elevator-application-V1.0.0.20211103`** 同构;可用环境变量 **`RELEASE_DATE_LABEL`** 固定日期):
|
||||
|
||||
**`maven-cw-elevator-application/releases/cw-elevator-application-V2.0.7.<YYYYMMDD>/`**
|
||||
|
||||
| 文件/目录 | 说明 |
|
||||
|-----------|------|
|
||||
| `cw-elevator-application-2.0.7.jar` | 可执行应用 |
|
||||
| `bootstrap.properties`、`application*.properties` | 与 JAR 同层(**不**再使用 `config/` 子目录重复存放) |
|
||||
| `ddl/tenant_visitor_floor_policy.sql` | 与本功能相关的 **唯一 DDL**(与 `docs/sql` 同源) |
|
||||
| `版本升级说明书.md` | 本文件副本(便于随包交付) |
|
||||
| `BUILD_MANIFEST.txt` | 构建时间、JDK、`git` 修订号 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 参考文档(仓库内)
|
||||
|
||||
| 文档 | 路径 |
|
||||
|------|------|
|
||||
| 数据库阶段变更记录 | `docs/business/租户访客默认楼层-数据库阶段变更记录.md` |
|
||||
| 数据库配置阶段技术设计 | `docs/business/租户访客默认楼层-数据库配置阶段技术设计.md` |
|
||||
| 技术产品方案 | `docs/business/租户访客默认楼层技术产品方案.md` |
|
||||
| 访客注册与派梯楼层走查 | `docs/business/访客注册与派梯楼层业务流程走查.md` |
|
||||
|
||||
---
|
||||
|
||||
**文档版本**:与制品 **`cw-elevator-application-2.0.7`** 对齐;若仅升级文档而不改代码,请以 **`BUILD_MANIFEST.txt`** 中构建时间为准。
|
||||
@@ -0,0 +1,34 @@
|
||||
# 电梯派梯应用 v2.0.7 — 版本升级说明(广发基金)
|
||||
|
||||
**制品**:`cw-elevator-application-2.0.7.jar`。技术细节、验收码与脚本位置见同目录《版本升级说明书》。
|
||||
|
||||
---
|
||||
|
||||
## 本次升级做什么
|
||||
|
||||
针对**广发基金**租户:访客走常见派梯路径(接口**未单独传楼层**)时,系统在「被访人所在单位给的可去楼层」基础上,再按**广发基金侧配置的允许区域**做一次收紧,两边**都满足**的楼层才能派梯。这样可以把访客权限收在比如固定接待层,而员工本人仍可按组织权限去多层办公。
|
||||
|
||||
广发基金若**未配置或未启用**该策略,行为与现在一致。
|
||||
|
||||
---
|
||||
|
||||
## 上线要动什么
|
||||
|
||||
- 换新版应用包。
|
||||
- 库里**多一张策略表**(脚本在发布包 `ddl/` 下);表里为广发基金写入**一行**启用策略即可,允许区域(如接待层对应的 zone)由业务与实施定稿。
|
||||
|
||||
其它租户不配策略则**不受影响**。
|
||||
|
||||
---
|
||||
|
||||
## 对您这边的影响
|
||||
|
||||
- **时间**:安排在**夜间**,具体周二/周三窗口见《升级计划》。
|
||||
- **中断**:重启应用时派梯接口可能**短暂**不可用,一般会控制在很短时间。
|
||||
- **配合**:指定一个对接人;确认广发基金侧要开放的**访客可达区域/楼层**(与前台、接待流程对齐);上线后若有异常派梯请及时反馈。
|
||||
|
||||
---
|
||||
|
||||
## 出问题怎么办
|
||||
|
||||
应用可先退回上一版包;策略数据可单独改/停,不一定整库回滚。细则见《升级计划》。
|
||||
Reference in New Issue
Block a user