mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.) - frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts - scripts/: build, test-env, tools (Docker Compose, service templates, API parity) - docs/: AGENTS.md, superpowers specs, architecture docs - .gitignore: standard Java/Maven exclusions Moved from legacy maven-*/ root layout to backend/ organized structure.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
-- 租户访客楼层策略 — 仅用于组织服务库:component-organization
|
||||
-- 应用只连此库读取策略;与电梯库 cw-elevator-application 中同表结构对齐(org_id 粒度)。
|
||||
-- 执行:mysql ... component-organization < organization_tenant_visitor_floor_policy.sql
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tenant_visitor_floor_policy (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 历史字段;以 org_id 为准',
|
||||
org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID),租户默认策略必填',
|
||||
policy_type VARCHAR(32) NOT NULL DEFAULT 'INTERSECT_ALLOWLIST' COMMENT '策略类型(历史命名;语义为替代 allow_zone_ids)',
|
||||
allow_zone_ids TEXT NULL COMMENT 'JSON 数组,zoneId 列表',
|
||||
building_id VARCHAR(64) NULL COMMENT '预留:楼栋维度;租户默认填 NULL',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '1 启用 0 停用',
|
||||
policy_version BIGINT NOT NULL DEFAULT 1 COMMENT '配置版本号',
|
||||
remark VARCHAR(256) NULL,
|
||||
created_by VARCHAR(64) NULL,
|
||||
created_at BIGINT NULL,
|
||||
updated_by VARCHAR(64) NULL,
|
||||
updated_at BIGINT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_org_building (org_id, building_id),
|
||||
KEY idx_org_enabled (org_id, enabled),
|
||||
KEY idx_business_enabled (business_id, enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户访客楼层策略(组织库;detail/访客列表替代 floorList)';
|
||||
@@ -0,0 +1,202 @@
|
||||
-- 组织库 component-organization:广发基金 + 物业管理相关组织 — 访客楼层策略种子数据
|
||||
-- 表:tenant_visitor_floor_policy(须已执行 organization_tenant_visitor_floor_policy.sql)
|
||||
-- 语义:组织服务按 org_id 命中;allow_zone_ids 为替代用 zoneId 列表(与电梯库种子同源)。
|
||||
--
|
||||
-- 执行示例:
|
||||
-- mysql -h HOST -P PORT -u USER -p < organization_tenant_visitor_floor_policy_init_tenants.sql
|
||||
|
||||
USE `component-organization`;
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 广发基金:[28-38F]广发基金管理有限公司 → org_id 488b8ad049bb43408a6fbcc50bcb89ac
|
||||
-- allow:28F zone_id = 605560545117995008
|
||||
-- ---------------------------------------------------------------------------
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id,
|
||||
org_id,
|
||||
business_id,
|
||||
policy_type,
|
||||
allow_zone_ids,
|
||||
building_id,
|
||||
enabled,
|
||||
policy_version,
|
||||
remark,
|
||||
created_at,
|
||||
updated_at
|
||||
) VALUES (
|
||||
'gf_vstr_policy_guangfa_fund_001x',
|
||||
'488b8ad049bb43408a6fbcc50bcb89ac',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008"]',
|
||||
NULL,
|
||||
1,
|
||||
1,
|
||||
'广发基金:访客楼层策略(组织库);默认 28F。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
org_id = VALUES(org_id),
|
||||
business_id = VALUES(business_id),
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 物业管理公司(多组织节点):allow = 28F + 6F,便于前端 floorList 展示两档
|
||||
-- 28F zone_id = 605560545117995008;6F zone_id = 605560541473144832
|
||||
-- JSON 数组顺序:先 28 后 6(与「28+6」表述一致)
|
||||
-- org_id 来源:component-organization.cw_is_organization(与 docs/sql/tenant_visitor_floor_policy_init_property_mgmt_6f.sql 一致)
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_001',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'64fdc8eaf5824df5a1329819af29b79f',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物业管理有限公司:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_002',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'8fc3f910bd834198a539832017fe920e',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物业管理公司:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_003',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'cc760fdf9c384a0cbf4951ccf2c6452e',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物管公司:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_004',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'f216235e54ca42bfa0379e69b3754aff',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物业管理公司:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_005',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'95818575a2284db6833289474d33671f',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物业服务中心:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_006',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'348328d755624b3491cd307a3109f36a',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物管公司:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_007',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'dde6cc9a4f6b4f5490d03e26fb016200',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'物业管理总部:访客策略(组织库);28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
@@ -0,0 +1,27 @@
|
||||
-- 租户访客默认楼层策略(电梯应用库)
|
||||
-- 设计说明:docs/business/租户访客默认楼层-数据库配置阶段技术设计.md
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tenant_visitor_floor_policy (
|
||||
id VARCHAR(32) NOT NULL COMMENT '主键',
|
||||
business_id VARCHAR(64) NOT NULL COMMENT '机构/租户 ID',
|
||||
policy_type VARCHAR(32) NOT NULL DEFAULT 'INTERSECT_ALLOWLIST' COMMENT '策略类型',
|
||||
allow_zone_ids TEXT NULL COMMENT 'JSON 数组,zoneId 列表',
|
||||
building_id VARCHAR(64) NULL COMMENT '预留:楼栋维度;租户默认填 NULL',
|
||||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '1 启用 0 停用',
|
||||
policy_version BIGINT NOT NULL DEFAULT 1 COMMENT '配置版本号',
|
||||
remark VARCHAR(256) NULL,
|
||||
created_by VARCHAR(64) NULL,
|
||||
created_at BIGINT NULL,
|
||||
updated_by VARCHAR(64) NULL,
|
||||
updated_at BIGINT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_biz_building (business_id, building_id),
|
||||
KEY idx_business_enabled (business_id, enabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户访客默认楼层策略(与组织 floorList 求交)';
|
||||
|
||||
-- 示例(实施时替换占位符后执行)
|
||||
-- INSERT INTO tenant_visitor_floor_policy
|
||||
-- (id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, remark, created_at, updated_at)
|
||||
-- VALUES
|
||||
-- (REPLACE(UUID(),'-',''), 'REPLACE_WITH_BUSINESS_ID', 'INTERSECT_ALLOWLIST',
|
||||
-- '["REPLACE_ZONE_A","REPLACE_ZONE_B"]', NULL, 1, 1, '实施录入', UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000);
|
||||
@@ -0,0 +1,48 @@
|
||||
-- 广发基金租户:访客默认楼层策略初始化(电梯库 cw-elevator-application)
|
||||
-- 组织库 component-organization 同源种子:organization_tenant_visitor_floor_policy_init_tenants.sql
|
||||
--
|
||||
-- 字段说明:allow_zone_ids 为 JSON 数组,元素使用 code_elevator_area.zone_id(snowflake 格式),
|
||||
-- 与 PersonResult.floorList 和 image_rule_ref.zone_id 同一套 ID。
|
||||
--
|
||||
-- 数据来源(现场查询 192.168.3.12:3307):
|
||||
-- org_id:component-organization.cw_is_organization
|
||||
-- NAME='[28-38F]广发基金管理有限公司' -> ID = 488b8ad049bb43408a6fbcc50bcb89ac
|
||||
-- 28F zone_id:cw-elevator-application.code_elevator_area
|
||||
-- zone_id = 605560545117995008(zone_name=28F,code=0x1C)
|
||||
--
|
||||
-- 重复执行:使用固定 id + ON DUPLICATE KEY UPDATE,幂等。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id,
|
||||
org_id,
|
||||
business_id,
|
||||
policy_type,
|
||||
allow_zone_ids,
|
||||
building_id,
|
||||
enabled,
|
||||
policy_version,
|
||||
remark,
|
||||
created_at,
|
||||
updated_at
|
||||
) VALUES (
|
||||
'gf_vstr_policy_guangfa_fund_001x',
|
||||
'488b8ad049bb43408a6fbcc50bcb89ac',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008"]',
|
||||
NULL,
|
||||
1,
|
||||
1,
|
||||
'广发基金:访客与 floorList 求交后仅保留 allowlist(默认仅 28F zone)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
org_id = VALUES(org_id),
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
@@ -0,0 +1,186 @@
|
||||
-- 物业公司租户:访客默认楼层策略初始化(电梯库 cw-elevator-application)
|
||||
-- 组织库 component-organization 同源种子:organization_tenant_visitor_floor_policy_init_tenants.sql
|
||||
-- allow_zone_ids:28F + 6F(JSON 顺序先 28 后 6),便于前端展示;语义仍以组织侧替代 floorList 为准。
|
||||
--
|
||||
-- 数据来源(192.168.3.12:3307):
|
||||
-- org_id:component-organization.cw_is_organization
|
||||
-- 星河湾物业管理有限公司 → 64fdc8eaf5824df5a1329819af29b79f
|
||||
-- 星河湾物业管理公司 → 8fc3f910bd834198a539832017fe920e
|
||||
-- 星河湾物管公司 → cc760fdf9c384a0cbf4951ccf2c6452e
|
||||
-- 星中心物业管理公司 → f216235e54ca42bfa0379e69b3754aff
|
||||
-- 星中心物业服务中心 → 95818575a2284db6833289474d33671f
|
||||
-- 星中心物管公司 → 348328d755624b3491cd307a3109f36a
|
||||
-- 物业管理总部 → dde6cc9a4f6b4f5490d03e26fb016200
|
||||
-- 28F zone_id:605560545117995008;6F zone_id:605560541473144832(code_elevator_area)
|
||||
--
|
||||
-- 重复执行:使用固定 id + ON DUPLICATE KEY UPDATE。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- ============================================================
|
||||
-- 1. 星河湾物业管理有限公司
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_001',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'64fdc8eaf5824df5a1329819af29b79f',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物业管理有限公司:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ============================================================
|
||||
-- 2. 星河湾物业管理公司
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_002',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'8fc3f910bd834198a539832017fe920e',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物业管理公司:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ============================================================
|
||||
-- 3. 星河湾物管公司
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_003',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'cc760fdf9c384a0cbf4951ccf2c6452e',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星河湾物管公司:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ============================================================
|
||||
-- 4. 星中心物业管理公司
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_004',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'f216235e54ca42bfa0379e69b3754aff',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物业管理公司:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ============================================================
|
||||
-- 5. 星中心物业服务中心
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_005',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'95818575a2284db6833289474d33671f',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物业服务中心:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ============================================================
|
||||
-- 6. 星中心物管公司
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_006',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'348328d755624b3491cd307a3109f36a',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'星中心物管公司:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
|
||||
-- ============================================================
|
||||
-- 7. 物业管理总部
|
||||
-- ============================================================
|
||||
INSERT INTO tenant_visitor_floor_policy (
|
||||
id, business_id, org_id, policy_type, allow_zone_ids,
|
||||
building_id, enabled, policy_version, remark, created_at, updated_at
|
||||
) VALUES (
|
||||
'pm_6f_vstr_policy_007',
|
||||
'2524639890ba4f2cba9ba1a4eeaa4015',
|
||||
'dde6cc9a4f6b4f5490d03e26fb016200',
|
||||
'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560541473144832"]',
|
||||
NULL, 1, 1,
|
||||
'物业管理总部:访客默认 28F+6F(顺序:先 28 后 6,便于前端)。',
|
||||
UNIX_TIMESTAMP(NOW()) * 1000,
|
||||
UNIX_TIMESTAMP(NOW()) * 1000
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
policy_type = VALUES(policy_type),
|
||||
allow_zone_ids = VALUES(allow_zone_ids),
|
||||
enabled = VALUES(enabled),
|
||||
policy_version = policy_version + 1,
|
||||
remark = VALUES(remark),
|
||||
updated_at = VALUES(updated_at);
|
||||
@@ -0,0 +1,31 @@
|
||||
-- 租户访客楼层策略:business_id → org_id 数据迁移
|
||||
-- 前提:DDL(tenant_visitor_floor_policy_v2.sql)已执行
|
||||
-- 执行方式:人工确认 org_id 对应关系后逐行执行
|
||||
|
||||
-- 1. 列出所有公司级组织节点(在 component-organization 库执行,供确认)
|
||||
-- SELECT o.ID, o.NAME, o.PARENT_ID
|
||||
-- FROM `component-organization`.cw_is_organization o
|
||||
-- WHERE o.BUSINESS_ID = '2524639890ba4f2cba9ba1a4eeaa4015'
|
||||
-- AND o.IS_DEL = 0
|
||||
-- ORDER BY o.NAME;
|
||||
|
||||
USE cw-elevator-application;
|
||||
|
||||
-- 2. 为现有策略行填入 org_id(示例:广发基金)
|
||||
-- 请先确认 NAME 匹配正确,再执行
|
||||
-- UPDATE tenant_visitor_floor_policy
|
||||
-- SET org_id = '<广发基金的 org_id>',
|
||||
-- business_id = NULL
|
||||
-- WHERE id = 'gf_vstr_policy_guangfa_fund_001x';
|
||||
|
||||
-- 3. 为其他公司新增策略行(模板)
|
||||
-- INSERT INTO tenant_visitor_floor_policy
|
||||
-- (id, org_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, remark, created_at, updated_at)
|
||||
-- VALUES
|
||||
-- (REPLACE(UUID(),'-',''), '<公司 org_id>', 'INTERSECT_ALLOWLIST',
|
||||
-- '["<zone_id>"]', NULL, 1, 1, '', UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000);
|
||||
|
||||
-- 4. 验证迁移结果
|
||||
SELECT id, org_id, business_id, policy_type, allow_zone_ids, enabled
|
||||
FROM tenant_visitor_floor_policy
|
||||
ORDER BY org_id;
|
||||
@@ -0,0 +1,26 @@
|
||||
-- 租户访客楼层策略:org_id 粒度修复
|
||||
-- 执行顺序:先 DDL → 数据迁移 → 发应用包
|
||||
-- 回滚:DROP INDEX uk_org_building, DROP COLUMN org_id, ADD UNIQUE KEY uk_biz_building (business_id, building_id)
|
||||
|
||||
USE `cw-elevator-application`;
|
||||
|
||||
-- 1. 新增 org_id 列
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
ADD COLUMN org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)'
|
||||
AFTER business_id;
|
||||
|
||||
-- 2. 替换唯一约束(business_id → org_id)
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
DROP INDEX uk_biz_building,
|
||||
ADD UNIQUE KEY uk_org_building (org_id, building_id);
|
||||
|
||||
-- 3. 标记 business_id 为废弃
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
MODIFY COLUMN business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃,以 org_id 为准';
|
||||
|
||||
-- 验证
|
||||
SELECT COLUMN_NAME, COLUMN_KEY, COLUMN_COMMENT
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = 'cw-elevator-application'
|
||||
AND TABLE_NAME = 'tenant_visitor_floor_policy'
|
||||
ORDER BY ORDINAL_POSITION;
|
||||
Reference in New Issue
Block a user