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,428 @@
|
||||
mysql: [Warning] Using a password on the command line interface can be insecure.
|
||||
cw_is_device_image_store ID varchar NO PRI 主键
|
||||
cw_is_device_image_store DEVICE_ID varchar NO NULL MUL 设备Id
|
||||
cw_is_device_image_store IMAGE_STORE_ID varchar NO NULL 图库Id
|
||||
cw_is_device_image_store TYPE smallint NO NULL 设备图库变更类型(1:新增,2:删除)
|
||||
cw_is_device_image_store CREATE_TIME bigint YES NULL 创建时间 时间戳
|
||||
cw_is_device_image_store LAST_UPDATE_TIME bigint YES NULL 修改日期 时间戳
|
||||
cw_is_device_image_store FINISH_PULL_TIME bigint YES NULL 结束拉取时间 时间戳
|
||||
cw_is_device_image_store STATUS smallint NO 0 状态(0:未通知,1:已通知)
|
||||
cw_is_device_person ID varchar NO NULL PRI 主键
|
||||
cw_is_device_person DEVICE_ID varchar NO NULL MUL 设备ID
|
||||
cw_is_device_person PERSON_ID varchar NO NULL 人员ID
|
||||
cw_is_device_person TYPE smallint YES NULL 类型(0:正常,1:删除)
|
||||
cw_is_device_person CREATE_TIME bigint YES NULL 创建时间 时间戳
|
||||
cw_is_device_person LAST_UPDATE_TIME bigint YES NULL 修改日期 时间戳
|
||||
cw_is_device_person_sync_log ID varchar NO PRI
|
||||
cw_is_device_person_sync_log DEVICE_ID varchar NO NULL MUL 设备ID
|
||||
cw_is_device_person_sync_log IMAGE_STORE_ID varchar NO NULL MUL 图库ID
|
||||
cw_is_device_person_sync_log PERSON_ID varchar NO NULL 人员ID
|
||||
cw_is_device_person_sync_log GROUP_PERSON_REF_ID varchar NO NULL MUL 图库人员关联ID
|
||||
cw_is_device_person_sync_log IMAGE_ID varchar YES NULL 人脸ID
|
||||
cw_is_device_person_sync_log STATUS smallint YES 0 同步状态(0:设备未拉取,1:设备已拉取,2:设备上报成功,3:设备上报失败)
|
||||
cw_is_device_person_sync_log CODE varchar YES NULL 错误编码
|
||||
cw_is_device_person_sync_log ERROR_MESSAGE varchar YES NULL 失败原因
|
||||
cw_is_device_person_sync_log CREATE_TIME bigint YES NULL 创建时间 时间戳
|
||||
cw_is_device_person_sync_log LAST_UPDATE_TIME bigint YES NULL 修改日期 时间戳(新增/修改人员信息时更新)
|
||||
cw_is_device_person_sync_log COUNT smallint YES 0 计数器
|
||||
cw_is_device_person_sync_log LAST_PULL_TIME bigint YES NULL 最近拉取时间 时间戳
|
||||
cw_is_device_person_sync_log LAST_REPORT_TIME bigint YES NULL 最近上报时间 时间戳
|
||||
cw_is_device_person_sync_log UPDATE_INFO varchar YES NULL 处理信息
|
||||
cw_is_device_person_sync_log EXPIRY_BEGIN_DATE bigint YES NULL 人员有效期开始时间 时间戳
|
||||
cw_is_device_person_sync_log EXPIRY_END_DATE bigint YES NULL 人员有效期结束时间 时间戳
|
||||
cw_is_device_person_sync_log DEVICE_PERSON_REF_ID varchar NO NULL 设备-人员表主键
|
||||
cw_is_device_person_sync_log IS_DEL smallint YES 0 逻辑删除字段 0未删除 1删除
|
||||
cw_is_group_person_ref ID varchar NO NULL PRI
|
||||
cw_is_group_person_ref IMAGE_STORE_ID varchar YES NULL MUL 图库id
|
||||
cw_is_group_person_ref PERSON_ID varchar YES NULL MUL 人员id
|
||||
cw_is_group_person_ref EXPIRY_BEGIN_DATE decimal YES NULL 人员有效期开始时间 时间戳
|
||||
cw_is_group_person_ref EXPIRY_END_DATE decimal YES NULL 人员有效期结束时间 时间戳
|
||||
cw_is_group_person_ref STATUS smallint YES 0 MUL 人员有效状态 -1删除、0正常、1失效
|
||||
cw_is_group_person_ref CREATE_USER_ID varchar YES NULL
|
||||
cw_is_group_person_ref CREATE_TIME decimal YES NULL
|
||||
cw_is_group_person_ref LAST_UPDATE_USER_ID varchar YES NULL
|
||||
cw_is_group_person_ref LAST_UPDATE_TIME decimal YES NULL
|
||||
cw_is_group_person_ref IS_DEL smallint NO 0 MUL 逻辑删除字段 0未删除 1删除
|
||||
cw_is_group_person_ref GENDER smallint YES NULL 性别
|
||||
cw_is_group_person_ref AGE int YES NULL 年龄
|
||||
cw_is_group_person_ref GROUP_TIME bigint YES NULL 入库时间
|
||||
cw_is_group_person_ref GROUP_STATUS smallint YES NULL 0:未建模 1:建模中 2:建模完成 3:建模失败
|
||||
cw_is_group_person_ref ERROR_MESSAGE varchar YES NULL 建模失败时的失败原因
|
||||
cw_is_group_person_ref EXPIRY_BEGIN_DATE_STATUS smallint YES 0 人员有效开始时间状态(0:未处理 1:已处理)
|
||||
cw_is_group_person_ref EXPIRY_END_DATE_STATUS smallint YES 0 人员有效期结束时间状态(0:未处理 1:已处理)
|
||||
cw_is_group_person_ref VALID_DATE_CRON varchar YES NULL 多时间段cron表达式
|
||||
cw_is_image_store_associated_ref ID varchar NO NULL PRI 唯一标识
|
||||
cw_is_image_store_associated_ref IMAGE_STORE_ID varchar NO NULL MUL 图库id
|
||||
cw_is_image_store_associated_ref ASSOCIATED_OBJECT_ID varchar NO NULL 关联对象id
|
||||
cw_is_image_store_associated_ref ASSOCIATED_OBJECT_ID_TYPE int NO NULL 关联对象的类型,1:机构,2:标签,3:个人
|
||||
cw_is_image_store_associated_ref ASSOCIATED_ACTION int YES NULL 0:包含,1:排除
|
||||
cw_is_image_store_associated_ref EXPIRY_BEGIN_DATE decimal YES NULL 人员有效期开始时间 时间戳
|
||||
cw_is_image_store_associated_ref EXPIRY_END_DATE decimal YES NULL 人员有效期结束时间 时间戳
|
||||
cw_is_image_store_associated_ref CREATE_TIME decimal YES NULL
|
||||
cw_is_image_store_associated_ref CREATE_USER_ID varchar YES NULL
|
||||
cw_is_image_store_associated_ref LAST_UPDATE_TIME decimal YES NULL
|
||||
cw_is_image_store_associated_ref LAST_UPDATE_USER_ID varchar YES NULL
|
||||
cw_is_image_store_associated_ref VALID_DATE_CRON varchar YES NULL 多时间段cron表达式
|
||||
cw_is_label ID varchar NO NULL PRI 唯一标识
|
||||
cw_is_label NAME varchar YES NULL
|
||||
cw_is_label CODE varchar NO NULL 编码
|
||||
cw_is_label BUSINESS_ID varchar YES NULL business id
|
||||
cw_is_label IS_DEL smallint YES NULL 0未删,1已删
|
||||
cw_is_label ADD_TYPE smallint YES NULL 添加类型,0手动创建,1应用初始,2应用创建
|
||||
cw_is_label CREATE_USER_ID varchar YES NULL 创建者
|
||||
cw_is_label CREATE_TIME decimal YES NULL 创建时间
|
||||
cw_is_label LAST_UPDATE_USER_ID varchar YES NULL 最后更新者
|
||||
cw_is_label LAST_UPDATE_TIME decimal YES NULL 最后更新时间
|
||||
cw_is_organization ID varchar NO NULL PRI 唯一标识
|
||||
cw_is_organization NAME varchar YES NULL 机构名称
|
||||
cw_is_organization ORDER_BY int YES NULL 同级排序字段
|
||||
cw_is_organization PARENT_ID varchar YES NULL 上级机构id
|
||||
cw_is_organization BUSINESS_ID varchar YES NULL
|
||||
cw_is_organization TYPE_ID varchar YES NULL 机构类型ID
|
||||
cw_is_organization IS_DEL smallint YES NULL 是否删除,0没有删除,1被删除
|
||||
cw_is_organization CREATE_USER_ID varchar YES NULL 创建者
|
||||
cw_is_organization CREATE_TIME decimal YES NULL 创建时间
|
||||
cw_is_organization LAST_UPDATE_USER_ID varchar YES NULL 最后更新者
|
||||
cw_is_organization LAST_UPDATE_TIME decimal YES NULL 最后更新时间
|
||||
cw_is_organization EXT1 varchar YES NULL 扩展字段1
|
||||
cw_is_organization EXT2 varchar YES NULL 扩展字段2
|
||||
cw_is_organization EXT3 varchar YES NULL 扩展字段3
|
||||
cw_is_organization EXT4 varchar YES NULL 扩展字段4
|
||||
cw_is_organization EXT5 varchar YES NULL 扩展字段5
|
||||
cw_is_organization EXT6 varchar YES NULL 扩展字段6
|
||||
cw_is_organization EXT7 varchar YES NULL 扩展字段7
|
||||
cw_is_organization EXT8 varchar YES NULL 扩展字段8
|
||||
cw_is_organization EXT9 varchar YES NULL 扩展字段9
|
||||
cw_is_organization EXT10 varchar YES NULL 扩展字段10
|
||||
cw_is_organization EXT11 varchar YES NULL 扩展字段11
|
||||
cw_is_organization EXT12 varchar YES NULL 扩展字段12
|
||||
cw_is_organization EXT13 varchar YES NULL 扩展字段13
|
||||
cw_is_organization EXT14 varchar YES NULL 扩展字段14
|
||||
cw_is_organization EXT15 varchar YES NULL 扩展字段15
|
||||
cw_is_organization EXT16 varchar YES NULL 扩展字段16
|
||||
cw_is_organization EXT17 varchar YES NULL 扩展字段17
|
||||
cw_is_organization EXT18 varchar YES NULL 扩展字段18
|
||||
cw_is_organization EXT19 varchar YES NULL 扩展字段19
|
||||
cw_is_organization EXT20 varchar YES NULL 扩展字段20
|
||||
cw_is_organization EXT21 varchar YES NULL 扩展字段21
|
||||
cw_is_organization EXT22 varchar YES NULL 扩展字段22
|
||||
cw_is_organization EXT23 varchar YES NULL 扩展字段23
|
||||
cw_is_organization EXT24 varchar YES NULL 扩展字段24
|
||||
cw_is_organization EXT25 varchar YES NULL 扩展字段25
|
||||
cw_is_organization EXT26 varchar YES NULL 扩展字段26
|
||||
cw_is_organization EXT27 varchar YES NULL 扩展字段27
|
||||
cw_is_organization EXT28 varchar YES NULL 扩展字段28
|
||||
cw_is_organization EXT29 varchar YES NULL 扩展字段29
|
||||
cw_is_organization EXT30 varchar YES NULL 扩展字段30
|
||||
cw_is_organization IS_VALID int YES NULL 禁用启用,0=禁用,1=启用
|
||||
cw_is_organization_area_ref ID varchar NO NULL 主键ID
|
||||
cw_is_organization_area_ref ORG_ID varchar NO 机构ID
|
||||
cw_is_organization_area_ref AREA_ID varchar NO 区域ID
|
||||
cw_is_organization_area_ref REF_TYPE tinyint NO NULL 0所在区域 1派梯区域
|
||||
cw_is_organization_area_ref BUSINESS_ID varchar NO 企业ID
|
||||
cw_is_organization_area_ref CREATE_TIME bigint YES NULL 创建日期 时间戳
|
||||
cw_is_organization_area_ref CREATE_USER_ID varchar YES NULL 创建人ID
|
||||
cw_is_organization_area_ref LAST_UPDATE_TIME bigint YES NULL 修改日期 时间戳
|
||||
cw_is_organization_area_ref LAST_UPDATE_USER_ID varchar YES NULL 修改人员ID
|
||||
cw_is_organization_extend ID varchar NO
|
||||
cw_is_organization_extend ORGANIZATION_ID varchar NO
|
||||
cw_is_organization_extend BUSINESS_ID varchar NO NULL
|
||||
cw_is_organization_extend EMPLOYEE_NUMBER smallint NO 0
|
||||
cw_is_organization_extend ORG_CAR_NUMBER smallint NO 0
|
||||
cw_is_organization_extend EMPLOYEE_CAR_NUMBER smallint NO 0
|
||||
cw_is_organization_extend LEASEHOLD_BEGIN bigint YES NULL 起租日期
|
||||
cw_is_organization_extend LEASEHOLD_END bigint YES NULL 到租日期
|
||||
cw_is_organization_extend PAYMENT_STATE tinyint YES NULL
|
||||
cw_is_organization_extend CARPORT_NUM smallint NO 0 车位数量
|
||||
cw_is_organization_extend CREATE_USER_ID varchar YES
|
||||
cw_is_organization_extend CREATE_TIME bigint YES NULL
|
||||
cw_is_organization_extend LAST_UPDATE_USER_ID varchar YES
|
||||
cw_is_organization_extend LAST_UPDATE_TIME bigint YES NULL
|
||||
cw_is_organization_extend REMARK varchar YES
|
||||
cw_is_organization_extend_detail ID varchar NO
|
||||
cw_is_organization_extend_detail ORGANIZATION_ID varchar NO
|
||||
cw_is_organization_extend_detail BUSINESS_ID varchar NO NULL
|
||||
cw_is_organization_extend_detail UNIT_RENT decimal NO NULL
|
||||
cw_is_organization_extend_detail WATER_AMOUNT decimal NO NULL
|
||||
cw_is_organization_extend_detail ELECTRICITY_AMOUNT decimal NO NULL
|
||||
cw_is_organization_extend_detail PROPERTY_AMOUNT decimal NO NULL
|
||||
cw_is_organization_extend_detail BELONG_DATE bigint NO NULL
|
||||
cw_is_organization_extend_detail PAY_TIME bigint NO NULL
|
||||
cw_is_organization_extend_detail CREATE_USER_ID varchar NO
|
||||
cw_is_organization_extend_detail CREATE_TIME bigint NO NULL
|
||||
cw_is_organization_extend_detail LAST_UPDATE_USER_ID varchar NO
|
||||
cw_is_organization_extend_detail LAST_UPDATE_TIME bigint NO NULL
|
||||
cw_is_organization_extend_detail REMARK varchar NO
|
||||
cw_is_organization_image_store APPLICATION_ID varchar NO NULL PRI 设备主键
|
||||
cw_is_organization_image_store ORG_ID varchar NO NULL PRI 设备主键
|
||||
cw_is_organization_image_store IMAGE_STORE_ID varchar NO NULL PRI 图库主键
|
||||
cw_is_organization_type ID varchar NO NULL PRI 主键
|
||||
cw_is_organization_type BUSINESS_ID varchar YES NULL 企业ID
|
||||
cw_is_organization_type CODE varchar YES NULL 编号
|
||||
cw_is_organization_type NAME varchar YES NULL 名称
|
||||
cw_is_organization_type HAS_LOWER_LEVEL tinyint YES 0 是否可以有下级机构 0 不可以 1 可以
|
||||
cw_is_organization_type HAS_DEFAULT tinyint YES 0 是否是默认的 0 不是 1 是
|
||||
cw_is_organization_type STATUS tinyint YES 0 状态(0 有效 1 无效)默认为0
|
||||
cw_is_organization_type CREATE_USER_ID varchar YES NULL 创建人
|
||||
cw_is_organization_type CREATE_TIME decimal YES NULL 创建时间
|
||||
cw_is_organization_type LAST_UPDATE_USER_ID varchar YES NULL 更新人
|
||||
cw_is_organization_type LAST_UPDATE_TIME decimal YES NULL 更新时间
|
||||
cw_is_organization_type_properties ID varchar NO NULL PRI 主键
|
||||
cw_is_organization_type_properties BUSINESS_ID varchar YES NULL 企业ID
|
||||
cw_is_organization_type_properties ORGANIZATION_TYPE_ID varchar YES NULL 机构ID
|
||||
cw_is_organization_type_properties CODE varchar YES NULL 编号
|
||||
cw_is_organization_type_properties NAME varchar YES NULL 名称
|
||||
cw_is_organization_type_properties STATUS tinyint YES 0 (0 有效 1 无效)默认为0
|
||||
cw_is_organization_type_properties HAS_REQUIRED tinyint YES 0 是否必填 0 非必填 1 必填
|
||||
cw_is_organization_type_properties ORDER_NUM int YES NULL 序号
|
||||
cw_is_organization_type_properties CREATE_USER_ID varchar YES NULL 创建人
|
||||
cw_is_organization_type_properties CREATE_TIME decimal YES NULL 创建时间
|
||||
cw_is_organization_type_properties LAST_UPDATE_USER_ID varchar YES NULL 更新人
|
||||
cw_is_organization_type_properties LAST_UPDATE_TIME decimal YES NULL 更新时间
|
||||
cw_is_person ID varchar NO NULL PRI 主键ID
|
||||
cw_is_person BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
cw_is_person PERSON_CODE varchar YES NULL 人员CODE
|
||||
cw_is_person NAME varchar YES NULL MUL 姓名
|
||||
cw_is_person USER_NAME varchar YES NULL 用户名
|
||||
cw_is_person PHONE varchar YES NULL 联系电话
|
||||
cw_is_person STATUS smallint YES NULL 人员状态(0 有效 1 无效)默认为0
|
||||
cw_is_person EXPIRY_BEGIN_DATE decimal YES NULL 人员有效期开始时间 时间戳
|
||||
cw_is_person EXPIRY_END_DATE decimal YES NULL 人员有效期结束时间 时间戳
|
||||
cw_is_person SHOW_PICTURE varchar YES NULL 人员展示照
|
||||
cw_is_person COMPARE_PICTURE text YES NULL 人员比对照
|
||||
cw_is_person IS_DEL smallint YES NULL MUL 逻辑删除字段 0:未删除 1:已删除
|
||||
cw_is_person CREATE_TIME decimal YES NULL 创建日期 时间戳
|
||||
cw_is_person CREATE_USER_ID varchar YES NULL 创建人ID
|
||||
cw_is_person LAST_UPDATE_TIME decimal YES NULL 修改日期 时间戳
|
||||
cw_is_person LAST_UPDATE_USER_ID varchar YES NULL 修改人员ID
|
||||
cw_is_person EMAIL varchar YES NULL 邮箱
|
||||
cw_is_person IMAGE_ID varchar YES NULL MUL 识别照
|
||||
cw_is_person EXT1 varchar YES NULL 扩展字段1
|
||||
cw_is_person EXT2 varchar YES NULL 扩展字段2
|
||||
cw_is_person EXT3 varchar YES NULL 扩展字段3
|
||||
cw_is_person EXT4 varchar YES NULL 扩展字段4
|
||||
cw_is_person EXT5 varchar YES NULL 扩展字段5
|
||||
cw_is_person EXT6 varchar YES NULL 扩展字段6
|
||||
cw_is_person EXT7 varchar YES NULL 扩展字段7
|
||||
cw_is_person EXT8 varchar YES NULL 扩展字段8
|
||||
cw_is_person EXT9 varchar YES NULL 扩展字段9
|
||||
cw_is_person EXT10 varchar YES NULL 扩展字段10
|
||||
cw_is_person EXT11 varchar YES NULL 扩展字段11
|
||||
cw_is_person EXT12 varchar YES NULL 扩展字段12
|
||||
cw_is_person EXT13 varchar YES NULL 扩展字段13
|
||||
cw_is_person EXT14 varchar YES NULL 扩展字段14
|
||||
cw_is_person EXT15 varchar YES NULL 扩展字段15
|
||||
cw_is_person EXT16 varchar YES NULL 扩展字段16
|
||||
cw_is_person EXT17 varchar YES NULL 扩展字段17
|
||||
cw_is_person EXT18 varchar YES NULL 扩展字段18
|
||||
cw_is_person EXT19 varchar YES NULL 扩展字段19
|
||||
cw_is_person EXT20 varchar YES NULL 扩展字段20
|
||||
cw_is_person EXT21 varchar YES NULL 扩展字段21
|
||||
cw_is_person EXT22 varchar YES NULL 扩展字段22
|
||||
cw_is_person EXT23 varchar YES NULL 扩展字段23
|
||||
cw_is_person EXT24 varchar YES NULL 扩展字段24
|
||||
cw_is_person EXT25 varchar YES NULL 扩展字段25
|
||||
cw_is_person EXT26 varchar YES NULL 扩展字段26
|
||||
cw_is_person EXT27 varchar YES NULL 扩展字段27
|
||||
cw_is_person EXT28 varchar YES NULL 扩展字段28
|
||||
cw_is_person EXT29 varchar YES NULL 扩展字段29
|
||||
cw_is_person EXT30 varchar YES NULL 扩展字段30
|
||||
cw_is_person EXT31 varchar YES NULL 扩展字段31
|
||||
cw_is_person EXT32 varchar YES NULL 扩展字段32
|
||||
cw_is_person EXT33 varchar YES NULL 扩展字段33
|
||||
cw_is_person EXT34 varchar YES NULL 扩展字段34
|
||||
cw_is_person EXT35 varchar YES NULL 扩展字段35
|
||||
cw_is_person EXT36 varchar YES NULL 扩展字段36
|
||||
cw_is_person EXT37 varchar YES NULL 扩展字段37
|
||||
cw_is_person EXT38 varchar YES NULL 扩展字段38
|
||||
cw_is_person EXT39 varchar YES NULL 扩展字段39
|
||||
cw_is_person EXT40 varchar YES NULL 扩展字段40
|
||||
cw_is_person CREATE_SYS_ACCOUNT smallint NO 0 是否同步账号,1同步,0不同步
|
||||
cw_is_person SYS_ACCOUNT_ID varchar YES NULL 系统账号ID
|
||||
cw_is_person SOURCE smallint NO 1 人员来源 1页面管理 2抓拍
|
||||
cw_is_person RESERVE_INFO varchar YES NULL 保留信息
|
||||
cw_is_person WELCOME varchar YES NULL 欢迎语
|
||||
cw_is_person IC_CARD_NO varchar YES NULL IC卡号
|
||||
cw_is_person IC_CARD_TYPE varchar YES NULL IC卡类型
|
||||
cw_is_person DEFAULT_FLOOR varchar YES NULL 默认楼层id
|
||||
cw_is_person CHOOSE_FLOOR text YES NULL 选中的楼层
|
||||
cw_is_person_audit ID varchar NO NULL PRI 主键ID
|
||||
cw_is_person_audit BUSINESS_ID varchar NO NULL 企业ID
|
||||
cw_is_person_audit NAME varchar NO NULL 姓名
|
||||
cw_is_person_audit USER_NAME varchar YES NULL 用户名
|
||||
cw_is_person_audit PERSON_CODE varchar YES NULL 人员CODE
|
||||
cw_is_person_audit PHONE varchar YES NULL 联系电话
|
||||
cw_is_person_audit EMAIL varchar YES NULL 邮箱
|
||||
cw_is_person_audit IMAGE_ID varchar YES NULL 识别照
|
||||
cw_is_person_audit COMPARE_PICTURE varchar YES NULL 人员比对照
|
||||
cw_is_person_audit SHOW_PICTURE varchar YES NULL 人员展示照
|
||||
cw_is_person_audit ORGANIZATIONIDS text YES NULL 所属机构
|
||||
cw_is_person_audit ORGANIZATIONNAMES text YES NULL 所属机构名称
|
||||
cw_is_person_audit LABELIDS text YES NULL 所属标签
|
||||
cw_is_person_audit LABELNAMES text YES NULL 所属标签名称
|
||||
cw_is_person_audit CREATE_SYS_ACCOUNT tinyint YES 0 是否同步创建账号,0 不创建 1 创建
|
||||
cw_is_person_audit SYS_ACCOUNT_ID varchar YES NULL 系统账号ID
|
||||
cw_is_person_audit IC_CARD_NO varchar YES NULL IC卡号
|
||||
cw_is_person_audit IC_CARD_TYPE varchar YES NULL IC卡类型
|
||||
cw_is_person_audit SOURCE tinyint NO NULL 来源(1:页面;2:抓拍;3:设备;4:扫码)
|
||||
cw_is_person_audit DEVICE_CODE varchar YES NULL 注册设备编号
|
||||
cw_is_person_audit DEVICE_NAME varchar YES NULL 注册设备名称
|
||||
cw_is_person_audit WELCOME varchar YES NULL 欢迎语
|
||||
cw_is_person_audit RESERVE_INFO varchar YES NULL 备用字段
|
||||
cw_is_person_audit USER_PROPERTIES text YES NULL 用户填写字段
|
||||
cw_is_person_audit USER_PROPERTIES_NAME text YES NULL 用户填写字段名称
|
||||
cw_is_person_audit STATUS tinyint YES NULL 人员状态(0 有效 1 无效)默认为0
|
||||
cw_is_person_audit AUDIT_STATUS tinyint YES NULL 审核状态:0审核中,1审核通过,2审核失败
|
||||
cw_is_person_audit IS_DEL tinyint YES NULL 逻辑删除字段 0:未删除 1:已删除
|
||||
cw_is_person_audit CREATE_USER_ID varchar YES NULL 创建人ID
|
||||
cw_is_person_audit CREATE_TIME bigint YES NULL 创建日期 时间戳
|
||||
cw_is_person_audit LAST_UPDATE_USER_ID varchar YES NULL 修改人员ID
|
||||
cw_is_person_audit LAST_UPDATE_TIME bigint YES NULL 修改日期 时间戳
|
||||
cw_is_person_audit EXT1 varchar YES NULL 扩展字段1
|
||||
cw_is_person_audit EXT2 varchar YES NULL 扩展字段2
|
||||
cw_is_person_audit EXT3 varchar YES NULL 扩展字段3
|
||||
cw_is_person_audit EXT4 varchar YES NULL 扩展字段4
|
||||
cw_is_person_audit EXT5 varchar YES NULL 扩展字段5
|
||||
cw_is_person_audit EXT6 varchar YES NULL 扩展字段6
|
||||
cw_is_person_audit EXT7 varchar YES NULL 扩展字段7
|
||||
cw_is_person_audit EXT8 varchar YES NULL 扩展字段8
|
||||
cw_is_person_audit EXT9 varchar YES NULL 扩展字段9
|
||||
cw_is_person_audit EXT10 varchar YES NULL 扩展字段10
|
||||
cw_is_person_audit EXT11 varchar YES NULL 扩展字段11
|
||||
cw_is_person_audit EXT12 varchar YES NULL 扩展字段12
|
||||
cw_is_person_audit EXT13 varchar YES NULL 扩展字段13
|
||||
cw_is_person_audit EXT14 varchar YES NULL 扩展字段14
|
||||
cw_is_person_audit EXT15 varchar YES NULL 扩展字段15
|
||||
cw_is_person_audit EXT16 varchar YES NULL 扩展字段16
|
||||
cw_is_person_audit EXT17 varchar YES NULL 扩展字段17
|
||||
cw_is_person_audit EXT18 varchar YES NULL 扩展字段18
|
||||
cw_is_person_audit EXT19 varchar YES NULL 扩展字段19
|
||||
cw_is_person_audit EXT20 varchar YES NULL 扩展字段20
|
||||
cw_is_person_audit EXT21 varchar YES NULL 扩展字段21
|
||||
cw_is_person_audit EXT22 varchar YES NULL 扩展字段22
|
||||
cw_is_person_audit EXT23 varchar YES NULL 扩展字段23
|
||||
cw_is_person_audit EXT24 varchar YES NULL 扩展字段24
|
||||
cw_is_person_audit EXT25 varchar YES NULL 扩展字段25
|
||||
cw_is_person_audit EXT26 varchar YES NULL 扩展字段26
|
||||
cw_is_person_audit EXT27 varchar YES NULL 扩展字段27
|
||||
cw_is_person_audit EXT28 varchar YES NULL 扩展字段28
|
||||
cw_is_person_audit EXT29 varchar YES NULL 扩展字段29
|
||||
cw_is_person_audit EXT30 varchar YES NULL 扩展字段30
|
||||
cw_is_person_audit EXT31 varchar YES NULL 扩展字段31
|
||||
cw_is_person_audit EXT32 varchar YES NULL 扩展字段32
|
||||
cw_is_person_audit EXT33 varchar YES NULL 扩展字段33
|
||||
cw_is_person_audit EXT34 varchar YES NULL 扩展字段34
|
||||
cw_is_person_audit EXT35 varchar YES NULL 扩展字段35
|
||||
cw_is_person_audit EXT36 varchar YES NULL 扩展字段36
|
||||
cw_is_person_audit EXT37 varchar YES NULL 扩展字段37
|
||||
cw_is_person_audit EXT38 varchar YES NULL 扩展字段38
|
||||
cw_is_person_audit EXT39 varchar YES NULL 扩展字段39
|
||||
cw_is_person_audit EXT40 varchar YES NULL 扩展字段40
|
||||
cw_is_person_batch_detail ID varchar NO NULL PRI 主键ID
|
||||
cw_is_person_batch_detail BATCH_ID varchar NO NULL MUL 所属批次ID
|
||||
cw_is_person_batch_detail FILE_NAME varchar NO NULL 文件名称
|
||||
cw_is_person_batch_detail PERSON_NAME varchar YES NULL 人员姓名
|
||||
cw_is_person_batch_detail STATUS decimal NO NULL 状态(1 成功 2 失败)
|
||||
cw_is_person_batch_detail REMARK varchar YES NULL 描述信息
|
||||
cw_is_person_batch_detail CREATE_TIME decimal YES NULL 创建时间,时间戳
|
||||
cw_is_person_batch_detail CREATE_USER_ID varchar YES NULL 创建用户ID
|
||||
cw_is_person_batch_import ID varchar NO NULL 主键ID
|
||||
cw_is_person_batch_import BUSINESS_ID varchar YES NULL 企业ID
|
||||
cw_is_person_batch_import BATCH_NO varchar NO NULL 批次号
|
||||
cw_is_person_batch_import TYPE decimal NO NULL 导入类型(1.文件前端上传,2.服务器文件路径,3.服务器图片生成 )
|
||||
cw_is_person_batch_import FILE_NAME varchar NO NULL 文件名称
|
||||
cw_is_person_batch_import FILE_PATH varchar YES NULL 文件路径
|
||||
cw_is_person_batch_import FINISH_TIME decimal YES NULL 结束时间,时间戳
|
||||
cw_is_person_batch_import TOTAL_COUNT decimal YES NULL 总数
|
||||
cw_is_person_batch_import CURRENT_COUNT decimal YES NULL 当前已完成数
|
||||
cw_is_person_batch_import REMARK varchar YES NULL 描述信息
|
||||
cw_is_person_batch_import STATUS decimal NO NULL 状态(1.未开始,2.进行中,3.已完成,4.异常)
|
||||
cw_is_person_batch_import CREATE_TIME decimal YES NULL 创建时间,时间戳
|
||||
cw_is_person_batch_import CREATE_USER_ID varchar YES NULL 创建用户ID
|
||||
cw_is_person_batch_import OPERATION varchar YES NULL 操作类型(new 新增,update 更新)
|
||||
cw_is_person_batch_import LOGIN_NAME varchar YES NULL 登录名称
|
||||
cw_is_person_label_ref ID varchar NO NULL PRI 主键ID
|
||||
cw_is_person_label_ref PERSON_ID varchar NO NULL MUL 人员ID
|
||||
cw_is_person_label_ref LABEL_ID varchar NO NULL MUL 标签主键ID
|
||||
cw_is_person_label_ref CREATE_TIME decimal YES NULL 创建日期 时间戳
|
||||
cw_is_person_label_ref CREATE_USER_ID varchar YES NULL 创建人ID
|
||||
cw_is_person_label_ref LAST_UPDATE_TIME decimal YES NULL 修改日期 时间戳
|
||||
cw_is_person_label_ref LAST_UPDATE_USER_ID varchar YES NULL 修改人员ID
|
||||
cw_is_person_organization_ref ID varchar NO NULL PRI 主键ID
|
||||
cw_is_person_organization_ref PERSON_ID varchar NO NULL MUL 人员ID
|
||||
cw_is_person_organization_ref ORG_ID varchar NO NULL MUL 组织ID
|
||||
cw_is_person_organization_ref CREATE_TIME decimal YES NULL 创建日期 时间戳
|
||||
cw_is_person_organization_ref CREATE_USER_ID varchar YES NULL 创建人ID
|
||||
cw_is_person_organization_ref LAST_UPDATE_TIME decimal YES NULL 修改日期 时间戳
|
||||
cw_is_person_organization_ref LAST_UPDATE_USER_ID varchar YES NULL 修改人员ID
|
||||
cw_is_person_properties ID varchar NO NULL PRI 主键
|
||||
cw_is_person_properties BUSINESS_ID varchar YES NULL 企业ID
|
||||
cw_is_person_properties CODE varchar YES NULL 编号
|
||||
cw_is_person_properties NAME varchar YES NULL 名称
|
||||
cw_is_person_properties TYPE smallint YES NULL 输入类型 1 字符串 2 选择 3 时间 4 文件上传
|
||||
cw_is_person_properties STATUS tinyint YES 0 (0 有效 1 无效)默认为0
|
||||
cw_is_person_properties HAS_SYS_ACCOUNT tinyint YES 0 是否作为系统账号 0 不可以 1 可以
|
||||
cw_is_person_properties HAS_SYS_ACCOUNT_AVAILABLE tinyint YES 0 是否可以作为系统账号字段 0 不可以 1 可以
|
||||
cw_is_person_properties HAS_REQUIRED tinyint YES 0 是否必填 0 不要必填 1 必填
|
||||
cw_is_person_properties HAS_DEFAULT tinyint YES 0 是否默认 0 不默认 1 默认
|
||||
cw_is_person_properties ORDER_NUM int YES NULL 序号
|
||||
cw_is_person_properties REMINDER varchar YES NULL 提示语
|
||||
cw_is_person_properties CREATE_USER_ID varchar YES NULL 创建人
|
||||
cw_is_person_properties CREATE_TIME bigint YES NULL 创建时间
|
||||
cw_is_person_properties LAST_UPDATE_USER_ID varchar YES NULL 更新人
|
||||
cw_is_person_properties LAST_UPDATE_TIME bigint YES NULL 更新时间
|
||||
cw_is_person_properties ARRAY_DATA varchar YES NULL 如果类型是2,补充填写下拉列表,用逗号分隔
|
||||
cw_is_person_properties HAS_MULTIPLE tinyint YES NULL 如果类型是2,补充填写是否多选 0 单选 1 复选
|
||||
cw_is_person_properties_switch ID varchar NO NULL PRI 主键
|
||||
cw_is_person_properties_switch BUSINESS_ID varchar YES NULL 企业ID
|
||||
cw_is_person_properties_switch SWITCH_PARAM tinyint YES NULL 开启注册照优化
|
||||
cw_is_person_properties_switch SIZE_PARAM int YES NULL 尺寸:1-1存,2-2存
|
||||
cw_is_person_properties_switch SHAPE_PARAM tinyint YES NULL 形态变化
|
||||
cw_is_person_properties_switch STATUS tinyint YES 0 (0 有效 1 无效)默认为0
|
||||
cw_is_person_properties_switch SKIN_COLOR_PARAM tinyint YES NULL 肤色整体优化
|
||||
cw_is_person_properties_switch CREATE_USER_ID varchar YES NULL 创建人
|
||||
cw_is_person_properties_switch CREATE_TIME bigint YES NULL 创建时间
|
||||
cw_is_person_properties_switch LAST_UPDATE_USER_ID varchar YES NULL 更新人
|
||||
cw_is_person_properties_switch LAST_UPDATE_TIME bigint YES NULL 更新时间
|
||||
cw_is_person_properties_switch DEFECTS_PARAM tinyint YES NULL 瑕疵优化
|
||||
cw_is_person_properties_switch BACKGROUND_PARAM tinyint YES NULL 换背景
|
||||
cw_is_person_properties_switch BACKGROUND_OBJECT int YES NULL 换背景底色:3-白色,4-蓝色,2-红色
|
||||
cw_is_person_registry ID varchar NO PRI 主键ID
|
||||
cw_is_person_registry BUSINESS_ID varchar NO 租户ID
|
||||
cw_is_person_registry STATUS tinyint NO 1 开启设备注册(0 关闭 1 开启) 默认为1
|
||||
cw_is_person_registry DEVICE_STATUS tinyint NO 0 设备注册审核(0 关闭 1 开启) 默认为0
|
||||
cw_is_person_registry CODE_STATUS tinyint NO 1 扫码注册审核(0 关闭 1 开启) 默认为1
|
||||
cw_is_person_registry ORGANIZATION_IDS varchar YES 注册默认组织ID列表(用英文逗号分隔)
|
||||
cw_is_person_registry LABEL_IDS varchar YES 注册默认标签ID列表(用英文逗号分隔)
|
||||
cw_is_person_registry CREATE_TIME decimal YES NULL 创建日期 时间戳
|
||||
cw_is_person_registry CREATE_USER_ID varchar YES 创建人ID
|
||||
cw_is_person_registry LAST_UPDATE_TIME decimal YES NULL 修改日期 时间戳
|
||||
cw_is_person_registry LAST_UPDATE_USER_ID varchar YES 修改人员ID
|
||||
cw_is_person_registry TYPE tinyint NO 0 注册类型(0:自助注册 1:人证注册) 默认为0
|
||||
cw_is_person_registry_device ID varchar NO PRI 主键ID
|
||||
cw_is_person_registry_device REGISTRY_ID varchar NO MUL 注册配置主键
|
||||
cw_is_person_registry_device DEVICE_CODE varchar NO 设备编码
|
||||
cw_is_person_registry_properties ID varchar NO PRI 主键ID
|
||||
cw_is_person_registry_properties REGISTRY_ID varchar NO MUL 注册配置主键
|
||||
cw_is_person_registry_properties PERSON_PROPERTY_ID varchar NO 人员属性表主键
|
||||
cw_is_person_registry_properties BIND_PROPERTY_CODE varchar YES NULL 与人员属性关联的属性
|
||||
cw_operation_log ID varchar NO NULL PRI 唯一标识
|
||||
cw_operation_log BUSINESS_ID varchar YES NULL business id
|
||||
cw_operation_log CREATE_USER_ID varchar YES NULL 创建者
|
||||
cw_operation_log CREATE_USER_NAME varchar YES NULL 创建者名称
|
||||
cw_operation_log CREATE_TIME decimal YES NULL 创建时间
|
||||
cw_operation_log INTERFACE_NAME varchar YES NULL 接口名称
|
||||
cw_operation_log CONTENT text YES NULL 请求报文
|
||||
cw_operation_log MODULE varchar YES NULL 模块
|
||||
cw_operation_log CALL_IP varchar YES NULL 来源ip
|
||||
cw_task_job_everytime_details ID varchar YES NULL
|
||||
cw_task_job_everytime_details JOB_NAME varchar YES NULL
|
||||
cw_task_job_everytime_details JOB_STATUS decimal YES NULL
|
||||
cw_task_job_everytime_details START_TIME decimal YES NULL
|
||||
cw_task_job_everytime_details END_TIME decimal YES NULL
|
||||
cw_task_job_everytime_details IP_ADDRESS varchar YES NULL
|
||||
cw_task_job_everytime_details MAC_ADDRESS varchar YES NULL
|
||||
org_floor org_id varchar NO NULL 机构id
|
||||
org_floor zone_id varchar YES NULL 楼层id
|
||||
org_floor is_all smallint NO NULL 是否全部查询:0-是,1-不是
|
||||
org_floor zone_name varchar YES NULL 楼层名
|
||||
|
@@ -0,0 +1,171 @@
|
||||
mysql: [Warning] Using a password on the command line interface can be insecure.
|
||||
cw_is_device_image_store PRIMARY ID 0 1
|
||||
cw_is_device_image_store UNIQUE_KEY DEVICE_ID 0 1
|
||||
cw_is_device_image_store UNIQUE_KEY IMAGE_STORE_ID 0 2
|
||||
cw_is_device_person PRIMARY ID 0 1
|
||||
cw_is_device_person UNIQUE_KEY DEVICE_ID 0 1
|
||||
cw_is_device_person UNIQUE_KEY PERSON_ID 0 2
|
||||
cw_is_device_person_sync_log IDX_DEVICE_STATUS DEVICE_ID 1 1
|
||||
cw_is_device_person_sync_log IDX_DEVICE_STATUS GROUP_PERSON_REF_ID 1 2
|
||||
cw_is_device_person_sync_log IDX_DEVICE_STATUS STATUS 1 3
|
||||
cw_is_device_person_sync_log IDX_DEVICE_STATUS LAST_REPORT_TIME 1 4
|
||||
cw_is_device_person_sync_log IDX_DEVICE_STATUS LAST_PULL_TIME 1 5
|
||||
cw_is_device_person_sync_log IDX_DEVICE_STATUS LAST_UPDATE_TIME 1 6
|
||||
cw_is_device_person_sync_log idx_dev_ps_syn_log_imgstroe_id_person_id IMAGE_STORE_ID 1 1
|
||||
cw_is_device_person_sync_log idx_dev_ps_syn_log_imgstroe_id_person_id PERSON_ID 1 2
|
||||
cw_is_device_person_sync_log IDX_GROUP_PERSON_REF GROUP_PERSON_REF_ID 1 1
|
||||
cw_is_device_person_sync_log IDX_IMAGESTORE_STATUS IMAGE_STORE_ID 1 1
|
||||
cw_is_device_person_sync_log IDX_IMAGESTORE_STATUS STATUS 1 2
|
||||
cw_is_device_person_sync_log IDX_PERSON_UPDATE DEVICE_ID 1 1
|
||||
cw_is_device_person_sync_log IDX_PERSON_UPDATE IMAGE_STORE_ID 1 2
|
||||
cw_is_device_person_sync_log IDX_PERSON_UPDATE LAST_UPDATE_TIME 1 3
|
||||
cw_is_device_person_sync_log IDX_PERSON_UPDATE PERSON_ID 1 4
|
||||
cw_is_device_person_sync_log PRIMARY ID 0 1
|
||||
cw_is_device_person_sync_log UNIQUE_KEY DEVICE_ID 0 1
|
||||
cw_is_device_person_sync_log UNIQUE_KEY IMAGE_STORE_ID 0 2
|
||||
cw_is_device_person_sync_log UNIQUE_KEY PERSON_ID 0 3
|
||||
cw_is_group_person_ref IDX_IGPR_PEROSN_COUNT2 IMAGE_STORE_ID 1 1
|
||||
cw_is_group_person_ref IDX_IGPR_PEROSN_COUNT2 STATUS 1 2
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON IMAGE_STORE_ID 1 1
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON PERSON_ID 1 2
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON_1 PERSON_ID 1 1
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON_COUNT IS_DEL 1 1
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON_COUNT IMAGE_STORE_ID 1 2
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON_UPDATE IMAGE_STORE_ID 1 1
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON_UPDATE LAST_UPDATE_TIME 1 2
|
||||
cw_is_group_person_ref IDX_IGPR_PERSON_UPDATE PERSON_ID 1 3
|
||||
cw_is_group_person_ref IDX_IGPR_STATUS_TIME STATUS 1 1
|
||||
cw_is_group_person_ref IDX_IGPR_STATUS_TIME LAST_UPDATE_TIME 1 2
|
||||
cw_is_group_person_ref PRIMARY ID 0 1
|
||||
cw_is_image_store_associated_ref IDX_IMAGE_STORE_ASSOCIATED IMAGE_STORE_ID 1 1
|
||||
cw_is_image_store_associated_ref IDX_IMAGE_STORE_ASSOCIATED ASSOCIATED_OBJECT_ID 1 2
|
||||
cw_is_image_store_associated_ref IDX_IMAGE_STORE_ASSOCIATED ASSOCIATED_ACTION 1 3
|
||||
cw_is_image_store_associated_ref PRIMARY ID 0 1
|
||||
cw_is_label PRIMARY ID 0 1
|
||||
cw_is_organization PRIMARY ID 0 1
|
||||
cw_is_organization_image_store PRIMARY APPLICATION_ID 0 1
|
||||
cw_is_organization_image_store PRIMARY ORG_ID 0 2
|
||||
cw_is_organization_image_store PRIMARY IMAGE_STORE_ID 0 3
|
||||
cw_is_organization_type PRIMARY ID 0 1
|
||||
cw_is_organization_type_properties PRIMARY ID 0 1
|
||||
cw_is_person IDX_CW_IS_PERSON_EMAIL BUSINESS_ID 1 1
|
||||
cw_is_person IDX_CW_IS_PERSON_EMAIL EMAIL 1 2
|
||||
cw_is_person IDX_CW_IS_PERSON_PERSON_CODE BUSINESS_ID 1 1
|
||||
cw_is_person IDX_CW_IS_PERSON_PERSON_CODE PERSON_CODE 1 2
|
||||
cw_is_person IDX_CW_IS_PERSON_PHONE BUSINESS_ID 1 1
|
||||
cw_is_person IDX_CW_IS_PERSON_PHONE PHONE 1 2
|
||||
cw_is_person IDX_CW_IS_PERSON_USER_NAME BUSINESS_ID 1 1
|
||||
cw_is_person IDX_CW_IS_PERSON_USER_NAME USER_NAME 1 2
|
||||
cw_is_person idx_imageId IMAGE_ID 1 1
|
||||
cw_is_person IDX_IP_PAGE IS_DEL 1 1
|
||||
cw_is_person IDX_IP_PAGE BUSINESS_ID 1 2
|
||||
cw_is_person IDX_IP_PAGE LAST_UPDATE_TIME 1 3
|
||||
cw_is_person IDX_IP_PAGE ID 1 4
|
||||
cw_is_person IDX_IP_PAGE SOURCE 1 5
|
||||
cw_is_person idx_is_person ID 0 1
|
||||
cw_is_person IDX_IS_PERSON_NAME NAME 1 1
|
||||
cw_is_person PRIMARY ID 0 1
|
||||
cw_is_person_audit PRIMARY ID 0 1
|
||||
cw_is_person_batch_detail IDX_CEBD_PAGE BATCH_ID 1 1
|
||||
cw_is_person_batch_detail IDX_CEBD_PAGE CREATE_TIME 1 2
|
||||
cw_is_person_batch_detail PRIMARY ID 0 1
|
||||
cw_is_person_label_ref IDX_LABEL LABEL_ID 1 1
|
||||
cw_is_person_label_ref IDX_PERSON PERSON_ID 1 1
|
||||
cw_is_person_label_ref idx_pl_personid PERSON_ID 1 1
|
||||
cw_is_person_label_ref PRIMARY ID 0 1
|
||||
cw_is_person_organization_ref IDX_ORG ORG_ID 1 1
|
||||
cw_is_person_organization_ref IDX_PERSON PERSON_ID 1 1
|
||||
cw_is_person_organization_ref idx_po_person_id PERSON_ID 1 1
|
||||
cw_is_person_organization_ref PRIMARY ID 0 1
|
||||
cw_is_person_properties PRIMARY ID 0 1
|
||||
cw_is_person_properties_switch PRIMARY ID 0 1
|
||||
cw_is_person_registry PRIMARY ID 0 1
|
||||
cw_is_person_registry_device PRIMARY ID 0 1
|
||||
cw_is_person_registry_device UNIQUE_KEY REGISTRY_ID 0 1
|
||||
cw_is_person_registry_device UNIQUE_KEY DEVICE_CODE 0 2
|
||||
cw_is_person_registry_properties PRIMARY ID 0 1
|
||||
cw_is_person_registry_properties UNIQUE_KEY REGISTRY_ID 0 1
|
||||
cw_is_person_registry_properties UNIQUE_KEY PERSON_PROPERTY_ID 0 2
|
||||
cw_operation_log PRIMARY ID 0 1
|
||||
qrtz_blob_triggers PRIMARY SCHED_NAME 0 1
|
||||
qrtz_blob_triggers PRIMARY TRIGGER_NAME 0 2
|
||||
qrtz_blob_triggers PRIMARY TRIGGER_GROUP 0 3
|
||||
qrtz_calendars PRIMARY SCHED_NAME 0 1
|
||||
qrtz_calendars PRIMARY CALENDAR_NAME 0 2
|
||||
qrtz_cron_triggers PRIMARY SCHED_NAME 0 1
|
||||
qrtz_cron_triggers PRIMARY TRIGGER_NAME 0 2
|
||||
qrtz_cron_triggers PRIMARY TRIGGER_GROUP 0 3
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_INST_JOB_REQ_RCVRY INSTANCE_NAME 1 1
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_INST_JOB_REQ_RCVRY SCHED_NAME 1 2
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_INST_JOB_REQ_RCVRY REQUESTS_RECOVERY 1 3
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_JG SCHED_NAME 1 1
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_JG JOB_GROUP 1 2
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_J_G JOB_NAME 1 1
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_J_G SCHED_NAME 1 2
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_J_G JOB_GROUP 1 3
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_TG SCHED_NAME 1 1
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_TG TRIGGER_GROUP 1 2
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_TRIG_INST_NAME SCHED_NAME 1 1
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_TRIG_INST_NAME INSTANCE_NAME 1 2
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_T_G SCHED_NAME 1 1
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_T_G TRIGGER_NAME 1 2
|
||||
qrtz_fired_triggers IDX_QRTZ_FT_T_G TRIGGER_GROUP 1 3
|
||||
qrtz_fired_triggers PRIMARY SCHED_NAME 0 1
|
||||
qrtz_fired_triggers PRIMARY ENTRY_ID 0 2
|
||||
qrtz_job_details IDX_QRTZ_J_GRP SCHED_NAME 1 1
|
||||
qrtz_job_details IDX_QRTZ_J_GRP JOB_GROUP 1 2
|
||||
qrtz_job_details IDX_QRTZ_J_REQ_RECOVERY SCHED_NAME 1 1
|
||||
qrtz_job_details IDX_QRTZ_J_REQ_RECOVERY REQUESTS_RECOVERY 1 2
|
||||
qrtz_job_details PRIMARY SCHED_NAME 0 1
|
||||
qrtz_job_details PRIMARY JOB_NAME 0 2
|
||||
qrtz_job_details PRIMARY JOB_GROUP 0 3
|
||||
qrtz_locks PRIMARY SCHED_NAME 0 1
|
||||
qrtz_locks PRIMARY LOCK_NAME 0 2
|
||||
qrtz_paused_trigger_grps PRIMARY SCHED_NAME 0 1
|
||||
qrtz_paused_trigger_grps PRIMARY TRIGGER_GROUP 0 2
|
||||
qrtz_scheduler_state PRIMARY SCHED_NAME 0 1
|
||||
qrtz_scheduler_state PRIMARY INSTANCE_NAME 0 2
|
||||
qrtz_simple_triggers PRIMARY SCHED_NAME 0 1
|
||||
qrtz_simple_triggers PRIMARY TRIGGER_NAME 0 2
|
||||
qrtz_simple_triggers PRIMARY TRIGGER_GROUP 0 3
|
||||
qrtz_simprop_triggers PRIMARY SCHED_NAME 0 1
|
||||
qrtz_simprop_triggers PRIMARY TRIGGER_NAME 0 2
|
||||
qrtz_simprop_triggers PRIMARY TRIGGER_GROUP 0 3
|
||||
qrtz_triggers IDX_QRTZ_T_C CALENDAR_NAME 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_C SCHED_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_G TRIGGER_GROUP 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_G SCHED_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_JG JOB_GROUP 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_JG SCHED_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_NEXT_FIRE_TIME NEXT_FIRE_TIME 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_NEXT_FIRE_TIME SCHED_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_MISFIRE SCHED_NAME 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_MISFIRE MISFIRE_INSTR 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_MISFIRE NEXT_FIRE_TIME 1 3
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST NEXT_FIRE_TIME 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST SCHED_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST TRIGGER_STATE 1 3
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE NEXT_FIRE_TIME 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE TRIGGER_STATE 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE MISFIRE_INSTR 1 3
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE SCHED_NAME 1 4
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE_GRP TRIGGER_GROUP 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE_GRP SCHED_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE_GRP MISFIRE_INSTR 1 3
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE_GRP NEXT_FIRE_TIME 1 4
|
||||
qrtz_triggers IDX_QRTZ_T_NFT_ST_MISFIRE_GRP TRIGGER_STATE 1 5
|
||||
qrtz_triggers IDX_QRTZ_T_N_G_STATE SCHED_NAME 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_N_G_STATE TRIGGER_STATE 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_N_G_STATE TRIGGER_GROUP 1 3
|
||||
qrtz_triggers IDX_QRTZ_T_N_STATE TRIGGER_STATE 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_N_STATE TRIGGER_NAME 1 2
|
||||
qrtz_triggers IDX_QRTZ_T_N_STATE SCHED_NAME 1 3
|
||||
qrtz_triggers IDX_QRTZ_T_N_STATE TRIGGER_GROUP 1 4
|
||||
qrtz_triggers IDX_QRTZ_T_STATE TRIGGER_STATE 1 1
|
||||
qrtz_triggers IDX_QRTZ_T_STATE SCHED_NAME 1 2
|
||||
qrtz_triggers PRIMARY SCHED_NAME 0 1
|
||||
qrtz_triggers PRIMARY TRIGGER_NAME 0 2
|
||||
qrtz_triggers PRIMARY TRIGGER_GROUP 0 3
|
||||
qrtz_triggers SYS_C0012788 SCHED_NAME 1 1
|
||||
qrtz_triggers SYS_C0012788 JOB_NAME 1 2
|
||||
qrtz_triggers SYS_C0012788 JOB_GROUP 1 3
|
||||
|
@@ -0,0 +1,49 @@
|
||||
=== cw_is_organization ===
|
||||
+----------------------------------+-----------+----------+----------------------------------+----------------------------------+----------------------------------+--------+----------------------------------+---------------+----------------------------------+------------------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+----------+
|
||||
| ID | NAME | ORDER_BY | PARENT_ID | BUSINESS_ID | TYPE_ID | IS_DEL | CREATE_USER_ID | CREATE_TIME | LAST_UPDATE_USER_ID | LAST_UPDATE_TIME | EXT1 | EXT2 | EXT3 | EXT4 | EXT5 | EXT6 | EXT7 | EXT8 | EXT9 | EXT10 | EXT11 | EXT12 | EXT13 | EXT14 | EXT15 | EXT16 | EXT17 | EXT18 | EXT19 | EXT20 | EXT21 | EXT22 | EXT23 | EXT24 | EXT25 | EXT26 | EXT27 | EXT28 | EXT29 | EXT30 | IS_VALID |
|
||||
+----------------------------------+-----------+----------+----------------------------------+----------------------------------+----------------------------------+--------+----------------------------------+---------------+----------------------------------+------------------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+----------+
|
||||
| fdeda9005dfa427da6bff924762917b7 | 617 | NULL | 99e9c6a09f534c0185e32664eb126be4 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 0 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | 1756690761453 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | 1756690761453 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 |
|
||||
| fd478ee4ffa240519657ff12b3d48726 | 基建部 | NULL | eef0a610fa9e4720a20c58aef2f229e3 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 0 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | 1701681239890 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | 1701681239890 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 |
|
||||
| fca1dd090e5d49eca3ee190bca014ca0 | 行政部 | NULL | a1d422625add4403b4e889a503cb2b12 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 1 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | 1690849497428 | 896fc73df1f2408886081ee8ab65bc21 | 1764814211814 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 |
|
||||
+----------------------------------+-----------+----------+----------------------------------+----------------------------------+----------------------------------+--------+----------------------------------+---------------+----------------------------------+------------------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+----------+
|
||||
=== cw_is_person ===
|
||||
+--------------------+----------------------------------+-------------+-----------+--------------------+-------------+--------+-------------------+-----------------+--------------+---------------------------------+--------+---------------+----------------------------------+------------------+----------------------------------+-------+---------------------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------------------+----------------+--------+--------------+---------+------------+--------------+---------------+--------------+
|
||||
| ID | BUSINESS_ID | PERSON_CODE | NAME | USER_NAME | PHONE | STATUS | EXPIRY_BEGIN_DATE | EXPIRY_END_DATE | SHOW_PICTURE | COMPARE_PICTURE | IS_DEL | CREATE_TIME | CREATE_USER_ID | LAST_UPDATE_TIME | LAST_UPDATE_USER_ID | EMAIL | IMAGE_ID | EXT1 | EXT2 | EXT3 | EXT4 | EXT5 | EXT6 | EXT7 | EXT8 | EXT9 | EXT10 | EXT11 | EXT12 | EXT13 | EXT14 | EXT15 | EXT16 | EXT17 | EXT18 | EXT19 | EXT20 | EXT21 | EXT22 | EXT23 | EXT24 | EXT25 | EXT26 | EXT27 | EXT28 | EXT29 | EXT30 | EXT31 | EXT32 | EXT33 | EXT34 | EXT35 | EXT36 | EXT37 | EXT38 | EXT39 | EXT40 | CREATE_SYS_ACCOUNT | SYS_ACCOUNT_ID | SOURCE | RESERVE_INFO | WELCOME | IC_CARD_NO | IC_CARD_TYPE | DEFAULT_FLOOR | CHOOSE_FLOOR |
|
||||
+--------------------+----------------------------------+-------------+-----------+--------------------+-------------+--------+-------------------+-----------------+--------------+---------------------------------+--------+---------------+----------------------------------+------------------+----------------------------------+-------+---------------------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------------------+----------------+--------+--------------+---------+------------+--------------+---------------+--------------+
|
||||
| 999998332677980160 | 2524639890ba4f2cba9ba1a4eeaa4015 | NULL | 蔡先生 | 999998333437149184 | 13929533370 | 0 | 1753154040000 | 1753183800000 | NULL | NULL | 1 | 1753154181778 | 6d1c78ee127b4883a4d4f914d344ce51 | 1753203600727 | 6d1c78ee127b4883a4d4f914d344ce51 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 0 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | NULL |
|
||||
| 999998240135180288 | 2524639890ba4f2cba9ba1a4eeaa4015 | NULL | 赫俊国 | 999998240101314560 | 13903615836 | 0 | 1753113600091 | 1753199999091 | NULL | aiot_default_999998240013242368 | 1 | 1753154159628 | default | 1753203600727 | default | NULL | 1947495814782308352 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 0 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | NULL |
|
||||
| 999997066723823616 | 2524639890ba4f2cba9ba1a4eeaa4015 | NULL | 黄贵明 | 999997066707169280 | 15920966886 | 0 | 1753113600128 | 1753199999128 | NULL | aiot_default_999997066593828864 | 1 | 1753153879843 | default | 1753203600727 | default | NULL | 1947494641274499072 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 0 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | NULL |
|
||||
+--------------------+----------------------------------+-------------+-----------+--------------------+-------------+--------+-------------------+-----------------+--------------+---------------------------------+--------+---------------+----------------------------------+------------------+----------------------------------+-------+---------------------+------+------+------+------+------+------+------+------+------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------------------+----------------+--------+--------------+---------+------------+--------------+---------------+--------------+
|
||||
=== cw_is_person_organization_ref ===
|
||||
+----------------------------------+---------------------+----------------------------------+---------------+----------------------------------+------------------+---------------------+
|
||||
| ID | PERSON_ID | ORG_ID | CREATE_TIME | CREATE_USER_ID | LAST_UPDATE_TIME | LAST_UPDATE_USER_ID |
|
||||
+----------------------------------+---------------------+----------------------------------+---------------+----------------------------------+------------------+---------------------+
|
||||
| fffe7b4d5ce9427ea8703d9d568306c2 | 956535134721798144 | f5d90d608d1042c487bf18af58345d5c | 1742791747779 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | NULL | NULL |
|
||||
| fff80f46206942ecaa123365e5475f66 | 1069265515460378624 | 488b8ad049bb43408a6fbcc50bcb89ac | 1769668764966 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | NULL | NULL |
|
||||
| fff4a8bdc90442749a8f463e5f07ebd3 | 822522654509887488 | e7c6ad5429434ec7b8c159d44e126579 | 1711008815845 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | NULL | NULL |
|
||||
+----------------------------------+---------------------+----------------------------------+---------------+----------------------------------+------------------+---------------------+
|
||||
=== cw_is_person_label_ref ===
|
||||
+----------------------------------+--------------------+----------------------------------+---------------+----------------------------------+------------------+---------------------+
|
||||
| ID | PERSON_ID | LABEL_ID | CREATE_TIME | CREATE_USER_ID | LAST_UPDATE_TIME | LAST_UPDATE_USER_ID |
|
||||
+----------------------------------+--------------------+----------------------------------+---------------+----------------------------------+------------------+---------------------+
|
||||
| ffea4b3636f0472cbc0104150371704a | 653604973099094016 | 7f1c603976294e06b3852eec9c2ca838 | 1761890229717 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | NULL | NULL |
|
||||
| ffe60133fbee47e2b477b068a0169148 | 721670500450914304 | fe77c039dcbe40178192af1f6e1c3ab9 | 1756688047289 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | NULL | NULL |
|
||||
| ffd8b3622a6846adb8c7193077e54d8f | 721662116968370176 | 834996aeb28d4ebe9695fe3757255d39 | 1757141790248 | 9ac7fc11589e4b32b5eff0b9019f1ef5 | NULL | NULL |
|
||||
+----------------------------------+--------------------+----------------------------------+---------------+----------------------------------+------------------+---------------------+
|
||||
=== cw_is_label ===
|
||||
+----------------------------------+--------------------------------------+----------------+----------------------------------+--------+----------+----------------------------------+---------------+----------------------------------+------------------+
|
||||
| ID | NAME | CODE | BUSINESS_ID | IS_DEL | ADD_TYPE | CREATE_USER_ID | CREATE_TIME | LAST_UPDATE_USER_ID | LAST_UPDATE_TIME |
|
||||
+----------------------------------+--------------------------------------+----------------+----------------------------------+--------+----------+----------------------------------+---------------+----------------------------------+------------------+
|
||||
| ffe50ecad80d4d53bb71f51f64399213 | 星中心物业人力资源_20251217 | 20251217627982 | 2524639890ba4f2cba9ba1a4eeaa4015 | 1 | 0 | e6fadb2224c948a69f51e85f3395e861 | 1765943025351 | e6fadb2224c948a69f51e85f3395e861 | 1766459862306 |
|
||||
| fe77c039dcbe40178192af1f6e1c3ab9 | 低区通用权限 | 20240112301168 | 2524639890ba4f2cba9ba1a4eeaa4015 | 0 | 0 | 4712af264f1f4ce28cb4e6b6e2d0834b | 1705039784273 | 4712af264f1f4ce28cb4e6b6e2d0834b | 1705039784273 |
|
||||
| fe1c3b305c1a41448289faaed06bc3d0 | VIP电梯厅-高区 | 20240121715379 | 2524639890ba4f2cba9ba1a4eeaa4015 | 0 | 0 | 4712af264f1f4ce28cb4e6b6e2d0834b | 1705824562257 | 4712af264f1f4ce28cb4e6b6e2d0834b | 1705824562257 |
|
||||
+----------------------------------+--------------------------------------+----------------+----------------------------------+--------+----------+----------------------------------+---------------+----------------------------------+------------------+
|
||||
=== org_floor ===
|
||||
+----------------------------------+---------+--------+-----------+
|
||||
| org_id | zone_id | is_all | zone_name |
|
||||
+----------------------------------+---------+--------+-----------+
|
||||
| f216235e54ca42bfa0379e69b3754aff | 1 | 0 | 1 |
|
||||
| 8fc3f910bd834198a539832017fe920e | 1 | 0 | 1 |
|
||||
| 3f591e6b4cb640b7b77978d27f47bd4b | 1 | 0 | 1 |
|
||||
+----------------------------------+---------+--------+-----------+
|
||||
=== cw_is_organization_area_ref ===
|
||||
@@ -0,0 +1,39 @@
|
||||
mysql: [Warning] Using a password on the command line interface can be insecure.
|
||||
cw_is_device_image_store 8493 InnoDB
|
||||
cw_is_device_person 6091835 InnoDB
|
||||
cw_is_device_person_sync_log 1195561 InnoDB
|
||||
cw_is_group_person_ref 194105 InnoDB
|
||||
cw_is_image_store_associated_ref 18148 InnoDB 图库和机构,标签,个人的关联关系表
|
||||
cw_is_label 353 InnoDB
|
||||
cw_is_organization 642 InnoDB
|
||||
cw_is_organization_area_ref 0 InnoDB 机构派梯楼层关联表
|
||||
cw_is_organization_extend 0 InnoDB
|
||||
cw_is_organization_extend_detail 0 InnoDB
|
||||
cw_is_organization_image_store 0 InnoDB
|
||||
cw_is_organization_type 9 InnoDB 图库机构类型表
|
||||
cw_is_organization_type_properties 71 InnoDB 图库机构类型属性表
|
||||
cw_is_person 43278 InnoDB 人员信息表
|
||||
cw_is_person_audit 0 InnoDB
|
||||
cw_is_person_batch_detail 1231 InnoDB 人员导入明细表
|
||||
cw_is_person_batch_import 38 InnoDB 人员导入任务表
|
||||
cw_is_person_label_ref 5676 InnoDB 人员标签关联表
|
||||
cw_is_person_organization_ref 10098 InnoDB 人员组织关联表
|
||||
cw_is_person_properties 30 InnoDB 人员属性表
|
||||
cw_is_person_properties_switch 0 InnoDB 人员属性注册照优化参数表
|
||||
cw_is_person_registry 0 InnoDB
|
||||
cw_is_person_registry_device 0 InnoDB
|
||||
cw_is_person_registry_properties 0 InnoDB
|
||||
cw_operation_log 1257 InnoDB 操作日志
|
||||
cw_task_job_everytime_details 12000 InnoDB
|
||||
org_floor 12 InnoDB 机构楼层对应表
|
||||
qrtz_blob_triggers 0 InnoDB
|
||||
qrtz_calendars 0 InnoDB
|
||||
qrtz_cron_triggers 8 InnoDB
|
||||
qrtz_fired_triggers 2 InnoDB
|
||||
qrtz_job_details 9 InnoDB
|
||||
qrtz_locks 2 InnoDB
|
||||
qrtz_paused_trigger_grps 0 InnoDB
|
||||
qrtz_scheduler_state 3 InnoDB
|
||||
qrtz_simple_triggers 86 InnoDB
|
||||
qrtz_simprop_triggers 0 InnoDB
|
||||
qrtz_triggers 94 InnoDB
|
||||
|
@@ -0,0 +1,919 @@
|
||||
mysql: [Warning] Using a password on the command line interface can be insecure.
|
||||
code_elevator_area zone_id varchar NO NULL 电梯编码
|
||||
code_elevator_area code varchar NO NULL 地区编码
|
||||
code_elevator_area create_time bigint YES NULL
|
||||
code_elevator_area last_update_time bigint YES NULL
|
||||
code_elevator_area is_first tinyint YES NULL 是否首层:0-不是,1-是
|
||||
code_elevator_area parent_id varchar YES NULL 父级id
|
||||
device_image_store building_id varchar NO NULL 楼栋id
|
||||
device_image_store image_store_id varchar NO NULL 图库id
|
||||
elevator_device ID bigint NO NULL PRI auto_increment 主键id
|
||||
elevator_device create_time bigint NO NULL 创建时间
|
||||
elevator_device last_update_time bigint NO NULL 最近修改时间
|
||||
elevator_device delete_flag tinyint NO 0 是否删除(0,删除;1,未删除)
|
||||
elevator_device device_id varchar YES NULL 设备id
|
||||
elevator_device device_name varchar NO NULL 设备名称
|
||||
elevator_device device_code varchar YES NULL 设备编码
|
||||
elevator_device device_type_name varchar NO NULL 设备类型名称
|
||||
elevator_device status tinyint YES NULL 设备状态(1:禁用,2:在线,3:离线)
|
||||
elevator_device area_name varchar YES NULL 空间位置
|
||||
elevator_device current_building_id varchar YES NULL 楼栋id
|
||||
elevator_device current_building varchar YES NULL 当前楼栋
|
||||
elevator_device current_floor_id varchar YES NULL 楼层id
|
||||
elevator_device current_floor varchar YES NULL 当前楼层
|
||||
elevator_device elevator_floor_list varchar YES NULL 派梯楼层(,隔开)
|
||||
elevator_device elevator_floor_id_list varchar YES NULL 派梯楼层ID(,隔开)
|
||||
elevator_device business_id varchar NO NULL 租户id
|
||||
elevator_device area_id varchar YES NULL 地区编码
|
||||
image_rule_ref id varchar NO NULL PRI 唯一标识
|
||||
image_rule_ref zone_id varchar NO NULL 楼层id
|
||||
image_rule_ref zone_name varchar YES NULL 楼层名
|
||||
image_rule_ref name varchar YES NULL 规则名
|
||||
image_rule_ref person_id varchar YES NULL 人员id
|
||||
image_rule_ref include_labels varchar YES NULL MUL 人员包含的标签
|
||||
image_rule_ref include_organizations varchar YES NULL MUL 人员所在的机构
|
||||
image_rule_ref exclude_labels varchar YES NULL 排除的人员标签
|
||||
image_rule_ref is_default tinyint YES 0 是否默认规则:0-不是,1-是
|
||||
image_rule_ref start_time bigint YES NULL 开始时间
|
||||
image_rule_ref end_time bigint YES NULL 结束时间
|
||||
image_rule_ref create_time bigint YES NULL 创建时间
|
||||
image_rule_ref last_update_time bigint YES NULL 最近修改时间
|
||||
image_rule_ref business_id varchar YES NULL 企业id
|
||||
image_rule_ref parent_rule varchar YES NULL 归属规则id
|
||||
image_rule_ref person_delete tinyint YES 0 人员是否删除了:0-未删除,1-已删除
|
||||
it_acs_device_task id varchar NO NULL PRI 任务id
|
||||
it_acs_device_task ALL_DEVICES int NO NULL 需要处理设备总数
|
||||
it_acs_device_task BIND_DEVICES int NO NULL 已处理设备数
|
||||
it_acs_device_task IS_STOP int NO NULL 是否终止:0-执行,1-终止
|
||||
it_acs_elevator_record ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2020 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2020 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2020 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2020 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2020 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2020 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2020 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2020 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2020 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2020 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2020 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2020 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2020 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2020 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2020 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2020 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2020 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2020 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2020 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2020 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2020 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2020 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2020 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2020 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2020 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2020 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2020 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2020 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2020 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2020 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2020 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2021 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2021 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2021 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2021 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2021 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2021 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2021 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2021 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2021 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2021 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2021 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2021 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2021 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2021 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2021 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2021 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2021 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2021 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2021 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2021 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2021 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2021 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2021 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2021 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2021 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2021 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2021 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2021 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2021 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2021 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2021 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2022 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2022 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2022 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2022 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2022 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2022 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2022 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2022 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2022 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2022 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2022 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2022 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2022 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2022 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2022 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2022 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2022 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2022 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2022 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2022 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2022 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2022 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2022 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2022 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2022 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2022 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2022 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2022 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2022 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2022 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2022 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2023 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2023 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_elevator_record_2023 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2023 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2023 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2023 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2023 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2023 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2023 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2023 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2023 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2023 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2023 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2023 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2023 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2023 RECOGNITION_TIME bigint NO NULL MUL 识别时间
|
||||
it_acs_elevator_record_2023 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2023 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2023 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2023 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2023 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2023 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2023 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2023 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2023 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2023 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2023 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2023 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2023 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2023 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2023 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2024 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2024 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2024 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2024 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2024 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2024 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2024 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2024 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2024 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2024 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2024 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2024 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2024 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2024 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2024 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2024 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2024 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2024 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2024 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2024 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2024 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2024 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2024 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2024 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2024 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2024 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2024 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2024 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2024 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2024 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2024 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2025 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2025 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2025 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2025 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2025 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2025 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2025 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2025 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2025 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2025 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2025 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2025 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2025 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2025 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2025 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2025 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2025 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2025 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2025 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2025 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2025 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2025 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2025 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2025 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2025 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2025 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2025 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2025 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2025 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2025 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2025 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2026 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2026 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2026 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2026 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2026 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2026 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2026 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2026 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2026 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2026 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2026 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2026 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2026 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2026 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2026 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2026 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2026 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2026 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2026 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2026 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2026 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2026 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2026 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2026 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2026 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2026 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2026 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2026 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2026 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2026 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2026 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2027 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2027 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2027 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2027 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2027 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2027 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2027 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2027 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2027 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2027 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2027 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2027 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2027 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2027 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2027 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2027 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2027 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2027 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2027 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2027 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2027 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2027 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2027 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2027 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2027 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2027 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2027 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2027 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2027 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2027 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2027 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2028 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2028 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2028 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2028 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2028 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2028 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2028 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2028 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2028 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2028 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2028 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2028 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2028 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2028 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2028 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2028 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2028 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2028 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2028 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2028 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2028 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2028 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2028 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2028 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2028 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2028 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2028 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2028 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2028 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2028 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2028 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2029 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2029 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2029 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2029 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2029 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2029 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2029 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2029 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2029 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2029 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2029 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2029 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2029 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2029 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2029 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2029 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2029 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2029 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2029 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2029 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2029 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2029 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2029 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2029 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2029 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2029 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2029 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2029 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2029 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2029 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2029 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_elevator_record_2030 ID varchar NO NULL PRI 主键
|
||||
it_acs_elevator_record_2030 BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_elevator_record_2030 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_elevator_record_2030 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_elevator_record_2030 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_elevator_record_2030 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_elevator_record_2030 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_elevator_record_2030 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_elevator_record_2030 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_elevator_record_2030 OPEN_DOOR_TYPE varchar NO NULL 开门方式
|
||||
it_acs_elevator_record_2030 OPERATE_NAME varchar YES NULL 操作人员名称
|
||||
it_acs_elevator_record_2030 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_elevator_record_2030 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_elevator_record_2030 RECORD_RESULT tinyint YES 1 开门结果 1:成功 2:失败
|
||||
it_acs_elevator_record_2030 RECOGNITION_NO varchar YES NULL 识别编号
|
||||
it_acs_elevator_record_2030 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_elevator_record_2030 LOG_ID varchar YES NULL 请求唯一标志码
|
||||
it_acs_elevator_record_2030 RECOGNITION_FACE_ID varchar YES NULL MUL 识别记录唯一标志码
|
||||
it_acs_elevator_record_2030 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_elevator_record_2030 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_elevator_record_2030 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_elevator_record_2030 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_elevator_record_2030 SRC_FLOOR varchar YES NULL 进梯(当前)楼层
|
||||
it_acs_elevator_record_2030 DEST_FLOOR varchar YES NULL 选层楼层
|
||||
it_acs_elevator_record_2030 DISPATCH_ELEVATOR_NO varchar YES NULL 派梯梯号
|
||||
it_acs_elevator_record_2030 DISPATCH_ELEVATOR_TIME bigint YES NULL 派梯时间
|
||||
it_acs_elevator_record_2030 IS_VISITOR varchar YES NULL 是否访客:0-不是,1-是
|
||||
it_acs_elevator_record_2030 INTERVIEWEE varchar YES NULL 被访人id
|
||||
it_acs_elevator_record_2030 ORG_ID varchar YES NULL 机构id
|
||||
it_acs_elevator_record_2030 ORG_NAME varchar YES NULL 机构名
|
||||
it_acs_elevator_record_2030 PERSON_CODE varchar YES NULL 工号
|
||||
it_acs_pass_rule ID varchar NO NULL PRI 唯一ID
|
||||
it_acs_pass_rule BUSINESS_ID varchar NO NULL MUL 企业ID
|
||||
it_acs_pass_rule ZONE_ID varchar NO NULL 楼层ID
|
||||
it_acs_pass_rule ZONE_NAME varchar YES NULL 楼层名
|
||||
it_acs_pass_rule NAME varchar NO NULL 通行规则名称
|
||||
it_acs_pass_rule IMAGE_STORE_ID varchar NO NULL 图库id
|
||||
it_acs_pass_rule PASSABLE_TIME_ID varchar YES NULL 通行时间id
|
||||
it_acs_pass_rule VALID_DATE_CRON text YES NULL 通行时间cron
|
||||
it_acs_pass_rule VALID_DATE_JSON text YES NULL 通行时间json
|
||||
it_acs_pass_rule BEGIN_DATE bigint YES NULL 开始时间
|
||||
it_acs_pass_rule END_DATE bigint YES NULL 结束时间
|
||||
it_acs_pass_rule CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_pass_rule CREATE_USER_ID varchar YES NULL 创建人id
|
||||
it_acs_pass_rule LAST_UPDATE_TIME bigint YES NULL 最后更新时间
|
||||
it_acs_pass_rule LAST_UPDATE_USER_ID varchar YES NULL 最后更新人id
|
||||
it_acs_pass_rule IS_DEFAULT tinyint YES 0 是否默认规则:0-不是,1-是
|
||||
it_acs_recog_record ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record PERSON_ID varchar YES NULL MUL 人员id
|
||||
it_acs_recog_record PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record PERSON_LABEL_IDS text YES NULL 人员id列表
|
||||
it_acs_recog_record_2020 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2020 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2020 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2020 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2020 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2020 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2020 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2020 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2020 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2020 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2020 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2020 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2020 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2020 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2020 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2020 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2020 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2020 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2020 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2020 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2020 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2020 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2020 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2020 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2020 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2020 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2020 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2020 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2020 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2020 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2020 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2020 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2020 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2020 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2020 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2020 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2020 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2020 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2020 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2021 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2021 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2021 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2021 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2021 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2021 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2021 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2021 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2021 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2021 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2021 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2021 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2021 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2021 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2021 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2021 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2021 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2021 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2021 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2021 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2021 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2021 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2021 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2021 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2021 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2021 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2021 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2021 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2021 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2021 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2021 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2021 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2021 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2021 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2021 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2021 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2021 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2021 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2021 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2022 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2022 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2022 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2022 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2022 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2022 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2022 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2022 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2022 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2022 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2022 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2022 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2022 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2022 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2022 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2022 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2022 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2022 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2022 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2022 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2022 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2022 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2022 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2022 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2022 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2022 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2022 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2022 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2022 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2022 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2022 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2022 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2022 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2022 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2022 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2022 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2022 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2022 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2022 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2023 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2023 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2023 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2023 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2023 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2023 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2023 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2023 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2023 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2023 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2023 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2023 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2023 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2023 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2023 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2023 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2023 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2023 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2023 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2023 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2023 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2023 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2023 RECOGNITION_TIME bigint NO NULL MUL 识别时间
|
||||
it_acs_recog_record_2023 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2023 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2023 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2023 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2023 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2023 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2023 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2023 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2023 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2023 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2023 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2023 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2023 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2023 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2023 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2023 PERSON_LABEL_IDS text YES NULL 人员id列表
|
||||
it_acs_recog_record_2024 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2024 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2024 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2024 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2024 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2024 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2024 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2024 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2024 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2024 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2024 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2024 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2024 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2024 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2024 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2024 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2024 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2024 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2024 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2024 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2024 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2024 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2024 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2024 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2024 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2024 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2024 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2024 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2024 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2024 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2024 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2024 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2024 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2024 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2024 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2024 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2024 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2024 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2024 PERSON_LABEL_IDS text YES NULL 人员id列表
|
||||
it_acs_recog_record_2025 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2025 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2025 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2025 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2025 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2025 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2025 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2025 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2025 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2025 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2025 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2025 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2025 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2025 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2025 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2025 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2025 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2025 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2025 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2025 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2025 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2025 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2025 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2025 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2025 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2025 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2025 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2025 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2025 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2025 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2025 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2025 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2025 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2025 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2025 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2025 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2025 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2025 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2025 PERSON_LABEL_IDS text YES NULL 人员id列表
|
||||
it_acs_recog_record_2026 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2026 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2026 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2026 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2026 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2026 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2026 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2026 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2026 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2026 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2026 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2026 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2026 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2026 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2026 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2026 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2026 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2026 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2026 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2026 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2026 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2026 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2026 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2026 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2026 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2026 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2026 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2026 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2026 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2026 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2026 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2026 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2026 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2026 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2026 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2026 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2026 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2026 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2026 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2027 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2027 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2027 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2027 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2027 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2027 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2027 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2027 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2027 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2027 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2027 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2027 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2027 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2027 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2027 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2027 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2027 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2027 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2027 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2027 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2027 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2027 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2027 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2027 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2027 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2027 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2027 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2027 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2027 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2027 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2027 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2027 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2027 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2027 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2027 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2027 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2027 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2027 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2027 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2028 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2028 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2028 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2028 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2028 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2028 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2028 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2028 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2028 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2028 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2028 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2028 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2028 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2028 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2028 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2028 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2028 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2028 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2028 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2028 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2028 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2028 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2028 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2028 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2028 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2028 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2028 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2028 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2028 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2028 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2028 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2028 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2028 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2028 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2028 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2028 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2028 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2028 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2028 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2029 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2029 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2029 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2029 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2029 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2029 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2029 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2029 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2029 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2029 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2029 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2029 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2029 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2029 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2029 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2029 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2029 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2029 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2029 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2029 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2029 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2029 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2029 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2029 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2029 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2029 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2029 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2029 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2029 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2029 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2029 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2029 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2029 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2029 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2029 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2029 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2029 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2029 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2029 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
it_acs_recog_record_2030 ID varchar NO NULL PRI 主键
|
||||
it_acs_recog_record_2030 PERSON_ID varchar YES NULL 人员id
|
||||
it_acs_recog_record_2030 PERSON_NAME varchar YES NULL 人员名称
|
||||
it_acs_recog_record_2030 BUSINESS_ID varchar NO NULL 企业ID
|
||||
it_acs_recog_record_2030 DEVICE_ID varchar YES NULL 设备id
|
||||
it_acs_recog_record_2030 DEVICE_CODE varchar NO NULL 设备编号
|
||||
it_acs_recog_record_2030 DEVICE_NAME varchar YES NULL 设备名称
|
||||
it_acs_recog_record_2030 THRESHOLD decimal YES NULL 阈值
|
||||
it_acs_recog_record_2030 DISTRICT_ID varchar YES NULL 省市区id
|
||||
it_acs_recog_record_2030 AREA_ID varchar YES NULL 设备区位id
|
||||
it_acs_recog_record_2030 DEVICE_TYPE_ID varchar YES NULL 设备类型ID
|
||||
it_acs_recog_record_2030 DEVICE_TYPE_NAME varchar YES NULL 设备类型名称
|
||||
it_acs_recog_record_2030 SUB_DEVICE_ID varchar YES NULL 子设备id
|
||||
it_acs_recog_record_2030 SUB_DEVICE_CODE varchar YES NULL 子设备编号
|
||||
it_acs_recog_record_2030 SUB_DEVICE_NAME varchar YES NULL 子设备名称
|
||||
it_acs_recog_record_2030 SUB_DEVICE_TYPE_ID varchar YES NULL 子设备类型ID
|
||||
it_acs_recog_record_2030 SUB_DEVICE_TYPE_NAME varchar YES NULL 子设备类型名称
|
||||
it_acs_recog_record_2030 REGISTER_IMAGE_PATH varchar YES NULL 注册照片
|
||||
it_acs_recog_record_2030 FACE_IMAGE_PATH varchar YES NULL 抓拍照
|
||||
it_acs_recog_record_2030 PANORAMA_IMAGE_PATH varchar YES NULL 全景照
|
||||
it_acs_recog_record_2030 SCORE decimal NO NULL 识别分数
|
||||
it_acs_recog_record_2030 RECOGNITION_RESULT tinyint YES NULL 识别结果 1:成功 2:失败
|
||||
it_acs_recog_record_2030 RECOGNITION_TIME bigint NO NULL 识别时间
|
||||
it_acs_recog_record_2030 GROUP_ID varchar YES NULL 用户所在底库编号
|
||||
it_acs_recog_record_2030 FACE_ID varchar NO NULL 识别到对应的注册图片编号
|
||||
it_acs_recog_record_2030 QUALITY_SCORE decimal YES NULL 人脸质量总分
|
||||
it_acs_recog_record_2030 LOG_ID varchar NO NULL 请求唯一标志码
|
||||
it_acs_recog_record_2030 TEMP_SCORE decimal YES NULL 体温
|
||||
it_acs_recog_record_2030 MASK_SCORE decimal NO NULL 口罩得分
|
||||
it_acs_recog_record_2030 TEMP_THRESHOLD decimal YES NULL 体温阈值
|
||||
it_acs_recog_record_2030 CARD_TYPE varchar YES NULL 证件类型
|
||||
it_acs_recog_record_2030 SOURCE tinyint YES NULL 来源 1 识别 2 人证
|
||||
it_acs_recog_record_2030 TEMP_IMAGE_PATH varchar YES NULL 热像图
|
||||
it_acs_recog_record_2030 REMARK varchar YES NULL 备注
|
||||
it_acs_recog_record_2030 CREATE_TIME bigint YES NULL 创建时间
|
||||
it_acs_recog_record_2030 CREATE_USER_ID varchar YES NULL 创建人
|
||||
it_acs_recog_record_2030 LAST_UPDATE_TIME bigint YES NULL 修改时间
|
||||
it_acs_recog_record_2030 LAST_UPDATE_USER_ID varchar YES NULL 修改人
|
||||
it_acs_recog_record_2030 PERSON_LABEL_IDS varchar YES NULL 人员id列表
|
||||
send_record_time time bigint NO NULL 时间戳
|
||||
send_record_time type tinyint NO NULL 类型:1-通行记录,2-开门记录
|
||||
send_record_timebak time bigint NO NULL 时间戳
|
||||
send_record_timebak type tinyint NO NULL 类型:1-通行记录,2-开门记录
|
||||
tenant_visitor_floor_policy id varchar NO NULL PRI 主键
|
||||
tenant_visitor_floor_policy business_id varchar NO NULL MUL 机构/租户 ID
|
||||
tenant_visitor_floor_policy policy_type varchar NO INTERSECT_ALLOWLIST 策略类型
|
||||
tenant_visitor_floor_policy allow_zone_ids text YES NULL JSON 数组,zoneId 列表
|
||||
tenant_visitor_floor_policy building_id varchar YES NULL 预留:楼栋维度;租户默认填 NULL
|
||||
tenant_visitor_floor_policy enabled tinyint NO 1 1 启用 0 停用
|
||||
tenant_visitor_floor_policy policy_version bigint NO 1 配置版本号
|
||||
tenant_visitor_floor_policy remark varchar YES NULL
|
||||
tenant_visitor_floor_policy created_by varchar YES NULL
|
||||
tenant_visitor_floor_policy created_at bigint YES NULL
|
||||
tenant_visitor_floor_policy updated_by varchar YES NULL
|
||||
tenant_visitor_floor_policy updated_at bigint YES NULL
|
||||
|
@@ -0,0 +1,82 @@
|
||||
mysql: [Warning] Using a password on the command line interface can be insecure.
|
||||
elevator_device PRIMARY ID 0 1
|
||||
image_rule_ref image_rule_ref_include_labels_IDX include_labels 1 1
|
||||
image_rule_ref image_rule_ref_include_organizations_IDX include_organizations 1 1
|
||||
image_rule_ref PRIMARY id 0 1
|
||||
it_acs_device_task PRIMARY id 0 1
|
||||
it_acs_elevator_record IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record PRIMARY ID 0 1
|
||||
it_acs_elevator_record RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2020 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2020 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2020 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2020 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2021 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2021 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2021 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2021 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2022 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2022 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2022 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2022 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2023 it_acs_elevator_record_2023_RECOGNITION_TIME_IDX RECOGNITION_TIME 1 1
|
||||
it_acs_elevator_record_2023 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2023 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2024 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2024 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2024 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2024 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2025 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2025 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2025 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2025 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2026 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2026 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2026 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2026 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2027 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2027 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2027 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2027 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2028 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2028 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2028 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2028 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2029 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2029 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2029 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2029 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_elevator_record_2030 IDX_BUSINESS_RECOGTIME BUSINESS_ID 1 1
|
||||
it_acs_elevator_record_2030 IDX_BUSINESS_RECOGTIME RECOGNITION_TIME 1 2
|
||||
it_acs_elevator_record_2030 PRIMARY ID 0 1
|
||||
it_acs_elevator_record_2030 RECOGNITION_FACE_ID RECOGNITION_FACE_ID 1 1
|
||||
it_acs_pass_rule IDX_BUSINESS_DEVICE BUSINESS_ID 1 1
|
||||
it_acs_pass_rule IDX_BUSINESS_DEVICE ZONE_ID 1 2
|
||||
it_acs_pass_rule IDX_BUSINESS_IMG_STORE BUSINESS_ID 1 1
|
||||
it_acs_pass_rule IDX_BUSINESS_IMG_STORE IMAGE_STORE_ID 1 2
|
||||
it_acs_pass_rule IDX_BUSINESS_TIME BUSINESS_ID 1 1
|
||||
it_acs_pass_rule IDX_BUSINESS_TIME PASSABLE_TIME_ID 1 2
|
||||
it_acs_pass_rule PRIMARY ID 0 1
|
||||
it_acs_recog_record it_acs_recog_record_PERSON_ID_IDX PERSON_ID 1 1
|
||||
it_acs_recog_record it_acs_recog_record_PERSON_ID_IDX DEVICE_ID 1 2
|
||||
it_acs_recog_record it_acs_recog_record_PERSON_ID_IDX RECOGNITION_TIME 1 3
|
||||
it_acs_recog_record it_acs_recog_record_PERSON_ID_IDX RECOGNITION_RESULT 1 4
|
||||
it_acs_recog_record PRIMARY ID 0 1
|
||||
it_acs_recog_record_2020 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2021 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2022 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2023 it_acs_recog_record_2023_RECOGNITION_TIME_IDX RECOGNITION_TIME 1 1
|
||||
it_acs_recog_record_2023 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2024 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2025 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2026 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2027 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2028 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2029 PRIMARY ID 0 1
|
||||
it_acs_recog_record_2030 PRIMARY ID 0 1
|
||||
tenant_visitor_floor_policy idx_business_enabled business_id 1 1
|
||||
tenant_visitor_floor_policy idx_business_enabled enabled 1 2
|
||||
tenant_visitor_floor_policy PRIMARY id 0 1
|
||||
tenant_visitor_floor_policy uk_biz_building business_id 0 1
|
||||
tenant_visitor_floor_policy uk_biz_building building_id 0 2
|
||||
|
@@ -0,0 +1,51 @@
|
||||
=== tenant_visitor_floor_policy ===
|
||||
+----------------------------------+----------------------------------+---------------------+------------------------+-------------+---------+----------------+--------------------------------------------------------------------------------------------------------------------------+------------+---------------+------------+---------------+
|
||||
| id | business_id | policy_type | allow_zone_ids | building_id | enabled | policy_version | remark | created_by | created_at | updated_by | updated_at |
|
||||
+----------------------------------+----------------------------------+---------------------+------------------------+-------------+---------+----------------+--------------------------------------------------------------------------------------------------------------------------+------------+---------------+------------+---------------+
|
||||
| gf_vstr_policy_guangfa_fund_001x | 2524639890ba4f2cba9ba1a4eeaa4015 | INTERSECT_ALLOWLIST | ["605560545117995008"] | NULL | 1 | 1 | 广发基金:访客与 floorList 求交后仅保留 allowlist(默认仅 28F zone)。业务配置见产品方案。 | NULL | 1777437481000 | NULL | 1777437481000 |
|
||||
+----------------------------------+----------------------------------+---------------------+------------------------+-------------+---------+----------------+--------------------------------------------------------------------------------------------------------------------------+------------+---------------+------------+---------------+
|
||||
=== image_rule_ref ===
|
||||
+--------------------+--------------------+-----------+--------------+--------------------+----------------+-----------------------+----------------+------------+------------+----------+---------------+------------------+----------------------------------+--------------------+---------------+
|
||||
| id | zone_id | zone_name | name | person_id | include_labels | include_organizations | exclude_labels | is_default | start_time | end_time | create_time | last_update_time | business_id | parent_rule | person_delete |
|
||||
+--------------------+--------------------+-----------+--------------+--------------------+----------------+-----------------------+----------------+------------+------------+----------+---------------+------------------+----------------------------------+--------------------+---------------+
|
||||
| 999998333961596928 | 605560541473144832 | 6F | 默认规则 | 999998332677980160 | NULL | NULL | NULL | NULL | NULL | NULL | 1753154181887 | 1753154181887 | 2524639890ba4f2cba9ba1a4eeaa4015 | 606253695058837504 | 0 |
|
||||
| 999998241204416512 | 605560542752407552 | 15F | 默认规则 | 999998240135180288 | NULL | NULL | NULL | NULL | NULL | NULL | 1753154159772 | 1753154159772 | 2524639890ba4f2cba9ba1a4eeaa4015 | 605594273001242624 | 0 |
|
||||
| 999997067843825664 | 605560543834537984 | 20F | 默认规则 | 999997066723823616 | NULL | NULL | NULL | NULL | NULL | NULL | 1753153880021 | 1753153880021 | 2524639890ba4f2cba9ba1a4eeaa4015 | 605786764719685632 | 0 |
|
||||
+--------------------+--------------------+-----------+--------------+--------------------+----------------+-----------------------+----------------+------------+------------+----------+---------------+------------------+----------------------------------+--------------------+---------------+
|
||||
=== code_elevator_area ===
|
||||
+--------------------+------+---------------+------------------+----------+--------------------+
|
||||
| zone_id | code | create_time | last_update_time | is_first | parent_id |
|
||||
+--------------------+------+---------------+------------------+----------+--------------------+
|
||||
| 605560548330831872 | 0x2F | 1659120800248 | 1659120800248 | 0 | 605560539791228928 |
|
||||
| 605560548167254016 | 0x2E | 1659120788063 | 1659120788063 | 0 | 605560539791228928 |
|
||||
| 605560547923984384 | 0x2D | 1659120766841 | 1659120766841 | 0 | 605560539791228928 |
|
||||
+--------------------+------+---------------+------------------+----------+--------------------+
|
||||
=== elevator_device ===
|
||||
+-----+---------------+------------------+-------------+----------------------------------+--------------------------+------------------+------------------------------------------+--------+-----------+---------------------+------------------+--------------------+---------------+----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+--------------------+
|
||||
| ID | create_time | last_update_time | delete_flag | device_id | device_name | device_code | device_type_name | status | area_name | current_building_id | current_building | current_floor_id | current_floor | elevator_floor_list | elevator_floor_id_list | business_id | area_id |
|
||||
+-----+---------------+------------------+-------------+----------------------------------+--------------------------+------------------+------------------------------------------+--------+-----------+---------------------+------------------+--------------------+---------------+----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+--------------------+
|
||||
| 985 | 1767517871574 | 1770433604213 | 1 | 5f670e84771547bba65eb612f1eae85c | 28F办公电梯厅东 | 0166124040000056 | 云从-人脸识别终端CW-IS1330系列 | NULL | 28F | 605560539791228928 | 星河湾中心 | 605560545117995008 | 28F | 1F,30F,31F,32F,33F,34F,35F,36F,37F,38F | 605560545449345024,605560545596145664,605560545738752000,605560545893941248,605560546036547584,605560546242068480,605560546401452032,605560546552446976,605560546711830528,605560540432957440 | 2524639890ba4f2cba9ba1a4eeaa4015 | 605560545117995008 |
|
||||
| 983 | 1766567284252 | 1766567284252 | 1 | dd16a57af07a4466a37fa863ece02d52 | 30F办公电梯厅东新 | 0166124040000034 | 云从-人脸识别终端CW-IS1330系列 | NULL | 30F | 605560539791228928 | 星河湾中心 | 605560545449345024 | 30F | 1F,28F,31F,32F,33F,34F,35F,36F,37F,38F | 605560545117995008,605560545596145664,605560545738752000,605560545893941248,605560546036547584,605560546242068480,605560546401452032,605560546552446976,605560546711830528,605560540432957440 | 2524639890ba4f2cba9ba1a4eeaa4015 | 605560545449345024 |
|
||||
| 981 | 1765949061198 | 1765949061198 | 1 | 78df9e4433294dff975f743e8e8cd801 | 35F办公电梯厅东 | 0166124040000033 | 云从-人脸识别终端CW-IS1330系列 | NULL | 35F | 605560539791228928 | 星河湾中心 | 605560546242068480 | 35F | 1F,28F,30F,31F,32F,33F,34F,36F,37F,38F | 605560540432957440,605560545117995008,605560545449345024,605560545596145664,605560545738752000,605560545893941248,605560546036547584,605560546401452032,605560546552446976,605560546711830528 | 2524639890ba4f2cba9ba1a4eeaa4015 | 605560546242068480 |
|
||||
+-----+---------------+------------------+-------------+----------------------------------+--------------------------+------------------+------------------------------------------+--------+-----------+---------------------+------------------+--------------------+---------------+----------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+--------------------+
|
||||
=== it_acs_device_task ===
|
||||
+--------------------+-------------+--------------+---------+
|
||||
| id | ALL_DEVICES | BIND_DEVICES | IS_STOP |
|
||||
+--------------------+-------------+--------------+---------+
|
||||
| 995659162337738752 | 1 | 0 | 1 |
|
||||
| 992730189924626432 | 1 | 0 | 1 |
|
||||
| 992730084085411840 | 1 | 1 | 1 |
|
||||
+--------------------+-------------+--------------+---------+
|
||||
=== send_record_time ===
|
||||
+---------------+------+
|
||||
| time | type |
|
||||
+---------------+------+
|
||||
| 1776933769715 | 2 |
|
||||
| 1687645800000 | 1 |
|
||||
+---------------+------+
|
||||
=== device_image_store ===
|
||||
+--------------------+----------------------------------+
|
||||
| building_id | image_store_id |
|
||||
+--------------------+----------------------------------+
|
||||
| 605560539791228928 | 7a83a5d268844c3a9ea0b22b32f8757b |
|
||||
+--------------------+----------------------------------+
|
||||
@@ -0,0 +1,34 @@
|
||||
mysql: [Warning] Using a password on the command line interface can be insecure.
|
||||
code_elevator_area 43 InnoDB 电梯编码(编码与地区编号)
|
||||
device_image_store 0 InnoDB 楼栋图库关联表
|
||||
elevator_device 126 InnoDB 派梯设备
|
||||
image_rule_ref 69087 InnoDB 通行规则信息表
|
||||
it_acs_device_task 525 InnoDB 派梯楼层绑定任务进度表
|
||||
it_acs_elevator_record 0 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2020 0 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2021 0 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2022 364141 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2023 1295207 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2024 1859518 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2025 1847669 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2026 664815 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2027 0 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2028 0 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2029 0 InnoDB 开门记录表
|
||||
it_acs_elevator_record_2030 0 InnoDB 开门记录表
|
||||
it_acs_pass_rule 0 InnoDB 通行规则表
|
||||
it_acs_recog_record 0 InnoDB 识别记录表
|
||||
it_acs_recog_record_2020 0 InnoDB 识别记录表
|
||||
it_acs_recog_record_2021 0 InnoDB 识别记录表
|
||||
it_acs_recog_record_2022 735055 InnoDB 识别记录表
|
||||
it_acs_recog_record_2023 5751205 InnoDB 识别记录表
|
||||
it_acs_recog_record_2024 4046343 InnoDB 识别记录表
|
||||
it_acs_recog_record_2025 3503798 InnoDB 识别记录表
|
||||
it_acs_recog_record_2026 976180 InnoDB 识别记录表
|
||||
it_acs_recog_record_2027 0 InnoDB 识别记录表
|
||||
it_acs_recog_record_2028 0 InnoDB 识别记录表
|
||||
it_acs_recog_record_2029 0 InnoDB 识别记录表
|
||||
it_acs_recog_record_2030 0 InnoDB 识别记录表
|
||||
send_record_time 2 InnoDB 记录推送时间戳
|
||||
send_record_timebak 2 InnoDB 记录推送时间戳
|
||||
tenant_visitor_floor_policy 1 InnoDB 租户访客默认楼层策略(与组织 floorList 求交)
|
||||
|
@@ -0,0 +1,27 @@
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/api/ApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppBusinessMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/ApplicationApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/ApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthorizationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/dict/DictMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/dict/DictTypeMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/enterprise/EnterpriseMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/group/GroupInfoMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/group/GroupRoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/resource/ResourceApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/resource/ResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleAuthMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/service/ServiceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserAccountMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserGroupMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserRoleMapper.xml
|
||||
@@ -0,0 +1,89 @@
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/codeElevatorArea/mapper/AcsElevatorCodeMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/device/mapper/AcsDeviceTaskMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/device/mapper/AcsElevatorDeviceMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/device/mapper/DeviceImageStoreMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/mapper/TenantVisitorFloorPolicyMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/AcsElevatorRecordMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/AcsPassRuleMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/AcsRecogRecordMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/ImageRuleRefMapper.xml
|
||||
./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/SendRecordTimeMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/api/ApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/AppApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/ApplicationApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/ApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/AppResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/authorization/AuthApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/authorization/AuthorizationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/authorization/AuthResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/dict/DictMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/dict/DictTypeMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/enterprise/EnterpriseMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/group/GroupInfoMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/group/GroupRoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/resource/ResourceApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/resource/ResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleAuthMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/service/ServiceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserAccountMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserGroupMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserRoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/api/ApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppBusinessMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/ApplicationApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/ApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthorizationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/dict/DictMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/dict/DictTypeMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/enterprise/EnterpriseMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/group/GroupInfoMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/group/GroupRoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/resource/ResourceApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/resource/ResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleAuthMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/service/ServiceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserAccountMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserGroupMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserRoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/api/ApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/AppApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/ApplicationApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/ApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/AppResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/authorization/AuthApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/authorization/AuthorizationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/authorization/AuthResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/dict/DictMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/dict/DictTypeMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/enterprise/EnterpriseMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/group/GroupInfoMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/group/GroupRoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/resource/ResourceApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/resource/ResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleApiMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleAuthMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleResourceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/service/ServiceMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserAccountMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserApplicationMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserGroupMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserResMapper.xml
|
||||
./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserRoleMapper.xml
|
||||
@@ -0,0 +1,89 @@
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/codeElevatorArea/mapper/AcsElevatorCodeMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/device/mapper/AcsDeviceTaskMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/device/mapper/AcsElevatorDeviceMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/device/mapper/DeviceImageStoreMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/mapper/TenantVisitorFloorPolicyMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/AcsElevatorRecordMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/AcsPassRuleMapper.xml it_acs_pass_rule
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/AcsRecogRecordMapper.xml
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/ImageRuleRefMapper.xml image_rule_ref
|
||||
maven-cw-elevator-application ./maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/record/mapper/SendRecordTimeMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/api/ApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/AppApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/ApplicationApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/ApplicationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/application/AppResMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/authorization/AuthApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/authorization/AuthorizationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/authorization/AuthResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/dict/DictMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/dict/DictTypeMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/enterprise/EnterpriseMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/group/GroupInfoMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/group/GroupRoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/resource/ResourceApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/resource/ResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleAuthMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/role/RoleResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/service/ServiceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserAccountMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserApplicationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserGroupMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserResMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/db2/user/UserRoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/api/ApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppBusinessMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/ApplicationApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/ApplicationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/application/AppResMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthorizationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/authorization/AuthResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/dict/DictMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/dict/DictTypeMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/enterprise/EnterpriseMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/group/GroupInfoMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/group/GroupRoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/resource/ResourceApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/resource/ResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleAuthMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/role/RoleResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/service/ServiceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserAccountMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserApplicationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserGroupMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserResMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/mysql/user/UserRoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/api/ApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/AppApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/ApplicationApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/ApplicationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/application/AppResMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/authorization/AuthApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/authorization/AuthorizationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/authorization/AuthResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/dict/DictMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/dict/DictTypeMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/enterprise/EnterpriseMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/group/GroupInfoMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/group/GroupRoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/resource/ResourceApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/resource/ResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleApiMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleAuthMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/role/RoleResourceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/service/ServiceMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserAccountMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserApplicationMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserGroupMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserResMapper.xml
|
||||
maven-cwos-resource ./maven-cwos-resource/cwos-component-resource-data/src/main/java/cn/cloudwalk/data/resource/mapper/oracle/user/UserRoleMapper.xml
|
||||
|
@@ -0,0 +1,396 @@
|
||||
# 数据库表结构参考手册 — 实施计划
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** 走查全部 5 个数据库(2 库直连 + 3 库代码推导),输出带 Mermaid ER 图 + 脱敏样本数据的 Markdown 参考手册。
|
||||
|
||||
**Architecture:** 分三层执行 — 数据库查询层(直连 INFORMATION_SCHEMA + SELECT 样本)、代码扫描层(并行读取全部 MyBatis Mapper XML 提取表/列/JOIN)、文档生成层(交叉验证 + 组装 Markdown)。直连库与代码扫描完全并行。
|
||||
|
||||
**Tech Stack:** MySQL CLI (`mysql`), Bash, Python 3(JSON 缓存), Mermaid erDiagram
|
||||
|
||||
**Spec:** `docs/superpowers/specs/2026-05-01-database-schema-reference-design.md`
|
||||
|
||||
---
|
||||
|
||||
## 前置检查
|
||||
|
||||
- [ ] **Step 0: 确认数据库可达**
|
||||
|
||||
```bash
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 -e "SELECT VERSION(); SHOW DATABASES LIKE '%component%'; SHOW DATABASES LIKE '%elevator%';"
|
||||
```
|
||||
|
||||
期望输出: MySQL 版本号 + `component-organization` 和 `cw-elevator-application` 两个库存在。
|
||||
|
||||
> 若失败:全量降级为代码推导模式(见 Task 4 备选路径)。
|
||||
|
||||
---
|
||||
|
||||
### Task 1: 采集组件组织库 schema + 样本
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/superpowers/data/component-organization/schema_raw.json`
|
||||
- Create: `docs/superpowers/data/component-organization/tables.json`
|
||||
- Create: `docs/superpowers/data/component-organization/samples/`
|
||||
|
||||
- [ ] **Step 1: 导出表清单**
|
||||
|
||||
```bash
|
||||
mkdir -p docs/superpowers/data/component-organization/samples
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 component-organization -N -e \
|
||||
"SELECT TABLE_NAME, IFNULL(TABLE_ROWS,0), ENGINE, IFNULL(TABLE_COMMENT,'') \
|
||||
FROM INFORMATION_SCHEMA.TABLES \
|
||||
WHERE TABLE_SCHEMA='component-organization' AND TABLE_TYPE='BASE TABLE' \
|
||||
ORDER BY TABLE_NAME;" > docs/superpowers/data/component-organization/tables.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 导出全部列定义**
|
||||
|
||||
```bash
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 component-organization -N -e \
|
||||
"SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, IFNULL(COLUMN_DEFAULT,'NULL'), COLUMN_KEY, EXTRA, IFNULL(COLUMN_COMMENT,'') \
|
||||
FROM INFORMATION_SCHEMA.COLUMNS \
|
||||
WHERE TABLE_SCHEMA='component-organization' AND TABLE_NAME NOT LIKE 'QRTZ_%' AND TABLE_NAME NOT LIKE 'quartz_%' \
|
||||
ORDER BY TABLE_NAME, ORDINAL_POSITION;" > docs/superpowers/data/component-organization/columns.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 导出索引**
|
||||
|
||||
```bash
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 component-organization -N -e \
|
||||
"SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, NON_UNIQUE, SEQ_IN_INDEX \
|
||||
FROM INFORMATION_SCHEMA.STATISTICS \
|
||||
WHERE TABLE_SCHEMA='component-organization' \
|
||||
ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;" > docs/superpowers/data/component-organization/indexes.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 逐表采集样本(每表 3 行)**
|
||||
|
||||
```bash
|
||||
# 读取表清单,排除系统表,对每张表执行 SELECT * LIMIT 3
|
||||
while IFS=$'\t' read -r table_name rest; do
|
||||
if [[ "$table_name" != QRTZ_* ]] && [[ "$table_name" != quartz_* ]]; then
|
||||
echo "--- Extracting: $table_name ---"
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 component-organization -t -e \
|
||||
"SELECT * FROM \`$table_name\` ORDER BY 1 DESC LIMIT 3;" \
|
||||
> "docs/superpowers/data/component-organization/samples/${table_name}.txt" 2>&1
|
||||
fi
|
||||
done < <(cut -f1 docs/superpowers/data/component-organization/tables.tsv)
|
||||
```
|
||||
|
||||
- [ ] **Step 5: 提交中间产物**
|
||||
|
||||
```bash
|
||||
git add docs/superpowers/data/component-organization/
|
||||
git commit -m "data: add component-organization schema raw dump and samples"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 2: 采集电梯应用库 schema + 样本
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/superpowers/data/cw-elevator-application/schema_raw.json`
|
||||
- Create: `docs/superpowers/data/cw-elevator-application/tables.json`
|
||||
- Create: `docs/superpowers/data/cw-elevator-application/samples/`
|
||||
|
||||
- [ ] **Step 1: 导出表清单**
|
||||
|
||||
```bash
|
||||
mkdir -p docs/superpowers/data/cw-elevator-application/samples
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 cw-elevator-application -N -e \
|
||||
"SELECT TABLE_NAME, IFNULL(TABLE_ROWS,0), ENGINE, IFNULL(TABLE_COMMENT,'') \
|
||||
FROM INFORMATION_SCHEMA.TABLES \
|
||||
WHERE TABLE_SCHEMA='cw-elevator-application' AND TABLE_TYPE='BASE TABLE' \
|
||||
ORDER BY TABLE_NAME;" > docs/superpowers/data/cw-elevator-application/tables.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 导出全部列定义**
|
||||
|
||||
```bash
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 cw-elevator-application -N -e \
|
||||
"SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, IFNULL(COLUMN_DEFAULT,'NULL'), COLUMN_KEY, EXTRA, IFNULL(COLUMN_COMMENT,'') \
|
||||
FROM INFORMATION_SCHEMA.COLUMNS \
|
||||
WHERE TABLE_SCHEMA='cw-elevator-application' AND TABLE_NAME NOT LIKE 'QRTZ_%' AND TABLE_NAME NOT LIKE 'quartz_%' \
|
||||
ORDER BY TABLE_NAME, ORDINAL_POSITION;" > docs/superpowers/data/cw-elevator-application/columns.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 导出索引**
|
||||
|
||||
```bash
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 cw-elevator-application -N -e \
|
||||
"SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, NON_UNIQUE, SEQ_IN_INDEX \
|
||||
FROM INFORMATION_SCHEMA.STATISTICS \
|
||||
WHERE TABLE_SCHEMA='cw-elevator-application' \
|
||||
ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;" > docs/superpowers/data/cw-elevator-application/indexes.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 逐表采集样本(每表 3 行)**
|
||||
|
||||
```bash
|
||||
while IFS=$'\t' read -r table_name rest; do
|
||||
if [[ "$table_name" != QRTZ_* ]] && [[ "$table_name" != quartz_* ]]; then
|
||||
echo "--- Extracting: $table_name ---"
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 cw-elevator-application -t -e \
|
||||
"SELECT * FROM \`$table_name\` ORDER BY 1 DESC LIMIT 3;" \
|
||||
> "docs/superpowers/data/cw-elevator-application/samples/${table_name}.txt" 2>&1
|
||||
fi
|
||||
done < <(cut -f1 docs/superpowers/data/cw-elevator-application/tables.tsv)
|
||||
```
|
||||
|
||||
- [ ] **Step 5: 提交中间产物**
|
||||
|
||||
```bash
|
||||
git add docs/superpowers/data/cw-elevator-application/
|
||||
git commit -m "data: add cw-elevator-application schema raw dump and samples"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 3: 扫描所有 MyBatis Mapper XML 提取表/列/JOIN
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/superpowers/data/mapper_tables.tsv`
|
||||
|
||||
- [ ] **Step 1: 枚举所有 Mapper XML 文件**
|
||||
|
||||
```bash
|
||||
find ./maven-cw-elevator-application ./maven-cwos-resource ./maven-ninca-crk ./maven-ninca-qk-alarm \
|
||||
-name "*Mapper.xml" -path "*/src/main/*" 2>/dev/null | sort \
|
||||
> docs/superpowers/data/mapper_files.txt
|
||||
wc -l docs/superpowers/data/mapper_files.txt
|
||||
```
|
||||
|
||||
期望输出: ~80+ 个 Mapper XML 文件。
|
||||
|
||||
- [ ] **Step 2: 从 Mapper XML 提取 INSERT/UPDATE/FROM 表名**
|
||||
|
||||
```bash
|
||||
# 提取 INSERT INTO / UPDATE / FROM / JOIN 后的表名
|
||||
> docs/superpowers/data/mapper_tables.tsv
|
||||
while IFS= read -r xmlfile; do
|
||||
module=$(echo "$xmlfile" | cut -d'/' -f2)
|
||||
tablenames=$(grep -oP '(INSERT\s+INTO\s+|UPDATE\s+|FROM\s+|JOIN\s+)\s*\`?\K[a-z_][a-z0-9_]*' "$xmlfile" 2>/dev/null | sort -u | tr '\n' ',')
|
||||
echo -e "$module\t$xmlfile\t$tablenames"
|
||||
done < docs/superpowers/data/mapper_files.txt > docs/superpowers/data/mapper_tables.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 提取 resultMap 列映射**
|
||||
|
||||
对每个 Mapper XML,读取 `<resultMap>` 中的 `<result column="..." property="...">` 提取列名。用下面脚本:
|
||||
|
||||
```bash
|
||||
> docs/superpowers/data/mapper_columns.tsv
|
||||
while IFS= read -r xmlfile; do
|
||||
cols=$(grep -oP '<result\s+column="\K[^"]+' "$xmlfile" 2>/dev/null | sort -u | tr '\n' ',')
|
||||
ids=$(grep -oP '<id\s+column="\K[^"]+' "$xmlfile" 2>/dev/null | sort -u | tr '\n' ',')
|
||||
echo -e "${xmlfile}\t${ids}|${cols}"
|
||||
done < docs/superpowers/data/mapper_files.txt > docs/superpowers/data/mapper_columns.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 提取 JOIN 关系**
|
||||
|
||||
```bash
|
||||
> docs/superpowers/data/mapper_joins.tsv
|
||||
while IFS= read -r xmlfile; do
|
||||
joins=$(grep -oP '(LEFT\s+|RIGHT\s+|INNER\s+)?JOIN\s+\`?\K[a-z_][a-z0-9_]*\s+ON\s+\K[^;]+' "$xmlfile" 2>/dev/null | tr '\n' '|')
|
||||
if [ -n "$joins" ]; then
|
||||
echo -e "${xmlfile}\t${joins}"
|
||||
fi
|
||||
done < docs/superpowers/data/mapper_files.txt > docs/superpowers/data/mapper_joins.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 5: 扫描 ShardingSphere 分表配置**
|
||||
|
||||
```bash
|
||||
grep -r "actual-data-nodes\|sharding-column\|table-strategy" \
|
||||
--include="*.properties" --include="*.yml" --include="*.yaml" \
|
||||
./maven-cw-elevator-application/ ./maven-ninca-crk/ 2>/dev/null \
|
||||
> docs/superpowers/data/sharding_config.txt
|
||||
```
|
||||
|
||||
- [ ] **Step 6: 提交**
|
||||
|
||||
```bash
|
||||
git add docs/superpowers/data/mapper_*.tsv docs/superpowers/data/mapper_files.txt docs/superpowers/data/sharding_config.txt
|
||||
git commit -m "data: add MyBatis mapper table/column/join extraction"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 4: 代码推导不可达库的表结构
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/superpowers/data/ninca-crk-std/mapper_tables.tsv`
|
||||
- Create: `docs/superpowers/data/alarm-deploy/mapper_tables.tsv`
|
||||
- Create: `docs/superpowers/data/cwos-resource/mapper_tables.tsv`
|
||||
|
||||
**ninca_crk_std** 和 **alarm_deploy** 的 MyBatis mapper 路径在 `application.properties` 中声明:
|
||||
- ninca-crk: `classpath*:cn/cloudwalk/data/**/mysql/*.xml,classpath*:cn/cloudwalk/task/data/**/mysql/*.xml`
|
||||
- alarm: `classpath:cn/cloudwalk/data/**/mysql/*.xml`
|
||||
- cwos-resource: Mapper XML 已在 Task 3 中扫描
|
||||
|
||||
- [ ] **Step 1: 从 ninca-crk 的 Mapper XML 提取表信息**
|
||||
|
||||
```bash
|
||||
# ninca-crk 的 Mapper XML 位于 src/main/java 下(非 resources/mapper)
|
||||
find ./maven-ninca-crk -name "*.xml" -path "*/mysql/*" 2>/dev/null | sort > docs/superpowers/data/ninca-crk-std/mapper_files.txt
|
||||
|
||||
while IFS= read -r xmlfile; do
|
||||
tablenames=$(grep -oP '(INSERT\s+INTO\s+|UPDATE\s+|FROM\s+|JOIN\s+)\s*\`?\K[a-z_][a-z0-9_]*' "$xmlfile" 2>/dev/null | sort -u | tr '\n' ',')
|
||||
echo -e "ninca-crk-std\t$xmlfile\t$tablenames"
|
||||
done < docs/superpowers/data/ninca-crk-std/mapper_files.txt > docs/superpowers/data/ninca-crk-std/mapper_tables.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 从 alarm 的 Mapper XML 提取表信息**
|
||||
|
||||
```bash
|
||||
find ./maven-ninca-qk-alarm -name "*.xml" -path "*/mysql/*" 2>/dev/null | sort > docs/superpowers/data/alarm-deploy/mapper_files.txt
|
||||
|
||||
while IFS= read -r xmlfile; do
|
||||
tablenames=$(grep -oP '(INSERT\s+INTO\s+|UPDATE\s+|FROM\s+|JOIN\s+)\s*\`?\K[a-z_][a-z0-9_]*' "$xmlfile" 2>/dev/null | sort -u | tr '\n' ',')
|
||||
echo -e "alarm-deploy\t$xmlfile\t$tablenames"
|
||||
done < docs/superpowers/data/alarm-deploy/mapper_files.txt > docs/superpowers/data/alarm-deploy/mapper_tables.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 从 cwos-resource 的 Mapper XML 提取表信息**
|
||||
|
||||
```bash
|
||||
# cwos-resource 有 db2/mysql/oracle 三个方言目录,以 mysql/ 为准
|
||||
find ./maven-cwos-resource -name "*.xml" -path "*/mysql/*" 2>/dev/null | sort > docs/superpowers/data/cwos-resource/mapper_files.txt
|
||||
|
||||
while IFS= read -r xmlfile; do
|
||||
tablenames=$(grep -oP '(INSERT\s+INTO\s+|UPDATE\s+|FROM\s+|JOIN\s+)\s*\`?\K[a-z_][a-z0-9_]*' "$xmlfile" 2>/dev/null | sort -u | tr '\n' ',')
|
||||
echo -e "cwos-resource\t$xmlfile\t$tablenames"
|
||||
done < docs/superpowers/data/cwos-resource/mapper_files.txt > docs/superpowers/data/cwos-resource/mapper_tables.tsv
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 提交**
|
||||
|
||||
```bash
|
||||
git add docs/superpowers/data/ninca-crk-std/ docs/superpowers/data/alarm-deploy/ docs/superpowers/data/cwos-resource/
|
||||
git commit -m "data: add code-derived table info for unreachable databases"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 5: 交叉验证与生成最终 Markdown 文档
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/superpowers/specs/2026-05-01-database-schema-reference.md`(最终产物)
|
||||
|
||||
此任务通过 subagent 执行——将 Task 1-4 采集的原始数据 + 现有架构文档 + Mapper 扫描结果汇总为最终手册。
|
||||
|
||||
- [ ] **Step 1: 交付 subagent 生成文档**
|
||||
|
||||
委托 `deep` agent,传入以下 prompt:
|
||||
|
||||
```
|
||||
TASK: 根据以下原始数据生成数据库表结构参考手册 Markdown 文件。
|
||||
|
||||
EXPECTED OUTCOME:
|
||||
- 文件写入 docs/superpowers/specs/2026-05-01-database-schema-reference.md
|
||||
- 包含 9 个章节(见设计说明 §2)
|
||||
- 每库有 Mermaid erDiagram ER 图
|
||||
- 每表有列清单(列名、类型、可空、键、注释)
|
||||
- 可连库的表有脱敏样本数据(Markdown 表格,≤3 行)
|
||||
- 跨库关系总图
|
||||
- 代码-表映射索引
|
||||
|
||||
REQUIRED TOOLS: Read, Write, Bash
|
||||
|
||||
MUST DO:
|
||||
1. 读取设计说明: docs/superpowers/specs/2026-05-01-database-schema-reference-design.md
|
||||
2. 读取现有架构文档: docs/architecture/租户组织人员访客-数据模型与用例.md
|
||||
3. 读取 Task 1-2 的 schema 原始数据: docs/superpowers/data/component-organization/ 和 cw-elevator-application/ 下的 tables.tsv, columns.tsv, indexes.tsv
|
||||
4. 读取 Task 1-2 的样本数据: samples/ 目录下各 .txt 文件
|
||||
5. 读取 Task 3-4 的 Mapper 扫描结果: docs/superpowers/data/mapper_tables.tsv, mapper_columns.tsv, mapper_joins.tsv
|
||||
6. 对每张表应用脱敏规则(设计说明 §5.3):姓名截断、手机号截断、IP替换、密码列跳过、时间戳转换
|
||||
7. 按设计说明 §4 规范绘制 Mermaid ER 图:业务关键列、三种关系线(约束/JOIN/跨库)、subgraph 分包
|
||||
8. 交叉验证:列出「库中有但代码无 Mapper」的表(标注为运维/外部表),对比 DDL 与实际列
|
||||
9. 对不可达库(ninca-crk-std, alarm-deploy, cwos-resource)显式标注「⚠️ 未连接生产库,从代码推导」
|
||||
10. Mermaid 语法必须可渲染(erDiagram 关键字、正确的 {} 语法、||--o{ 关系线)
|
||||
11. 文档中不出现 "TBD"、"TODO"、"待补充"
|
||||
|
||||
MUST NOT DO:
|
||||
- 不要编造未在原始数据中出现的表名或列名
|
||||
- 不要对不可达库声称有样本数据
|
||||
- 不要包含系统表(QRTZ_*, quartz_*)
|
||||
- 不要包含未脱敏的姓名/手机号/IP
|
||||
|
||||
CONTEXT:
|
||||
- 仓库路径: /media/zebra/9e8fa357-7db6-4d70-88ed-d5de5a059a663/星河湾星中星/源码
|
||||
- 数据库环境: 192.168.3.12:3307 (MySQL), user=root, password=123456
|
||||
- 数据库: component-organization, cw-elevator-application (直连); ninca_crk_std, alarm_deploy, cwos_resource (代码推导)
|
||||
- 现有架构文档已有 organization 库 5 表 + elevator 库 2 表的 ER 模型,以此为起点扩展
|
||||
- MyBatis Mapper XML 路径已在 mapper_files.txt 中列出
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 验证文档完整性**
|
||||
|
||||
```bash
|
||||
# 检查文档存在且非空
|
||||
wc -l docs/superpowers/specs/2026-05-01-database-schema-reference.md
|
||||
|
||||
# 检查 Mermaid 块数量(应有 ≥5 个 erDiagram 块)
|
||||
grep -c 'erDiagram' docs/superpowers/specs/2026-05-01-database-schema-reference.md
|
||||
|
||||
# 检查无占位符
|
||||
! grep -n 'TBD\|TODO\|待补充' docs/superpowers/specs/2026-05-01-database-schema-reference.md
|
||||
echo "Exit: $?"
|
||||
```
|
||||
|
||||
期望: 文件 ≥ 500 行,≥ 5 个 erDiagram 块,无占位符匹配(exit 0)。
|
||||
|
||||
- [ ] **Step 3: 提交**
|
||||
|
||||
```bash
|
||||
git add docs/superpowers/specs/2026-05-01-database-schema-reference.md
|
||||
git commit -m "docs: add full database schema reference manual with ER diagrams and sample data"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 6: 收尾清理
|
||||
|
||||
- [ ] **Step 1: 取消中间数据跟踪(可选)**
|
||||
|
||||
若中间数据不应入库,更新 `.gitignore`:
|
||||
|
||||
```bash
|
||||
# 如需排除原始数据
|
||||
echo "docs/superpowers/data/" >> .gitignore
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 最终提交**
|
||||
|
||||
```bash
|
||||
git add -A
|
||||
git status
|
||||
git commit -m "chore: finalize database schema reference delivery"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 备选路径
|
||||
|
||||
### 若 192.168.3.12 不可达
|
||||
|
||||
跳过 Task 1 和 Task 2。所有表结构从代码 Mapper XML 推导,标注「⚠️ 数据库不可达,全部信息从代码推导」。在 Task 5 的 subagent prompt 中移除「读取样本数据」步骤。
|
||||
|
||||
### 若某个库的 Mapper XML 为空
|
||||
|
||||
对应章节仅输出「该模块未发现 MyBatis Mapper XML,无法从代码推导表结构」,不生成 ER 图。
|
||||
|
||||
---
|
||||
|
||||
## 完成检查清单
|
||||
|
||||
- [ ] 产物文件 `docs/superpowers/specs/2026-05-01-database-schema-reference.md` 存在且 ≥ 500 行
|
||||
- [ ] 5 个数据库各有独立章节 + ER 图
|
||||
- [ ] 跨库关系总图存在
|
||||
- [ ] 代码-表映射索引覆盖全部 Mapper XML
|
||||
- [ ] 可连库的每张表有 1-3 行脱敏样本
|
||||
- [ ] 无 `TBD` / `TODO` / `待补充`
|
||||
- [ ] 所有 Mermaid 块语法正确可渲染
|
||||
- [ ] 脱敏规则已应用(姓名截断、手机号截断等)
|
||||
@@ -0,0 +1,647 @@
|
||||
# 租户访客楼层策略 org_id 粒度修复 — 实施计划
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** 将 `tenant_visitor_floor_policy` 的策略键从 `business_id` 改为 `org_id`,实现二选一语义(有策略用 allow,无策略用 floorList),修复 F1/F2/W2 问题。
|
||||
|
||||
**Architecture:** DDL 先上线(加列+改约束,不影响行为)→ 代码切换(Mapper/DAO/Service 三层的 business_id → org_id + 二选一逻辑)→ 数据迁移(运维 SQL 填 org_id)。整体改动控制在 7 个文件内,最小风险。
|
||||
|
||||
**Tech Stack:** Java 8, Spring Boot, MyBatis, MySQL 5.7
|
||||
|
||||
**Spec:** `docs/superpowers/specs/2026-05-01-org-id-policy-fix-design.md`
|
||||
|
||||
---
|
||||
|
||||
## 前置条件
|
||||
|
||||
- [ ] **Step 0: 确认分支与编译环境**
|
||||
|
||||
```bash
|
||||
git checkout -b fix/org-id-policy-granularity
|
||||
cd maven-cw-elevator-application && mvn formatter:validate -Dformatter-maven-plugin.version=2.16.0
|
||||
```
|
||||
|
||||
期望: formatter 校验通过。
|
||||
|
||||
---
|
||||
|
||||
### Task 1: DDL — 策略表结构变更
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/sql/tenant_visitor_floor_policy_v2.sql`
|
||||
|
||||
- [ ] **Step 1: 编写 DDL 脚本**
|
||||
|
||||
```sql
|
||||
-- 租户访客楼层策略:org_id 粒度修复
|
||||
-- 执行顺序:先 DDL → 数据迁移(Task 5)→ 发应用包
|
||||
-- 回滚: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;
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 在开发库执行 DDL**
|
||||
|
||||
```bash
|
||||
mysql -h 192.168.3.12 -P 3307 -u root -p123456 cw-elevator-application < docs/sql/tenant_visitor_floor_policy_v2.sql
|
||||
```
|
||||
|
||||
期望: 无错误,`org_id` 列存在,`uk_org_building` 索引存在,`uk_biz_building` 已删除。
|
||||
|
||||
- [ ] **Step 3: 提交**
|
||||
|
||||
```bash
|
||||
git add docs/sql/tenant_visitor_floor_policy_v2.sql
|
||||
git commit -m "feat: add org_id column and uk_org_building constraint to tenant_visitor_floor_policy"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 2: DTO — 新增 orgId 字段
|
||||
|
||||
**Files:**
|
||||
- Modify: `maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/dto/TenantVisitorFloorPolicyDto.java`
|
||||
|
||||
- [ ] **Step 1: 添加 orgId 字段 + getter/setter**
|
||||
|
||||
在 `businessId` 的 setter 之后插入:
|
||||
|
||||
```java
|
||||
// 新增字段
|
||||
private String orgId;
|
||||
|
||||
public String getOrgId() {
|
||||
return orgId;
|
||||
}
|
||||
|
||||
public void setOrgId(String orgId) {
|
||||
this.orgId = orgId;
|
||||
}
|
||||
```
|
||||
|
||||
> 注意:`businessId` 字段保留不删,兼容旧序列化。
|
||||
|
||||
- [ ] **Step 2: 验证编译**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application && mvn compile -pl cw-elevator-application-data -am -DskipTests
|
||||
```
|
||||
|
||||
期望: BUILD SUCCESS。
|
||||
|
||||
- [ ] **Step 3: 提交**
|
||||
|
||||
```bash
|
||||
git add maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/dto/TenantVisitorFloorPolicyDto.java
|
||||
git commit -m "feat: add orgId field to TenantVisitorFloorPolicyDto"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 3: Mapper — SQL 切换 business_id → org_id
|
||||
|
||||
**Files:**
|
||||
- Modify: `maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/mapper/TenantVisitorFloorPolicyMapper.xml`
|
||||
- Modify: `maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/mapper/TenantVisitorFloorPolicyMapper.java`
|
||||
|
||||
- [ ] **Step 1: 修改 Mapper XML — WHERE 条件 + 映射**
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="cn.cloudwalk.elevator.person.mapper.TenantVisitorFloorPolicyMapper">
|
||||
|
||||
<select id="selectEnabledByOrgId" resultType="cn.cloudwalk.elevator.person.dto.TenantVisitorFloorPolicyDto">
|
||||
SELECT id,
|
||||
org_id AS orgId,
|
||||
policy_type AS policyType,
|
||||
allow_zone_ids AS allowZoneIds,
|
||||
building_id AS buildingId,
|
||||
enabled AS enabled,
|
||||
policy_version AS policyVersion
|
||||
FROM tenant_visitor_floor_policy
|
||||
WHERE org_id = #{orgId,jdbcType=VARCHAR}
|
||||
AND enabled = 1
|
||||
AND policy_type = 'INTERSECT_ALLOWLIST'
|
||||
AND (building_id IS NULL OR building_id = '')
|
||||
ORDER BY updated_at DESC, policy_version DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 旧方法保留作历史参考(可选删除)
|
||||
<select id="selectEnabledTenantDefault" resultType="...">
|
||||
... business_id ...
|
||||
</select>
|
||||
-->
|
||||
</mapper>
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 修改 Mapper 接口**
|
||||
|
||||
```java
|
||||
package cn.cloudwalk.elevator.person.mapper;
|
||||
|
||||
import cn.cloudwalk.elevator.person.dto.TenantVisitorFloorPolicyDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface TenantVisitorFloorPolicyMapper {
|
||||
|
||||
/**
|
||||
* 按组织节点 ID 查询启用中的 INTERSECT_ALLOWLIST 策略(building_id 为空)。
|
||||
*/
|
||||
TenantVisitorFloorPolicyDto selectEnabledByOrgId(@Param("orgId") String orgId);
|
||||
|
||||
// 旧方法(废弃,保留以兼容编译)
|
||||
// TenantVisitorFloorPolicyDto selectEnabledTenantDefault(@Param("businessId") String businessId);
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 验证编译**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application && mvn compile -pl cw-elevator-application-data -am -DskipTests
|
||||
```
|
||||
|
||||
期望: BUILD SUCCESS。
|
||||
|
||||
- [ ] **Step 4: 提交**
|
||||
|
||||
```bash
|
||||
git add maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/mapper/TenantVisitorFloorPolicyMapper.xml
|
||||
git add maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/mapper/TenantVisitorFloorPolicyMapper.java
|
||||
git commit -m "feat: change policy query from business_id to org_id in TenantVisitorFloorPolicyMapper"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 4: DAO — 接口与实现切换
|
||||
|
||||
**Files:**
|
||||
- Modify: `maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/dao/TenantVisitorFloorPolicyDao.java`
|
||||
- Modify: `maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/impl/TenantVisitorFloorPolicyDaoImpl.java`
|
||||
|
||||
- [ ] **Step 1: 修改 DAO 接口**
|
||||
|
||||
```java
|
||||
package cn.cloudwalk.elevator.person.dao;
|
||||
|
||||
import cn.cloudwalk.elevator.person.dto.TenantVisitorFloorPolicyDto;
|
||||
|
||||
public interface TenantVisitorFloorPolicyDao {
|
||||
|
||||
/**
|
||||
* 按组织节点 ID 查询启用中的 INTERSECT_ALLOWLIST 策略(building_id 为空)。
|
||||
*
|
||||
* @param orgId 组织节点 ID(cw_is_organization.ID)
|
||||
* @return 无配置时 null
|
||||
*/
|
||||
TenantVisitorFloorPolicyDto selectEnabledByOrgId(String orgId);
|
||||
|
||||
// 旧方法(废弃)
|
||||
// TenantVisitorFloorPolicyDto selectEnabledTenantDefault(String businessId);
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 修改 DAO 实现**
|
||||
|
||||
```java
|
||||
package cn.cloudwalk.elevator.person.impl;
|
||||
|
||||
import cn.cloudwalk.elevator.person.dao.TenantVisitorFloorPolicyDao;
|
||||
import cn.cloudwalk.elevator.person.dto.TenantVisitorFloorPolicyDto;
|
||||
import cn.cloudwalk.elevator.person.mapper.TenantVisitorFloorPolicyMapper;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public class TenantVisitorFloorPolicyDaoImpl implements TenantVisitorFloorPolicyDao {
|
||||
|
||||
@Resource
|
||||
private TenantVisitorFloorPolicyMapper tenantVisitorFloorPolicyMapper;
|
||||
|
||||
@Override
|
||||
public TenantVisitorFloorPolicyDto selectEnabledByOrgId(String orgId) {
|
||||
return this.tenantVisitorFloorPolicyMapper.selectEnabledByOrgId(orgId);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 验证编译**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application && mvn compile -pl cw-elevator-application-data -am -DskipTests
|
||||
```
|
||||
|
||||
期望: BUILD SUCCESS。
|
||||
|
||||
- [ ] **Step 4: 提交**
|
||||
|
||||
```bash
|
||||
git add maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/dao/TenantVisitorFloorPolicyDao.java
|
||||
git add maven-cw-elevator-application/cw-elevator-application-data/src/main/java/cn/cloudwalk/elevator/person/impl/TenantVisitorFloorPolicyDaoImpl.java
|
||||
git commit -m "feat: update DAO interface and impl to use org_id query"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 5: Service — addVisitor 核心逻辑重写
|
||||
|
||||
**Files:**
|
||||
- Modify: `maven-cw-elevator-application/cw-elevator-application-service/src/main/java/cn/cloudwalk/elevator/person/impl/PersonRuleServiceImpl.java`
|
||||
|
||||
这是改动最大的文件。分 3 个子步骤。
|
||||
|
||||
- [ ] **Step 1: 重写 addVisitor 方法(第 174-275 行)**
|
||||
|
||||
完整替换:
|
||||
|
||||
```java
|
||||
@CloudwalkParamsValidate
|
||||
public CloudwalkResult<Boolean> addVisitor(AcsPersonAddVisitorParam param, CloudwalkCallContext context)
|
||||
throws ServiceException {
|
||||
this.logger.info("根据被访人添加访客派梯权限开始,AcsPersonAddVisitorParam=[{}], CloudwalkCallContext=[{}]",
|
||||
JSONObject.toJSONString(param), JSONObject.toJSONString(context));
|
||||
try {
|
||||
// ===== Step 1: 获取被访人信息(UC-01/02 都需要) =====
|
||||
PersonDetailParam detailParam = new PersonDetailParam();
|
||||
detailParam.setId(param.getPersonId());
|
||||
detailParam.setBusinessId(context.getCompany().getCompanyId());
|
||||
CloudwalkResult<PersonResult> detail = this.personService.detail(detailParam, context);
|
||||
if (detail == null || !detail.isSuccess()) {
|
||||
String code = detail != null ? detail.getCode() : "76260531";
|
||||
String msg = detail != null ? detail.getMessage() : getMessage("76260531");
|
||||
return CloudwalkResult.fail(code, msg);
|
||||
}
|
||||
PersonResult personResult = (PersonResult) detail.getData();
|
||||
if (personResult == null) {
|
||||
return CloudwalkResult.fail("76260531", getMessage("76260531"));
|
||||
}
|
||||
List<String> hostFloors = personResult.getFloorList();
|
||||
if (CollectionUtils.isEmpty(hostFloors)) {
|
||||
return CloudwalkResult.fail("76260531", getMessage("76260531"));
|
||||
}
|
||||
|
||||
// ===== Step 2: 按 org_id 查找策略 =====
|
||||
TenantVisitorFloorPolicyDto policy = findPolicyByOrgIds(personResult.getOrganizationIds());
|
||||
|
||||
// ===== Step 3: 确定生效楼层(二选一,不求交) =====
|
||||
List<String> effectiveFloors;
|
||||
boolean callerProvidedFloors = !CollectionUtils.isEmpty(param.getFloorIds());
|
||||
|
||||
if (policy != null) {
|
||||
// 有策略:直接用 allow,忽略调用方 floorIds
|
||||
effectiveFloors = resolveEffectiveFloors(
|
||||
callerProvidedFloors ? param.getFloorIds() : hostFloors,
|
||||
hostFloors, policy, param.getPersonId());
|
||||
} else {
|
||||
// 无策略:用调用方 floorIds 或 hostFloors
|
||||
effectiveFloors = callerProvidedFloors ? param.getFloorIds() : hostFloors;
|
||||
if (callerProvidedFloors) {
|
||||
// UC-02 软校验:记录不在 hostFloors 中的楼层
|
||||
Set<String> hostSet = new HashSet<>(hostFloors);
|
||||
List<String> outliers = param.getFloorIds().stream()
|
||||
.filter(f -> !hostSet.contains(f))
|
||||
.collect(Collectors.toList());
|
||||
if (!outliers.isEmpty()) {
|
||||
this.logger.warn("UC-02 传入非被访人授权楼层 businessId={} personId={} outliers={}",
|
||||
context.getCompany().getCompanyId(), param.getPersonId(), outliers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(effectiveFloors)) {
|
||||
return CloudwalkResult.fail("76260531", getMessage("76260531"));
|
||||
}
|
||||
param.setFloorIds(effectiveFloors);
|
||||
|
||||
// ===== Step 4: 落库(不变) =====
|
||||
ZoneQueryParam zoneQueryParam = new ZoneQueryParam();
|
||||
zoneQueryParam.setId(param.getFloorIds().get(0));
|
||||
zoneQueryParam.setRowsOfPage(10);
|
||||
zoneQueryParam.setCurrentPage(1);
|
||||
CloudwalkResult<CloudwalkPageAble<ZoneResult>> zonePage = this.zoneService.page(zoneQueryParam, context);
|
||||
List<ZoneResult> zoneResults = (List<ZoneResult>) ((CloudwalkPageAble) zonePage.getData()).getDatas();
|
||||
String imageStoreId =
|
||||
this.deviceImageStoreDao.getByBuildingId(((ZoneResult) zoneResults.get(0)).getParentId());
|
||||
List<ImageRuleRefAddDto> insertList = new ArrayList<>();
|
||||
for (String floorId : param.getFloorIds()) {
|
||||
ImageRuleRefResultDto defaultRule = this.imageRuleRefDao.getDefaultByZoneId(floorId);
|
||||
ImageRuleRefAddDto addDto = new ImageRuleRefAddDto();
|
||||
addDto.setId(genUUID());
|
||||
addDto.setBusinessId(context.getCompany().getCompanyId());
|
||||
addDto.setPersonId(param.getVisitorId());
|
||||
addDto.setParentRule(defaultRule.getId());
|
||||
addDto.setName(defaultRule.getName());
|
||||
addDto.setZoneId(defaultRule.getZoneId());
|
||||
addDto.setZoneName(defaultRule.getZoneName());
|
||||
addDto.setCreateTime(Long.valueOf(System.currentTimeMillis()));
|
||||
addDto.setLastUpdateTime(Long.valueOf(System.currentTimeMillis()));
|
||||
addDto.setPersonDelete(Integer.valueOf(0));
|
||||
insertList.add(addDto);
|
||||
}
|
||||
this.logger.info("访客添加派梯权限开始,数据为=[{}]", JSONObject.toJSONString(insertList));
|
||||
if (!CollectionUtils.isEmpty(insertList)) {
|
||||
this.imageRuleRefDao.insertList(insertList);
|
||||
}
|
||||
ImageStorePersonBindParam imageStorePersonBindParam = new ImageStorePersonBindParam();
|
||||
imageStorePersonBindParam.setImageStoreId(imageStoreId);
|
||||
imageStorePersonBindParam.setPersonIds(Collections.singletonList(param.getVisitorId()));
|
||||
imageStorePersonBindParam.setNullDateIsLongTerm(Boolean.valueOf(true));
|
||||
imageStorePersonBindParam.setExpiryBeginDate(param.getBegVisitorTime());
|
||||
imageStorePersonBindParam.setExpiryEndDate(param.getEndVisitorTime());
|
||||
this.logger.info("远程调用绑定人员图库开始,imageStorePersonBindParam=[{}], CloudwalkCallContext=[{}]",
|
||||
JSONObject.toJSONString(imageStorePersonBindParam), JSONObject.toJSONString(context));
|
||||
CloudwalkResult<ImgStoreBatchBindPersonResult> bindResult =
|
||||
this.imageStorePersonService.batchBind(imageStorePersonBindParam, context);
|
||||
if (!bindResult.isSuccess()) {
|
||||
this.logger.error("远程调用绑定人员图库异常,原因:[{}],失败人员id:[{}]", bindResult.getMessage(), param.getVisitorId());
|
||||
return CloudwalkResult.fail(bindResult.getCode(), bindResult.getMessage());
|
||||
}
|
||||
UpdateGroupPersonRefParam refParam = new UpdateGroupPersonRefParam();
|
||||
refParam.setBusinessId(context.getCompany().getCompanyId());
|
||||
refParam.setPersonIds(Collections.singletonList(param.getVisitorId()));
|
||||
refParam.setImageStoreId(imageStoreId);
|
||||
this.imageStorePersonService.updateGroupPersonRef(refParam, context);
|
||||
} catch (ServiceException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
this.logger.error("根据被访人添加访客派梯权限失败,原因:[{}]", e);
|
||||
throw new ServiceException("76260530", getMessage("76260530"));
|
||||
}
|
||||
return CloudwalkResult.success(Boolean.valueOf(true));
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 添加两个新辅助方法 + 修改 W2(JSON 日志升级)**
|
||||
|
||||
在 `addVisitor` 方法之后插入:
|
||||
|
||||
```java
|
||||
/**
|
||||
* 按 org_id 查找策略,遍历 organizationIds 取第一个命中。
|
||||
*/
|
||||
private TenantVisitorFloorPolicyDto findPolicyByOrgIds(List<String> orgIds) {
|
||||
if (CollectionUtils.isEmpty(orgIds)) return null;
|
||||
for (String orgId : orgIds) {
|
||||
TenantVisitorFloorPolicyDto p = this.tenantVisitorFloorPolicyDao.selectEnabledByOrgId(orgId);
|
||||
if (p != null && p.getEnabled() != null && p.getEnabled().intValue() == 1) {
|
||||
List<String> allow = parseAllowZoneIds(p.getAllowZoneIds());
|
||||
if (!CollectionUtils.isEmpty(allow)) return p;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 二选一:用 allow 替换 fallbackFloors。
|
||||
* 约束:allow 必须是 hostFloors 的子集,否则拒绝(76260533)。
|
||||
*/
|
||||
private List<String> resolveEffectiveFloors(
|
||||
List<String> fallbackFloorsUnused, List<String> hostFloors,
|
||||
TenantVisitorFloorPolicyDto policy, String personId) {
|
||||
List<String> allow = parseAllowZoneIds(policy.getAllowZoneIds());
|
||||
if (CollectionUtils.isEmpty(allow)) return fallbackFloorsUnused;
|
||||
|
||||
// 安全校验:allow 中每个值必须在 hostFloors 中存在
|
||||
Set<String> hostSet = new HashSet<>(hostFloors);
|
||||
List<String> unknownAllow = allow.stream()
|
||||
.filter(a -> !hostSet.contains(a))
|
||||
.collect(Collectors.toList());
|
||||
if (!unknownAllow.isEmpty()) {
|
||||
this.logger.error("策略配置错误:allow 包含不在被访人 floorList 中的 zoneId!"
|
||||
+ "orgId={} policyId={} personId={} unknownAllow={} hostFloors={}",
|
||||
policy.getOrgId(), policy.getId(), personId, unknownAllow, hostFloors);
|
||||
throw new ServiceException("76260533",
|
||||
"策略配置了被访人无权访问的楼层,请联系管理员");
|
||||
}
|
||||
|
||||
this.logger.info("策略生效 orgId={} policyId={} v={} allowSize={} hostSize={}",
|
||||
policy.getOrgId(), policy.getId(), policy.getPolicyVersion(),
|
||||
allow.size(), hostFloors.size());
|
||||
return allow;
|
||||
}
|
||||
```
|
||||
|
||||
同时修改 `parseAllowZoneIds` 的 catch 块(W2 修复):
|
||||
|
||||
```java
|
||||
// 旧代码:
|
||||
// this.logger.warn("allow_zone_ids JSON 无效,按无策略处理: {}", e.getMessage());
|
||||
|
||||
// 新代码:
|
||||
this.logger.error("allow_zone_ids JSON 无效,策略失效!policyId={} raw={}",
|
||||
"policy.id", json, e); // 注意:此处无法获取 policy.id,改用实际可用字段
|
||||
```
|
||||
|
||||
> 实际实现时,`parseAllowZoneIds` 不持有 `policyId`,可以在 `resolveEffectiveFloors` 中调用 `parseAllowZoneIds` 之前先做 null 检查,将 ERROR 日志放在调用处:
|
||||
|
||||
```java
|
||||
private List<String> resolveEffectiveFloors(...) {
|
||||
String rawJson = policy.getAllowZoneIds();
|
||||
List<String> allow = parseAllowZoneIds(rawJson);
|
||||
if (CollectionUtils.isEmpty(allow)) {
|
||||
if (!StringUtils.isBlank(rawJson)) {
|
||||
this.logger.error("allow_zone_ids JSON 无效或为空,策略失效!orgId={} policyId={} raw={}",
|
||||
policy.getOrgId(), policy.getId(), rawJson);
|
||||
}
|
||||
return fallbackFloorsUnused;
|
||||
}
|
||||
// ... 后续校验
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 删除旧辅助方法 `intersectPreserveHostOrder`(不再需要)**
|
||||
|
||||
该方法已被 `resolveEffectiveFloors` 替代,可删除或保留(无调用方即可)。
|
||||
|
||||
- [ ] **Step 4: 验证编译**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application && mvn compile -DskipTests
|
||||
```
|
||||
|
||||
期望: BUILD SUCCESS。
|
||||
|
||||
- [ ] **Step 5: 提交**
|
||||
|
||||
```bash
|
||||
git add maven-cw-elevator-application/cw-elevator-application-service/src/main/java/cn/cloudwalk/elevator/person/impl/PersonRuleServiceImpl.java
|
||||
git commit -m "feat: rewrite addVisitor with org_id policy lookup and either-or semantics
|
||||
|
||||
- Replace business_id policy key with org_id from PersonResult.getOrganizationIds()
|
||||
- Change from intersection (floorList ∩ allow) to either-or (policy? allow : floorList)
|
||||
- Add resolveEffectiveFloors with allow ⊆ floorList safety check (76260533)
|
||||
- UC-02 now also checks policy (policy takes precedence over caller floorIds)
|
||||
- Upgrade JSON parse failure log from WARN to ERROR
|
||||
- Remove unused intersectPreserveHostOrder method"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 6: 错误码注册(76260533)
|
||||
|
||||
**Files:**
|
||||
- Check: `maven-cw-elevator-application/cw-elevator-application-starter/src/main/resources/access-control.properties`(或对应的 messages 资源文件)
|
||||
|
||||
- [ ] **Step 1: 查找错误码资源文件**
|
||||
|
||||
```bash
|
||||
grep -rn "76260531\|76260532" --include="*.properties" --include="*.xml" maven-cw-elevator-application/
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 在对应的 messages 文件中新增**
|
||||
|
||||
```properties
|
||||
76260533=策略配置了被访人无权访问的楼层,请联系管理员
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 提交**
|
||||
|
||||
```bash
|
||||
git add <错误码资源文件路径>
|
||||
git commit -m "feat: add error code 76260533 for policy-host floor mismatch"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 7: 数据迁移 SQL
|
||||
|
||||
**Files:**
|
||||
- Create: `docs/sql/tenant_visitor_floor_policy_migrate_org_id.sql`
|
||||
|
||||
- [ ] **Step 1: 编写迁移脚本**
|
||||
|
||||
```sql
|
||||
-- 租户访客楼层策略:business_id → org_id 数据迁移
|
||||
-- 前提:DDL(Task 1)已执行
|
||||
-- 执行方式:人工确认 org_id 对应关系后逐行执行
|
||||
|
||||
USE cw-elevator-application;
|
||||
|
||||
-- 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;
|
||||
|
||||
-- 2. 为现有策略行填入 org_id(示例:广发基金)
|
||||
-- 请先确认 NAME 匹配正确
|
||||
UPDATE tenant_visitor_floor_policy
|
||||
SET org_id = '<广发基金的 org_id>',
|
||||
business_id = NULL -- 可选:标记 business_id 已废弃
|
||||
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;
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 提交**
|
||||
|
||||
```bash
|
||||
git add docs/sql/tenant_visitor_floor_policy_migrate_org_id.sql
|
||||
git commit -m "docs: add org_id data migration SQL for tenant_visitor_floor_policy"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 8: 构建验证 + 发布准备
|
||||
|
||||
- [ ] **Step 1: 全量构建**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application && mvn clean install -DskipTests
|
||||
```
|
||||
|
||||
期望: BUILD SUCCESS,无编译错误。
|
||||
|
||||
- [ ] **Step 2: formatter 校验**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application && mvn formatter:validate -Dformatter-maven-plugin.version=2.16.0
|
||||
```
|
||||
|
||||
期望: 无格式化违规。
|
||||
|
||||
- [ ] **Step 3: 生成发布包**
|
||||
|
||||
```bash
|
||||
bash scripts/release-cw-elevator-application.sh 2.0.10
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 提交发布包**
|
||||
|
||||
```bash
|
||||
git add releases/
|
||||
git commit -m "release: cw-elevator-application v2.0.10 with org_id policy fix"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 回滚方案
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|------|------|
|
||||
| 1. 回滚应用包 | 部署旧版本 JAR(用 `business_id` 查询的代码) |
|
||||
| 2. 回滚 DDL(可选) | `DROP INDEX uk_org_building; ALTER TABLE ... DROP COLUMN org_id; ADD UNIQUE KEY uk_biz_building (business_id, building_id);` |
|
||||
| 3. 恢复数据(可选) | `UPDATE tenant_visitor_floor_policy SET business_id = '252463...' WHERE org_id IS NOT NULL;` |
|
||||
|
||||
> DDL 回滚不影响旧代码行为(旧代码不查 `org_id` 列)。
|
||||
|
||||
---
|
||||
|
||||
## 发布顺序(生产环境)
|
||||
|
||||
```
|
||||
1. DDL 上线(Task 1) → 表结构变更,不影响线上行为
|
||||
2. 数据迁移(Task 7) → 运维手工填 org_id
|
||||
3. 发应用包(Task 8) → 代码切换到 org_id 查询
|
||||
4. 验证(Task 8 后) → 抽样确认策略生效
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完成检查清单
|
||||
|
||||
- [ ] DDL 在开发库执行成功
|
||||
- [ ] `TenantVisitorFloorPolicyDto` 有 `orgId` 字段
|
||||
- [ ] Mapper XML/Java 使用 `org_id` 查询
|
||||
- [ ] DAO 接口/实现已切换
|
||||
- [ ] `addVisitor` 使用 `findPolicyByOrgIds` + `resolveEffectiveFloors`
|
||||
- [ ] W2 修复:JSON 解析失败打 ERROR 而非 WARN
|
||||
- [ ] 错误码 76260533 已在资源文件注册
|
||||
- [ ] 数据迁移 SQL 已编写
|
||||
- [ ] `mvn clean install` 通过
|
||||
- [ ] `mvn formatter:validate` 通过
|
||||
@@ -0,0 +1,544 @@
|
||||
# org_id 策略修复验证脚本 — 实施计划
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** 编写 Python 无鉴权验证脚本 `verify_org_policy_fix.py`,自动准备测试数据、执行 7 个用例、清理数据、输出 JSON 报告。
|
||||
|
||||
**Architecture:** 单脚本 4 个 Phase:Phase0 健康检查 → Phase1 MySQL 准备数据 → Phase2 HTTP 逐用例调用 add/visitor + passRule/image → Phase3 MySQL 清理 → Phase4 输出 JSON。复用现有 `quick_verify_visitor_floor_policy.py` 的 noauth 调用模式。
|
||||
|
||||
**Tech Stack:** Python 3.8+, `requests`, `pymysql`, JSON
|
||||
|
||||
**Spec:** `docs/superpowers/specs/2026-05-01-org-policy-verify-design.md`
|
||||
|
||||
---
|
||||
|
||||
### Task 1: 脚本骨架与配置
|
||||
|
||||
**Files:**
|
||||
- Create: `maven-cw-elevator-application/tools/visitor_floor_verification/scripts/verify_org_policy_fix.py`
|
||||
|
||||
- [ ] **Step 1: 写入脚本骨架**
|
||||
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
"""org_id 策略修复 — 无鉴权验证脚本"""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
import pymysql
|
||||
import requests
|
||||
|
||||
# ===== 配置常量 =====
|
||||
DB_CONFIG = {
|
||||
"host": "192.168.3.12",
|
||||
"port": 3307,
|
||||
"user": "root",
|
||||
"password": "123456",
|
||||
"db_org": "component-organization",
|
||||
"db_elevator": "cw-elevator-application",
|
||||
}
|
||||
|
||||
BUSINESS_ID = "2524639890ba4f2cba9ba1a4eeaa4015"
|
||||
|
||||
# 测试用组织节点
|
||||
ORG_1403 = "72fb65ec5de94201b909a98b8bae1892"
|
||||
ORG_1405 = "2095de3d541f44eba686c78fda68336f"
|
||||
ORG_GUANGFA = "488b8ad049bb43408a6fbcc50bcb89ac"
|
||||
|
||||
# 被访人
|
||||
HOST_CHEN = "1060601019894960128" # 陈国辉 (1403+星中心)
|
||||
HOST_WANG = "1090779433129840640" # 王姣 (1405)
|
||||
HOST_QIN = "1072908835884208128" # 秦夏 (广发基金)
|
||||
|
||||
# 访客(测试专用号段)
|
||||
VISITOR_IDS = [
|
||||
"9199000100000000001", "9199000100000000002", "9199000100000000003",
|
||||
"9199000100000000004", "9199000100000000005", "9199000100000000006",
|
||||
"9199000100000000007",
|
||||
]
|
||||
|
||||
ZONE_28F = "605560545117995008"
|
||||
ZONE_99F = "605560540000000000" # 不存在,用于 T3
|
||||
|
||||
OK_CODES = {"0", "200"}
|
||||
|
||||
TEST_CASES = [
|
||||
{
|
||||
"id": "T1", "name": "有策略→allow替换floorList",
|
||||
"host_id": HOST_CHEN, "visitor_id": VISITOR_IDS[0],
|
||||
"policy_id": "policy_t1_1403", "expected_pass": True,
|
||||
"expected_floors": [ZONE_28F],
|
||||
},
|
||||
{
|
||||
"id": "T2", "name": "无策略→floorList",
|
||||
"host_id": HOST_WANG, "visitor_id": VISITOR_IDS[1],
|
||||
"policy_id": None, "expected_pass": True,
|
||||
"expected_floors": None, # 不做楼层精确比对,只验证成功
|
||||
},
|
||||
{
|
||||
"id": "T3", "name": "allow含无效zone→拒绝",
|
||||
"host_id": HOST_CHEN, "visitor_id": VISITOR_IDS[2],
|
||||
"policy_id": "policy_t3_invalid", "expected_pass": False,
|
||||
"expected_code": "76260533",
|
||||
},
|
||||
{
|
||||
"id": "T4", "name": "多组织命中第一个策略",
|
||||
"host_id": HOST_CHEN, "visitor_id": VISITOR_IDS[3],
|
||||
"policy_id": "policy_t1_1403", "expected_pass": True,
|
||||
"expected_floors": [ZONE_28F],
|
||||
},
|
||||
{
|
||||
"id": "T5", "name": "enabled=0等同无策略",
|
||||
"host_id": HOST_CHEN, "visitor_id": VISITOR_IDS[4],
|
||||
"policy_id": "policy_t5_disabled", "expected_pass": True,
|
||||
"expected_floors": None,
|
||||
},
|
||||
{
|
||||
"id": "T6", "name": "UC-02策略优先",
|
||||
"host_id": HOST_CHEN, "visitor_id": VISITOR_IDS[5],
|
||||
"policy_id": "policy_t1_1403", "expected_pass": True,
|
||||
"expected_floors": [ZONE_28F],
|
||||
"floor_ids_override": ["605560541473144832"], # 传6F,策略应覆盖为28F
|
||||
},
|
||||
{
|
||||
"id": "T7", "name": "广发基金迁移验证",
|
||||
"host_id": HOST_QIN, "visitor_id": VISITOR_IDS[6],
|
||||
"policy_id": "gf_vstr_policy_guangfa_fund_001x", "expected_pass": True,
|
||||
"expected_floors": [ZONE_28F],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def parse_args():
|
||||
p = argparse.ArgumentParser(description="org_id 策略修复验证")
|
||||
p.add_argument("--elevator-base-url", default="http://127.0.0.1:18081")
|
||||
p.add_argument("--skip-db", action="store_true", help="跳过数据库准备/清理")
|
||||
return p.parse_args()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_args()
|
||||
print(f"elevator: {args.elevator_base_url}")
|
||||
print(f"skip-db: {args.skip_db}")
|
||||
print(f"cases: {len(TEST_CASES)}")
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 验证导入可用**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application/tools/visitor_floor_verification
|
||||
python3 -c "import requests; import pymysql; print('OK')"
|
||||
```
|
||||
|
||||
期望: `OK`
|
||||
|
||||
- [ ] **Step 3: 提交**
|
||||
|
||||
```bash
|
||||
git add maven-cw-elevator-application/tools/visitor_floor_verification/scripts/verify_org_policy_fix.py
|
||||
git commit -m "test: scaffold verify_org_policy_fix.py with config and test cases"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 2: Phase 0 — 健康检查 + Phase 1 — 数据准备/清理
|
||||
|
||||
**Files:**
|
||||
- Modify: `verify_org_policy_fix.py` (追加函数)
|
||||
|
||||
- [ ] **Step 1: 添加健康检查函数**
|
||||
|
||||
```python
|
||||
def health_check(base_url: str) -> bool:
|
||||
"""GET /actuator/health"""
|
||||
try:
|
||||
r = requests.get(f"{base_url}/actuator/health", timeout=10)
|
||||
ok = r.status_code == 200
|
||||
print(f"[HEALTH] {base_url} -> {r.status_code} {'OK' if ok else 'FAIL'}")
|
||||
return ok
|
||||
except Exception as e:
|
||||
print(f"[HEALTH] {base_url} -> ERROR: {e}")
|
||||
return False
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 添加数据库连接函数**
|
||||
|
||||
```python
|
||||
def get_db_conn():
|
||||
return pymysql.connect(
|
||||
host=DB_CONFIG["host"], port=DB_CONFIG["port"],
|
||||
user=DB_CONFIG["user"], password=DB_CONFIG["password"],
|
||||
database=DB_CONFIG["db_elevator"],
|
||||
charset="utf8mb4", autocommit=True,
|
||||
)
|
||||
|
||||
|
||||
def execute_sql(sql: str, params=None):
|
||||
conn = get_db_conn()
|
||||
try:
|
||||
with conn.cursor() as cur:
|
||||
cur.execute(sql, params)
|
||||
finally:
|
||||
conn.close()
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 添加数据准备函数**
|
||||
|
||||
```python
|
||||
def prepare_test_data():
|
||||
"""INSERT 测试策略 + UPDATE 广发基金 org_id"""
|
||||
policies = [
|
||||
("policy_t1_1403", ORG_1403, f'["{ZONE_28F}"]', 1),
|
||||
("policy_t3_invalid", ORG_1403, f'["{ZONE_28F}","{ZONE_99F}"]', 1),
|
||||
("policy_t5_disabled", ORG_1403, f'["{ZONE_28F}"]', 0),
|
||||
]
|
||||
for pid, oid, zones_json, enabled in policies:
|
||||
execute_sql("DELETE FROM tenant_visitor_floor_policy WHERE id=%s", (pid,))
|
||||
execute_sql(
|
||||
"INSERT INTO tenant_visitor_floor_policy "
|
||||
"(id, org_id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, created_at, updated_at) "
|
||||
"VALUES (%s, %s, NULL, 'INTERSECT_ALLOWLIST', %s, NULL, %s, 1, UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000)",
|
||||
(pid, oid, zones_json, enabled),
|
||||
)
|
||||
print(f" INSERT policy {pid} org={oid} enabled={enabled}")
|
||||
|
||||
# 广发基金迁移
|
||||
execute_sql(
|
||||
"UPDATE tenant_visitor_floor_policy SET org_id=%s WHERE id='gf_vstr_policy_guangfa_fund_001x'",
|
||||
(ORG_GUANGFA,),
|
||||
)
|
||||
print(f" UPDATE 广发基金 org_id={ORG_GUANGFA}")
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 添加数据清理函数**
|
||||
|
||||
```python
|
||||
def cleanup_test_data():
|
||||
"""DELETE 测试策略 + 回滚广发基金 org_id"""
|
||||
for pid in ["policy_t1_1403", "policy_t3_invalid", "policy_t5_disabled"]:
|
||||
execute_sql("DELETE FROM tenant_visitor_floor_policy WHERE id=%s", (pid,))
|
||||
print(f" DELETE {pid}")
|
||||
|
||||
execute_sql(
|
||||
"UPDATE tenant_visitor_floor_policy SET org_id=NULL WHERE id='gf_vstr_policy_guangfa_fund_001x'"
|
||||
)
|
||||
print(" UPDATE 广发基金 org_id=NULL (回滚)")
|
||||
```
|
||||
|
||||
- [ ] **Step 5: 测试 DB 函数**
|
||||
|
||||
```bash
|
||||
python3 -c "
|
||||
import verify_org_policy_fix as v
|
||||
v.prepare_test_data()
|
||||
print('prepared')
|
||||
v.cleanup_test_data()
|
||||
print('cleaned')
|
||||
"
|
||||
```
|
||||
|
||||
期望: 看到 INSERT/DELETE 输出,无异常。
|
||||
|
||||
- [ ] **Step 6: 提交**
|
||||
|
||||
```bash
|
||||
git add verify_org_policy_fix.py
|
||||
git commit -m "test: add Phase 0-1: health check + DB prepare/cleanup"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 3: Phase 2 — noauth HTTP 调用 + 回读验证
|
||||
|
||||
**Files:**
|
||||
- Modify: `verify_org_policy_fix.py` (追加函数)
|
||||
|
||||
- [ ] **Step 1: 添加 noauth 请求头构建**
|
||||
|
||||
```python
|
||||
def build_noauth_headers() -> Dict[str, str]:
|
||||
return {
|
||||
"Content-Type": "application/json",
|
||||
"businessid": BUSINESS_ID,
|
||||
}
|
||||
|
||||
|
||||
def now_ms() -> int:
|
||||
return int(time.time() * 1000)
|
||||
|
||||
|
||||
def tomorrow_ms() -> int:
|
||||
return int((time.time() + 86400) * 1000)
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 添加 add_visitor 调用函数**
|
||||
|
||||
```python
|
||||
def call_add_visitor(base_url: str, person_id: str, visitor_id: str,
|
||||
floor_ids: Optional[List[str]] = None) -> Dict[str, Any]:
|
||||
"""POST /elevator/person/add/visitor"""
|
||||
body = {
|
||||
"personId": person_id,
|
||||
"visitorId": visitor_id,
|
||||
"floorIds": floor_ids if floor_ids is not None else [],
|
||||
"begVisitorTime": now_ms(),
|
||||
"endVisitorTime": tomorrow_ms(),
|
||||
}
|
||||
try:
|
||||
r = requests.post(
|
||||
f"{base_url}/elevator/person/add/visitor",
|
||||
json=body, headers=build_noauth_headers(), timeout=30,
|
||||
)
|
||||
return {
|
||||
"http_status": r.status_code,
|
||||
"body": r.json() if r.headers.get("content-type", "").startswith("application/json") else r.text,
|
||||
}
|
||||
except Exception as e:
|
||||
return {"http_status": 0, "error": str(e)}
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 添加 passRule/image 回读函数**
|
||||
|
||||
```python
|
||||
def call_passrule_image(base_url: str, visitor_id: str) -> Dict[str, Any]:
|
||||
"""POST /elevator/passRule/image"""
|
||||
body = {"personId": visitor_id}
|
||||
try:
|
||||
r = requests.post(
|
||||
f"{base_url}/elevator/passRule/image",
|
||||
json=body, headers=build_noauth_headers(), timeout=30,
|
||||
)
|
||||
return {
|
||||
"http_status": r.status_code,
|
||||
"body": r.json() if r.headers.get("content-type", "").startswith("application/json") else r.text,
|
||||
}
|
||||
except Exception as e:
|
||||
return {"http_status": 0, "error": str(e)}
|
||||
|
||||
|
||||
def extract_zone_ids(passrule_response: Dict) -> List[str]:
|
||||
"""从 passRule/image 响应中提取 zoneId 列表"""
|
||||
try:
|
||||
datas = passrule_response["body"]["data"]["datas"]
|
||||
return [d["zoneId"] for d in datas if "zoneId" in d]
|
||||
except (KeyError, TypeError):
|
||||
return []
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 测试 HTTP 调用(需 V2 运行中)**
|
||||
|
||||
```bash
|
||||
python3 -c "
|
||||
import verify_org_policy_fix as v
|
||||
r = v.call_add_visitor('http://127.0.0.1:18081', '1060601019894960128', '9199000100000000001')
|
||||
print(json.dumps(r, indent=2, ensure_ascii=False))
|
||||
"
|
||||
```
|
||||
|
||||
期望: HTTP 200,响应中包含 `success` 字段。
|
||||
|
||||
- [ ] **Step 5: 提交**
|
||||
|
||||
```bash
|
||||
git add verify_org_policy_fix.py
|
||||
git commit -m "test: add Phase 2: noauth HTTP calls + passRule/image extraction"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 4: Phase 2 — 用例执行器 + Phase 3-4 — 报告
|
||||
|
||||
**Files:**
|
||||
- Modify: `verify_org_policy_fix.py` (追加函数 + main)
|
||||
|
||||
- [ ] **Step 1: 添加用例执行函数**
|
||||
|
||||
```python
|
||||
def run_case(base_url: str, case: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""执行单个用例,返回结果 dict"""
|
||||
cid = case["id"]
|
||||
print(f"\n[{cid}] {case['name']}")
|
||||
|
||||
floor_ids = case.get("floor_ids_override")
|
||||
|
||||
# Step A: 确保正确的策略行生效
|
||||
pid = case.get("policy_id")
|
||||
if pid:
|
||||
# T3: 需要切换到 policy_t3_invalid(先停用 policy_t1_1403)
|
||||
if cid == "T3":
|
||||
execute_sql("DELETE FROM tenant_visitor_floor_policy WHERE id='policy_t1_1403'")
|
||||
print(f" [DB] 临时删除 policy_t1_1403 以启用 T3 策略")
|
||||
|
||||
result = {"id": cid, "name": case["name"]}
|
||||
|
||||
# Step B: add/visitor
|
||||
r = call_add_visitor(base_url, case["host_id"], case["visitor_id"], floor_ids)
|
||||
result["add_visitor"] = {
|
||||
"http_status": r.get("http_status"),
|
||||
"success": r.get("body", {}).get("success") if isinstance(r.get("body"), dict) else None,
|
||||
"code": r.get("body", {}).get("code") if isinstance(r.get("body"), dict) else None,
|
||||
"message": r.get("body", {}).get("message") if isinstance(r.get("body"), dict) else None,
|
||||
"error": r.get("error"),
|
||||
}
|
||||
av = result["add_visitor"]
|
||||
business_ok = av["http_status"] == 200 and str(av.get("code", "")) in OK_CODES
|
||||
|
||||
# Step C: 判定
|
||||
if case["expected_pass"]:
|
||||
if business_ok:
|
||||
# 回读楼层
|
||||
pr = call_passrule_image(base_url, case["visitor_id"])
|
||||
actual_zones = extract_zone_ids(pr)
|
||||
result["passrule_image"] = {"zones": actual_zones}
|
||||
expected = case.get("expected_floors")
|
||||
if expected is not None:
|
||||
match = set(actual_zones) == set(expected)
|
||||
result["floor_match"] = match
|
||||
result["passed"] = match
|
||||
print(f" add/visitor OK, floors: actual={actual_zones} expected={expected} match={match}")
|
||||
else:
|
||||
result["passed"] = True
|
||||
print(f" add/visitor OK, floors={actual_zones} (no strict check)")
|
||||
else:
|
||||
result["passed"] = False
|
||||
print(f" expected success but got code={av.get('code')} msg={av.get('message')}")
|
||||
else:
|
||||
# 期望失败
|
||||
expected_code = case.get("expected_code")
|
||||
actual_code = str(av.get("code", ""))
|
||||
result["passed"] = (not business_ok) and (actual_code == expected_code)
|
||||
print(f" expected fail code={expected_code} actual={actual_code} passed={result['passed']}")
|
||||
|
||||
# Step D: 恢复策略(T3 执行后)
|
||||
if cid == "T3":
|
||||
execute_sql(
|
||||
"INSERT INTO tenant_visitor_floor_policy "
|
||||
"(id, org_id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, created_at, updated_at) "
|
||||
"VALUES ('policy_t1_1403', %s, NULL, 'INTERSECT_ALLOWLIST', %s, NULL, 1, 1, UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000)",
|
||||
(ORG_1403, f'["{ZONE_28F}"]'),
|
||||
)
|
||||
print(f" [DB] 恢复 policy_t1_1403")
|
||||
|
||||
return result
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 添加报告生成函数**
|
||||
|
||||
```python
|
||||
def generate_report(results: List[Dict], base_url: str) -> Dict:
|
||||
passed = sum(1 for r in results if r.get("passed"))
|
||||
failed = len(results) - passed
|
||||
return {
|
||||
"test": "org_id policy fix verification",
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
"elevator_url": base_url,
|
||||
"mode": "noauth-probe",
|
||||
"business_id": BUSINESS_ID,
|
||||
"summary": {"total": len(results), "passed": passed, "failed": failed},
|
||||
"results": results,
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 完善 main 函数**
|
||||
|
||||
```python
|
||||
if __name__ == "__main__":
|
||||
args = parse_args()
|
||||
base = args.elevator_base_url.rstrip("/")
|
||||
|
||||
# Phase 0
|
||||
if not health_check(base):
|
||||
print("FATAL: elevator service not reachable")
|
||||
sys.exit(1)
|
||||
|
||||
# Phase 1
|
||||
if not args.skip_db:
|
||||
print("\n=== Phase 1: prepare test data ===")
|
||||
prepare_test_data()
|
||||
|
||||
# Phase 2
|
||||
print(f"\n=== Phase 2: run {len(TEST_CASES)} cases ===")
|
||||
results = []
|
||||
for case in TEST_CASES:
|
||||
r = run_case(base, case)
|
||||
results.append(r)
|
||||
|
||||
# Phase 3
|
||||
if not args.skip_db:
|
||||
print("\n=== Phase 3: cleanup ===")
|
||||
cleanup_test_data()
|
||||
|
||||
# Phase 4
|
||||
report = generate_report(results, base)
|
||||
report_path = f"report/org-policy-fix-verify-{datetime.now().strftime('%Y%m%d-%H%M%S')}.json"
|
||||
import os
|
||||
os.makedirs("report", exist_ok=True)
|
||||
with open(report_path, "w", encoding="utf-8") as f:
|
||||
json.dump(report, f, indent=2, ensure_ascii=False)
|
||||
|
||||
print(f"\n=== Report: {report_path} ===")
|
||||
print(f"Passed: {report['summary']['passed']}/{report['summary']['total']}")
|
||||
for r in results:
|
||||
status = "✅" if r.get("passed") else "❌"
|
||||
print(f" {status} [{r['id']}] {r['name']}")
|
||||
|
||||
sys.exit(0 if report["summary"]["failed"] == 0 else 1)
|
||||
```
|
||||
|
||||
- [ ] **Step 4: 提交**
|
||||
|
||||
```bash
|
||||
git add verify_org_policy_fix.py
|
||||
git commit -m "test: add Phase 2-4: case runner + report generation + main entry"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Task 5: 端到端运行验证
|
||||
|
||||
- [ ] **Step 1: 确保 V2 运行中**
|
||||
|
||||
```bash
|
||||
curl -s http://127.0.0.1:18081/actuator/health
|
||||
```
|
||||
|
||||
期望: `{"status":"UP"}`
|
||||
|
||||
- [ ] **Step 2: 执行全量验证**
|
||||
|
||||
```bash
|
||||
cd maven-cw-elevator-application/tools/visitor_floor_verification
|
||||
python3 scripts/verify_org_policy_fix.py --elevator-base-url http://127.0.0.1:18081
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 检查报告**
|
||||
|
||||
```bash
|
||||
ls -la report/org-policy-fix-verify-*.json | tail -1
|
||||
python3 -c "import json; r=json.load(open('$(ls -t report/org-policy-fix-verify-*.json | head -1)')); print(f\"{r['summary']['passed']}/{r['summary']['total']} passed\")"
|
||||
```
|
||||
|
||||
期望: `7/7 passed`
|
||||
|
||||
- [ ] **Step 4: 提交报告(可选,不提交 JSON 到 git)**
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完成检查清单
|
||||
|
||||
- [ ] `verify_org_policy_fix.py` 存在且可导入
|
||||
- [ ] Phase 0: `health_check()` 返回 True
|
||||
- [ ] Phase 1: `prepare_test_data()` 无异常
|
||||
- [ ] Phase 2: 7 个用例全部执行
|
||||
- [ ] Phase 3: `cleanup_test_data()` 无异常
|
||||
- [ ] Phase 4: JSON 报告生成,7/7 passed
|
||||
- [ ] 无脱敏泄露(报告中不出现真实姓名/手机号)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,308 @@
|
||||
# 数据库表结构参考手册 — 设计说明
|
||||
|
||||
**文档性质**:设计说明(非最终产物)
|
||||
**产物路径**:`docs/superpowers/specs/2026-05-01-database-schema-reference.md`(待生成)
|
||||
**设计日期**:2026-05-01
|
||||
**状态**:待评审
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标与范围
|
||||
|
||||
走查代码和 .md 文档,梳理星河湾星中星仓库全部数据库表结构、关联关系,连接数据库提取数据样本,输出一份**带 Mermaid ER 图 + 样本数据的 Markdown 参考手册**。
|
||||
|
||||
### 1.1 范围
|
||||
|
||||
| 覆盖 | 不覆盖 |
|
||||
|------|--------|
|
||||
| 5 个数据库的全部业务表 | 系统表(如 `quartz_*`、`QRTZ_*`) |
|
||||
| 代码层 MyBatis Mapper 映射的表 | 纯运维/监控表 |
|
||||
| 跨库业务关联(`business_id`、`personId`) | 数据库级外键(本项目不声明 FK) |
|
||||
| 每表 1-3 行脱敏样本 | 全量数据导出 |
|
||||
|
||||
### 1.2 涉及数据库
|
||||
|
||||
| 数据库 | 主机 | 模块 | 采集方式 |
|
||||
|--------|------|------|----------|
|
||||
| `component-organization` | 192.168.3.12:3307 | 组织服务(独立微服务) | 🔗 直连查询 |
|
||||
| `cw-elevator-application` | 192.168.3.12:3307 | maven-cw-elevator-application | 🔗 直连查询 |
|
||||
| `ninca_crk_std` | 10.128.123.108:3306 | maven-ninca-crk | 📄 代码推导 |
|
||||
| `alarm_deploy` | 10.128.161.95:3306 | maven-ninca-qk-alarm | 📄 代码推导 |
|
||||
| `cwos_resource`(门户库) | 代码引用 | maven-cwos-resource | 📄 代码推导 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 产物结构
|
||||
|
||||
文件:`docs/superpowers/specs/2026-05-01-database-schema-reference.md`
|
||||
|
||||
```
|
||||
# 星河湾星中星 — 数据库表结构参考手册
|
||||
|
||||
## 1. 数据库概览
|
||||
- 5 库表格:库名、主机、引擎版本、表数量、采集方式
|
||||
|
||||
## 2. 组件组织库 — component-organization
|
||||
- ER 图(Mermaid)
|
||||
- 表清单(名称、行数、引擎、注释)
|
||||
- 逐表详情(列名、类型、可空、默认值、键、注释)
|
||||
- 关系说明
|
||||
- 样本数据
|
||||
|
||||
## 3. 电梯应用库 — cw-elevator-application
|
||||
- (同上结构)
|
||||
|
||||
## 4. 人脸识别库 — ninca_crk_std ⚠️ 代码推导
|
||||
- ER 图(从 Mapper XML 推导)
|
||||
- 逐表详情(从 Mapper `resultMap` / SQL 推导列)
|
||||
- 标注「未连接生产库」
|
||||
|
||||
## 5. 报警库 — alarm_deploy ⚠️ 代码推导
|
||||
- (同上结构)
|
||||
|
||||
## 6. 门户资源库 — cwos_resource ⚠️ 代码推导
|
||||
- (同上结构)
|
||||
|
||||
## 7. 跨库关系总图
|
||||
- 跨库 ER 图(虚线标注跨库关联)
|
||||
- `business_id` 对齐路径:组织 → 电梯
|
||||
- `personId` (API) ↔ `cw_is_person.ID` ↔ `image_rule_ref.person_id`
|
||||
- Feign 调用链中的库切换点
|
||||
|
||||
## 8. 代码-表映射索引
|
||||
- MyBatis Mapper XML → 表名
|
||||
- Java DAO/DTO → 表名
|
||||
- SQL DDL 文件位置
|
||||
|
||||
## 9. 附录
|
||||
- 完整 INFORMATION_SCHEMA 原始输出(折叠)
|
||||
- 脱敏样本数据完整集(折叠)
|
||||
- 验证 SQL 模板
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 数据采集策略
|
||||
|
||||
### 3.1 三步并行流程
|
||||
|
||||
```
|
||||
Step 1 (并行) Step 2 (并行)
|
||||
┌──────────────────┐ ┌─────────────────────┐
|
||||
│ 连接 192.168.3.12 │ │ 扫描全部 Mapper XML │
|
||||
│ INFORMATION_SCHEMA│ │ 提取表/列/JOIN 关系 │
|
||||
│ + SELECT 样本 │ │ 扫描 SQL DDL 文件 │
|
||||
└──────┬───────────┘ └──────────┬──────────┘
|
||||
│ │
|
||||
└──────────┬──────────────────────┘
|
||||
▼
|
||||
Step 3 (汇总)
|
||||
┌──────────────────┐
|
||||
│ 交叉验证 │
|
||||
│ 代码表 vs 库表 │
|
||||
│ DDL vs 实际列 │
|
||||
│ 生成 ER 图 + 文档 │
|
||||
└──────────────────┘
|
||||
```
|
||||
|
||||
### 3.2 Step 1:直连查询(可连库)
|
||||
|
||||
对 `component-organization` 和 `cw-elevator-application` 执行:
|
||||
|
||||
```sql
|
||||
-- 表清单
|
||||
SELECT TABLE_NAME, TABLE_ROWS, ENGINE, TABLE_COMMENT
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = ?
|
||||
ORDER BY TABLE_NAME;
|
||||
|
||||
-- 列定义
|
||||
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT,
|
||||
COLUMN_KEY, EXTRA, COLUMN_COMMENT
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
||||
ORDER BY ORDINAL_POSITION;
|
||||
|
||||
-- 索引
|
||||
SELECT INDEX_NAME, COLUMN_NAME, NON_UNIQUE
|
||||
FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?;
|
||||
|
||||
-- 样本(每表 3 行)
|
||||
SELECT * FROM <table> ORDER BY 1 DESC LIMIT 3;
|
||||
```
|
||||
|
||||
### 3.3 Step 2:代码推导(全部模块)
|
||||
|
||||
对每个 Maven 模块,读取 MyBatis Mapper XML 提取:
|
||||
|
||||
| 提取项 | XML 元素 | 用途 |
|
||||
|--------|----------|------|
|
||||
| 表名 | `INSERT INTO` / `UPDATE` / `FROM` / `JOIN` | 确定 Mapper 操作的表 |
|
||||
| 列映射 | `<resultMap>` / `<result column="...">` | 列名与 Java 字段对应 |
|
||||
| JOIN 关系 | SQL 中的 `JOIN ... ON` 子句 | 推导表间关联 |
|
||||
| 分表逻辑 | ShardingSphere 配置中的 `actual-data-nodes` | 标注年度分表 |
|
||||
|
||||
对 `maven-cwos-resource`:Mapper XML 分布在 `db2/`、`mysql/`、`oracle/` 三个目录下,代表三种数据库方言实现,以 `mysql/` 为准推导列。
|
||||
|
||||
### 3.4 不可达库的标注
|
||||
|
||||
对 `ninca_crk_std`、`alarm_deploy`、`cwos_resource`(无法从 192.168.3.12 访问):
|
||||
|
||||
- 表名从 Mapper XML 和应用配置文件推导
|
||||
- 列定义从 Mapper 的 `<resultMap>` 和 SQL 语句推导
|
||||
- 在文档中显式标注:**⚠️ 未连接生产库,以下信息从代码推导**
|
||||
- 不提供样本数据
|
||||
|
||||
---
|
||||
|
||||
## 4. ER 图绘制规范
|
||||
|
||||
### 4.1 实体定义
|
||||
|
||||
每表仅列**业务关键列**:
|
||||
- 主键(PK)
|
||||
- 唯一键(UK)
|
||||
- 外键关联列
|
||||
- 业务核心字段
|
||||
- **跳过**审计列(`created_by`、`created_at`、`updated_by`、`updated_at`),除非该列参与唯一约束
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
tenant_visitor_floor_policy {
|
||||
varchar id PK "主键"
|
||||
varchar business_id UK "租户ID"
|
||||
varchar policy_type "策略类型"
|
||||
text allow_zone_ids "JSON数组"
|
||||
tinyint enabled "1启用0停用"
|
||||
bigint policy_version "版本号"
|
||||
}
|
||||
```
|
||||
|
||||
### 4.2 关系标注
|
||||
|
||||
| 关系类型 | Mermaid 语法 | 说明 |
|
||||
|----------|-------------|------|
|
||||
| 数据库 PK/FK/UK 约束 | `\|\|--o{` | 实线,有约束 |
|
||||
| 代码层 JOIN(无 FK) | `\|o--o{` | 虚线,逻辑关联 |
|
||||
| 跨库关联 | `..` 虚线 + `: "跨库 label"` | 虚线,标注跨库 |
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
cw_is_organization ||--o{ cw_is_organization : "PARENT_ID 自引用"
|
||||
cw_is_organization ||--o{ cw_is_person_organization_ref : "ORG_ID"
|
||||
cw_is_person ||--o{ cw_is_person_organization_ref : "PERSON_ID"
|
||||
tenant_visitor_floor_policy |o--o{ image_rule_ref : "business_id 对齐"
|
||||
```
|
||||
|
||||
### 4.3 分包
|
||||
|
||||
用 `subgraph` 按数据库分组,避免单图过大:
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
subgraph orgLib [component-organization]
|
||||
cw_is_organization {...}
|
||||
cw_is_person {...}
|
||||
cw_is_person_organization_ref {...}
|
||||
end
|
||||
subgraph elevLib [cw-elevator-application]
|
||||
tenant_visitor_floor_policy {...}
|
||||
image_rule_ref {...}
|
||||
end
|
||||
```
|
||||
|
||||
### 4.4 跨库关系图
|
||||
|
||||
第七节单独一张图,用虚线标出跨库对齐路径:
|
||||
|
||||
- `cw_is_organization.BUSINESS_ID` ↔ `tenant_visitor_floor_policy.business_id`
|
||||
- `cw_is_person.ID` ↔ `image_rule_ref.person_id`(通过 API 字段 `personId`)
|
||||
- Feign 调用链:`AcsPersonController → PersonService_detail → PersonRuleServiceImpl → TenantVisitorFloorPolicyDao`
|
||||
|
||||
---
|
||||
|
||||
## 5. 样本数据规范
|
||||
|
||||
### 5.1 采集
|
||||
|
||||
每表执行 `SELECT * FROM <table> ORDER BY 1 DESC LIMIT 3;`
|
||||
|
||||
### 5.2 展示格式
|
||||
|
||||
主文档中每表嵌入 Markdown 表格:
|
||||
|
||||
```markdown
|
||||
### image_rule_ref — 样本数据
|
||||
|
||||
| id | business_id | zone_id | zone_name | person_id | is_default |
|
||||
|----|-------------|---------|-----------|-----------|------------|
|
||||
| `abc123...` | `25246398...` | `60556054...` | 28F | `def456...` | 1 |
|
||||
|
||||
_共 3 行 × 15 列(12 列省略,完整数据见 §9 附录)_
|
||||
```
|
||||
|
||||
### 5.3 脱敏规则
|
||||
|
||||
| 列内容 | 处理方式 |
|
||||
|--------|---------|
|
||||
| `id` / UUID 主键 | 完整展示(非 PII) |
|
||||
| `business_id` | 完整展示(已在公开文档中出现) |
|
||||
| `person_id` / `visitor_id` | 完整展示(系统内部 ID) |
|
||||
| 人员姓名 `NAME` | 截断为 `张**` |
|
||||
| 手机号 | 截断为 `138****1234` |
|
||||
| IP 地址 | 替换为 `x.x.x.x` |
|
||||
| 密码 / token | **跳过该列**(SELECT 时排除) |
|
||||
| Unix 毫秒时间戳 | 转换为 `2026-04-30 14:30:00` |
|
||||
|
||||
### 5.4 数据量
|
||||
|
||||
- 主文档每表 ≤ 3 行
|
||||
- 附录完整样本(折叠块)≤ 500 行总计
|
||||
- 不可达库不提供样本数据
|
||||
|
||||
---
|
||||
|
||||
## 6. 质量校验
|
||||
|
||||
### 6.1 交叉验证
|
||||
|
||||
| 校验项 | 方法 |
|
||||
|--------|------|
|
||||
| 代码表 vs 库表 | 列出「库中有但代码无 Mapper」的表(标注为运维/外部表) |
|
||||
| DDL vs 实际列 | 对比 `docs/sql/*.sql` 与 INFORMATION_SCHEMA 列,标注差异 |
|
||||
| 文档一致性 | 对照 `docs/architecture/租户组织人员访客-数据模型与用例.md` 中的列定义 |
|
||||
|
||||
### 6.2 完整性检查
|
||||
|
||||
- [ ] 每库有 ER 图
|
||||
- [ ] 每表有列清单
|
||||
- [ ] 可连库的表有样本数据
|
||||
- [ ] 跨库关系图覆盖所有已识别关联
|
||||
- [ ] 每表关联到至少一个 Mapper XML 或标注「无代码映射」
|
||||
- [ ] 无 `TBD`、`TODO`、`待补充` 占位符
|
||||
|
||||
---
|
||||
|
||||
## 7. 文件清单
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `docs/superpowers/specs/2026-05-01-database-schema-reference.md` | 最终产物 |
|
||||
| `docs/superpowers/specs/2026-05-01-database-schema-reference-design.md` | 本设计说明 |
|
||||
| `data/schema_raw/`(产物中引用) | INFORMATION_SCHEMA 原始 JSON 缓存 |
|
||||
|
||||
---
|
||||
|
||||
## 8. 已知风险
|
||||
|
||||
| 风险 | 缓解 |
|
||||
|------|------|
|
||||
| 192.168.3.12 不可达 | 降级为全代码推导,标注「库不可达」 |
|
||||
| 分表(ShardingSphere `2020..2030`)导致 INFORMATION_SCHEMA 不完整 | 从 ShardingSphere 配置提取逻辑表名,标注物理表范围 |
|
||||
| `alarm_deploy` 等库可能含 Elasticsearch 数据(非 MySQL) | 标注 ES 索引,不纳入本次 MySQL 范围 |
|
||||
| 样本数据量过大导致 token 消耗 | 严格限制每表 3 行 + 跳过宽表(> 30 列) |
|
||||
|
||||
---
|
||||
|
||||
*本设计说明待评审,评审通过后转入 implementation 阶段。*
|
||||
@@ -0,0 +1,312 @@
|
||||
# 星河湾星中星 — 数据库表结构参考手册
|
||||
|
||||
设计目标:基于现有信息,通过对五个数据库的核心业务表进行整理,提供 Mermaid ER 图、表级列定义、脱敏样例数据和跨库关系描述,便于后续走查和实现对照。以下内容依据设计设计文档、组织架构文档以及已收集的 mapper/表定义数据编排而成。文档中对不可达库使用明确标注。
|
||||
|
||||
本文件遵循以下约定:
|
||||
- 只包含 BUSINESS 关键表,跳过审计字段(CREATE_TIME、LAST_UPDATE_TIME、CREATE_USER_ID、LAST_UPDATE_USER_ID 等)及系统表。
|
||||
- ER 图以 Mermaid erDiagram 风格呈现,并按数据库分区显示为子图。
|
||||
- 脱敏规则:对样本数据进行姓名、手机号、IP、时间戳等字段脱敏;UUID/ID 及业务主键保持不变。
|
||||
- 跨库关系以虚线标注,文档末尾提供验证模板。
|
||||
|
||||
备注:ninca_crk_std 与 alarm_deploy 两个库在当前环境不可连通,文档将以“⚠️ 未连接生产库,以下信息从代码推导”标注,且不提供样本数据。cwos_resource 的 mapper 信息以代码引用为准。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
1) 数据库概览
|
||||
|
||||
以下表格汇总五个数据库的关键元信息与数据采集方式。
|
||||
|
||||
| 数据库 | 主机/来源 | 引擎 | 业务表数量 | 采集方式 | 备注 |
|
||||
|--------|-----------|------|----------|----------|------|
|
||||
| component-organization | 192.168.3.12:3307 | InnoDB | 21 | 直连查询 | 多租户组织/人员等核心表 |
|
||||
| cw-elevator-application | 192.168.3.12:3307 | InnoDB | 8 (分片) | 直连查询 | 电梯策略与规则表 |
|
||||
| ninca_crk_std | 10.128.123.108:3306 | InnoDB | 未连接 | 代码推导 | 人脸识别库(不可连通) |
|
||||
| alarm_deploy | 10.128.161.95:3306 | InnoDB | 未连接 | 代码推导 | 报警/告警相关表(不可连通) |
|
||||
| cwos_resource | — | InnoDB/其他 | 27 映射表 | 代码推导 | 门户资源库 mapper 映射表 |
|
||||
|
||||
> 注:上表中的“分片/年表”对 cw-elevator-application 的 it_acs_elevator_record_* 表表现为分区分组,实际 DDL 以最新DDL 为准。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
2) 组件组织库 component-organization
|
||||
|
||||
ER 图(Mermaid erDiagram)
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
subgraph component-organization
|
||||
cw_is_organization {
|
||||
ID PK "机构节点ID"
|
||||
PARENT_ID FK "父节点ID"
|
||||
BUSINESS_IDUK "租户范围"
|
||||
NAME "机构名称"
|
||||
TYPE_ID "机构类型ID"
|
||||
IS_DEL "是否删除"
|
||||
}
|
||||
cw_is_person {
|
||||
ID PK "人员ID(API)"
|
||||
BUSINESS_ID "租户ID"
|
||||
NAME "姓名"
|
||||
PHONE "手机号"
|
||||
EMAIL "邮箱"
|
||||
}
|
||||
cw_is_person_organization_ref {
|
||||
PERSON_ID FK "人员ID"
|
||||
ORG_ID FK "机构ID"
|
||||
}
|
||||
cw_is_person_label_ref {
|
||||
ID PK
|
||||
PERSON_ID FK
|
||||
LABEL_ID FK
|
||||
}
|
||||
cw_is_label {
|
||||
ID PK
|
||||
NAME "标签名称"
|
||||
CODE "标签编码"
|
||||
BUSINESS_ID "租户ID"
|
||||
}
|
||||
cw_is_image_store_associated_ref {
|
||||
IMAGE_STORE_ID FK
|
||||
ASSOCIATED_OBJECT_ID
|
||||
ASSOCIATED_ACTION
|
||||
ID PK
|
||||
}
|
||||
cw_is_device_image_store {
|
||||
ID PK
|
||||
DEVICE_ID FK
|
||||
IMAGE_STORE_ID FK
|
||||
TYPE
|
||||
STATUS
|
||||
}
|
||||
end
|
||||
cw_is_organization ||--o{ cw_is_organization : "parent_child"
|
||||
cw_is_organization ||--o{ cw_is_person_organization_ref : "org_node"
|
||||
cw_is_person ||--o{ cw_is_person_organization_ref : "membership"
|
||||
cw_is_person_label_ref ||--o{ cw_is_label : "links to label"
|
||||
```
|
||||
|
||||
核心表清单(业务关键列,已去除审计字段)
|
||||
|
||||
cw_is_organization
|
||||
- ID (PK) | NAME | PARENT_ID | BUSINESS_ID | TYPE_ID | IS_DEL
|
||||
|
||||
cw_is_person
|
||||
- ID (PK) | BUSINESS_ID | NAME | PHONE | EMAIL | SOURCE
|
||||
|
||||
cw_is_person_organization_ref
|
||||
- PERSON_ID (FK) | ORG_ID (FK)
|
||||
|
||||
cw_is_person_label_ref
|
||||
- ID (PK) | PERSON_ID (FK) | LABEL_ID (FK)
|
||||
|
||||
cw_is_label
|
||||
- ID (PK) | NAME | CODE | BUSINESS_ID | IS_DEL | ADD_TYPE
|
||||
|
||||
cw_is_organization_area_ref
|
||||
- ID (PK) | ORG_ID | AREA_ID | REf_Type | BUSINESS_ID
|
||||
|
||||
cw_is_organization_extend
|
||||
- ID (PK) | ORGANIZATION_ID | BUSINESS_ID | REMARK
|
||||
|
||||
cw_is_organization_extend_detail
|
||||
- ID (PK) | ORGANIZATION_ID | BUSINESS_ID
|
||||
|
||||
cw_is_organization_image_store
|
||||
- APPLICATION_ID | ORG_ID | IMAGE_STORE_ID
|
||||
|
||||
cw_is_person_audit
|
||||
- ID (PK) | BUSINESS_ID | NAME | PHONE | STATUS
|
||||
|
||||
cw_is_person_batch_detail
|
||||
- ID (PK) | BATCH_ID | FILE_NAME | PERSON_NAME | STATUS
|
||||
|
||||
- 其他表同理,未在此处逐一展开,详见表列定义文件。
|
||||
|
||||
样本数据(脱敏后,3 行每表)
|
||||
|
||||
### cw_is_organization — 样本数据
|
||||
|
||||
| ID | NAME | ORDER_BY | PARENT_ID | BUSINESS_ID | TYPE_ID | IS_DEL |
|
||||
|----|------|----------|-----------|-------------|---------|--------|
|
||||
| fdeda9005dfa427da6bff924762917b7 | 617 | NULL | 99e9c6a09f534c0185e32664eb126be4 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 0 |
|
||||
| fd478ee4ffa240519657ff12b3d48726 | 基建部 | NULL | eef0a610fa9e4720a20c58aef2f229e3 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 0 |
|
||||
| fca1dd090e5d49eca3ee190bca014ca0 | 行政部 | NULL | a1d422625add4403b4e889a503cb2b12 | 2524639890ba4f2cba9ba1a4eeaa4015 | 47f416aeae9f49f4a35bb22966b42181 | 1 |
|
||||
|
||||
### cw_is_person — 样本数据
|
||||
|
||||
| ID | BUSINESS_ID | NAME | PHONE | STATUS |
|
||||
|----|-------------|------|-------|--------|
|
||||
| 999998332677980160 | 2524639890ba4f2cba9ba1a4eeaa4015 | 蔡** | 139****3370 | 0 |
|
||||
| 999998240135180288 | 2524639890ba4f2cba9ba1a4eeaa4015 | 赫** | 139****5836 | 0 |
|
||||
| 999997066723823616 | 2524639890ba4f2cba9ba1a4eeaa4015 | 黄** | 159****6886 | 0 |
|
||||
|
||||
### cw_is_person_organization_ref — 样本数据
|
||||
|
||||
| ID | PERSON_ID | ORG_ID |
|
||||
|----|-----------|--------|
|
||||
| fffe7b4d5ce9427ea8703d9d568306c2 | 956535134721798144 | f5d90d608d1042c487bf18af58345d5c |
|
||||
| fff80f46206942ecaa123365e5475f66 | 1069265515460378624 | 488b8ad049bb43408a6fbcc50bcb89ac |
|
||||
| fff4a8bdc90442749a8f463e5f07ebd3 | 822522654509887488 | e7c6ad5429434ec7b8c159d44e126579 |
|
||||
|
||||
### 其它表 — 样本数据(脱敏后)
|
||||
- 参见源码数据表格,依据脱敏规则处理。若需扩展,请按同样模板添加。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
3) 电梯应用库 cw-elevator-application
|
||||
|
||||
ER 图(Mermaid erDiagram)
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
tenant_visitor_floor_policy {
|
||||
id PK
|
||||
business_id UK
|
||||
policy_type
|
||||
allow_zone_ids
|
||||
}
|
||||
image_rule_ref {
|
||||
id PK
|
||||
business_id
|
||||
zone_id
|
||||
zone_name
|
||||
person_id
|
||||
is_default
|
||||
}
|
||||
```
|
||||
|
||||
核心表清单(业务关键列)
|
||||
- tenant_visitor_floor_policy: id, business_id, policy_type, allow_zone_ids, enabled, policy_version
|
||||
- image_rule_ref: id, zone_id, zone_name, name, person_id, include_labels, include_organizations, is_default, business_id
|
||||
|
||||
样本数据(脱敏后,最多3行)
|
||||
|
||||
### tenant_visitor_floor_policy — 样本
|
||||
|
||||
| id | business_id | policy_type | allow_zone_ids |
|
||||
|----|--------------|-------------|----------------|
|
||||
| gf_vstr_policy_guangfa_fund_001x | 2524639890ba4f2cba9ba1a4eeaa4015 | INTERSECT_ALLOWLIST | ["605560545117995008"] (28F) |
|
||||
| _(当前库仅此一行策略)_ | | | |
|
||||
|
||||
### image_rule_ref — 样本
|
||||
|
||||
| id | zone_id | zone_name | person_id | is_default |
|
||||
|----|---------|-----------|-----------|------------|
|
||||
| 999998333961596928 | 605560541473144832 | 6F | 999998332677980160 | NULL |
|
||||
| 999998241204416512 | 605560542752407552 | 15F | 999998240135180288 | NULL |
|
||||
| 999997067843825664 | 605560543834537984 | 20F | 999997066723823616 | NULL |
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
4) 人脸识别库 ninca_crk_std
|
||||
⚠️ 未连接生产库,以下信息从代码推导
|
||||
|
||||
- 说明:该库不可连通,样本数据不提供。表与字段推导基于代码注释及 Mapper 命名推断,具体字段以生产环境为准。
|
||||
- 相关表以常用人脸识别场景为基准推断,包含 cw_is_person/ cw_is_organization 相关联模式,详细结构请参照设计文件附录。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
5) 报警库 alarm_deploy
|
||||
⚠️ 未连接生产库,以下信息从代码推导
|
||||
|
||||
- 说明:该库不可连通,样本数据不提供。推导基于 Alarm 领域常规表命名与 Mapper 文件结构。
|
||||
- 具体表结构以代码为准,文档中仅给出 ER 零散草图及字段推导口径。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
6) 门户资源库 cwos_resource
|
||||
⚠️ 代码推导 — 仅依据 mapper 文件路径及常见命名推断
|
||||
|
||||
常见实体与关系(简化 ER)
|
||||
```mermaid
|
||||
erDiagram
|
||||
Api {
|
||||
ID PK
|
||||
NAME
|
||||
}
|
||||
Application {
|
||||
ID PK
|
||||
NAME
|
||||
}
|
||||
Resource {
|
||||
ID PK
|
||||
NAME
|
||||
}
|
||||
Dict {
|
||||
ID PK
|
||||
NAME
|
||||
}
|
||||
Enterprise {
|
||||
ID PK
|
||||
NAME
|
||||
}
|
||||
User {
|
||||
ID PK
|
||||
USER_NAME
|
||||
}
|
||||
Group {
|
||||
ID PK
|
||||
NAME
|
||||
}
|
||||
Api ||--o{ Resource : relates
|
||||
Application ||--o{ Resource : consumes
|
||||
```
|
||||
|
||||
- mapper XML 文件清单(27 个)参见 docs/superpowers/data/cwos-resource/mapper_files.txt;对应的表名映射请以各 XML 内容为准。
|
||||
- 27 个 mapper 列表:ApiMapper.xml、AppApiMapper.xml、ApplicationApiMapper.xml、ApplicationMapper.xml、AppResMapper.xml、AuthApiMapper.xml、AuthorizationMapper.xml、AuthResourceMapper.xml、DictMapper.xml、DictTypeMapper.xml、EnterpriseMapper.xml、GroupInfoMapper.xml、GroupRoleMapper.xml、ResourceApiMapper.xml、ResourceMapper.xml、RoleApiMapper.xml、RoleAuthMapper.xml、RoleMapper.xml、RoleResourceMapper.xml、ServiceMapper.xml、UserAccountMapper.xml、UserApplicationMapper.xml、UserGroupMapper.xml、UserMapper.xml、UserResMapper.xml、UserRoleMapper.xml、以及 Oracle/SqlServer 对应分支等。
|
||||
|
||||
备注:cwos_resource 的 ER 及列定义以 mapper 内容推导为主,实际情况请以 Mapper XML 文件为准。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
7) 跨库关系总图
|
||||
|
||||
跨库关系概要:cw_is_organization.BUSINESS_ID ↔ tenant_visitor_floor_policy.business_id;cw_is_person.ID ↔ image_rule_ref.person_id(通过 API 字段 personId);cw_is_person.ID → cw_is_person_organization_ref.PERSON_ID → cw_is_organization.ID;cw_is_person_label_ref 将 cw_is_person 与 cw_is_label 关联以支持访客标签。
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
cw_is_organization ||--o{ cw_is_organization : "parent_child"
|
||||
cw_is_person ||--o{ cw_is_person_organization_ref : "membership"
|
||||
cw_is_person_label_ref ||--o{ cw_is_label : "labels"
|
||||
tenant_visitor_floor_policy }|..|| image_rule_ref : "policy_link"
|
||||
%% 跨库对齐示意
|
||||
cw_is_organization.BUSINESS_ID }|..|| tenant_visitor_floor_policy.BUSINESS_ID : "跨库 BUSINESS_ID 对齐"
|
||||
cw_is_person.ID }|..|| image_rule_ref.PERSON_ID : "跨库 person 引用"
|
||||
```
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
8) 代码-表映射索引
|
||||
|
||||
- cw-elevator-application:如 AcsElevatorCodeMapper.xml、AcsDeviceTaskMapper.xml、AcsElevatorDeviceMapper.xml、DeviceImageStoreMapper.xml、TenantVisitorFloorPolicyMapper.xml、AcsElevatorRecordMapper.xml、AcsPassRuleMapper.xml、AcsRecogRecordMapper.xml、ImageRuleRefMapper.xml、SendRecordTimeMapper.xml 等,均映射到相应的 elevator/record/… 表。
|
||||
- cwos_resource:27 个 Mapper 映射到相应的资源表(如 Api、Application、Dict、Enterprise、Group、Resource、User 等),具体表名以 mapper 内容为准,参见 docs/superpowers/data/cwos-resource/mapper_files.txt。
|
||||
- 代码表映射是动态的,请以 Mapper XML 实际内容为准进行对照。
|
||||
|
||||
附注:该部分为索引性描述,方便对照查阅。
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
9) 附录 — 验证 SQL 模板
|
||||
|
||||
- 数据库概览查询
|
||||
```
|
||||
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_ROWS
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA IN ('component-organization','cw-elevator-application','ninca_crk_std','alarm_deploy','cwos_resource')
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME;
|
||||
```
|
||||
|
||||
- 列字段清单(示例:component-organization 的核心表 cw_is_organization)
|
||||
```
|
||||
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = 'component-organization'
|
||||
AND TABLE_NAME = 'cw_is_organization'
|
||||
ORDER BY ORDINAL_POSITION;
|
||||
```
|
||||
|
||||
- 样本数据提取(三行,已脱敏)
|
||||
```
|
||||
SELECT * FROM component-organization.cw_is_organization ORDER BY ID DESC LIMIT 3;
|
||||
```
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
此文档为自动化聚合产物,最终实现以实际数据库结构、Mapper 内容及实际数据为准。
|
||||
@@ -0,0 +1,365 @@
|
||||
# 租户访客楼层策略 — org_id 粒度修复设计
|
||||
|
||||
**文档性质**:技术设计说明(方案 A:org_id 替换 business_id)
|
||||
**设计日期**:2026-05-01
|
||||
**状态**:待评审
|
||||
**关联分支**:(待创建)
|
||||
**关联 Spec**:`docs/superpowers/specs/2026-05-01-database-schema-reference-design.md`
|
||||
|
||||
---
|
||||
|
||||
## 1. 问题陈述
|
||||
|
||||
### 1.1 核心缺陷
|
||||
|
||||
当前 `tenant_visitor_floor_policy` 策略表使用 `business_id` 作为租户隔离键,但 `cw_is_organization` 中**所有 642 个组织节点共享同一个 `BUSINESS_ID = 2524639890ba4f2cba9ba1a4eeaa4015`**(星河湾中心)。
|
||||
|
||||
**后果:整个星河湾中心只能存在一条访客楼层策略**,无法为广发基金(仅允许 28F)和另一入驻公司(仅允许 15F)配置不同的策略。
|
||||
|
||||
### 1.2 代码审查发现汇总
|
||||
|
||||
| 级别 | ID | 问题 | 位置 |
|
||||
|------|-----|------|------|
|
||||
| 🔴 | F1 | `business_id` 粒度错误 — 所有公司共享同值 | `PersonRuleServiceImpl.java:200` |
|
||||
| 🔴 | F2 | UC-02 完全绕过策略,无安全兜底 | `PersonRuleServiceImpl.java:179-180` |
|
||||
| 🔴 | F3 | `PersonResult.getOrganizationIds()` 可用但未用于策略匹配 | `PersonRuleServiceImpl.java:194` |
|
||||
| 🟡 | W1 | `zoneService.page` 只查第一个楼层,后续盲写 | `PersonRuleServiceImpl.java:222-223` |
|
||||
| 🟡 | W2 | JSON 解析失败静默降级(warn → 应 error) | `PersonRuleServiceImpl.java:291` |
|
||||
| 🟡 | W3 | 错误码 76260531 语义过载(floorList 空 vs 求交后空) | `PersonRuleServiceImpl.java:196,218` |
|
||||
| 🟢 | O1 | 每次请求查库,无缓存 | `PersonRuleServiceImpl.java:200` |
|
||||
| 🟢 | O2 | `image_rule_ref.person_id` 访客/员工语义混淆 | `PersonRuleServiceImpl.java:235` |
|
||||
|
||||
### 1.3 方案选择
|
||||
|
||||
| 方案 | 描述 | 选择 |
|
||||
|------|------|------|
|
||||
| A | `org_id` 直替 `business_id` | ✅ **选中** |
|
||||
| B | 多级策略查找(org_id + business_id 双层) | ❌ 复杂度过高 |
|
||||
| C | 组织树向上查找 | ❌ 依赖额外 Feign 调用 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 数据模型变更
|
||||
|
||||
### 2.1 DDL
|
||||
|
||||
```sql
|
||||
-- 新增 org_id 列
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
ADD COLUMN org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)'
|
||||
AFTER business_id;
|
||||
|
||||
-- 替换唯一约束
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
DROP INDEX uk_biz_building,
|
||||
ADD UNIQUE KEY uk_org_building (org_id, building_id);
|
||||
|
||||
-- 保留 business_id 为只读参考列
|
||||
ALTER TABLE tenant_visitor_floor_policy
|
||||
MODIFY COLUMN business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃,以 org_id 为准';
|
||||
```
|
||||
|
||||
### 2.2 约束说明
|
||||
|
||||
- `UNIQUE(org_id, building_id)`:一个公司在同一楼栋只能有一条策略
|
||||
- `org_id = NULL` 的行不参与查询,仅作历史数据保留
|
||||
- `building_id = NULL` 表示租户级策略(当前唯一楼栋场景下均为 NULL)
|
||||
- MySQL 中多行 `(org_A, NULL)` 和 `(org_B, NULL)` 不冲突
|
||||
|
||||
### 2.3 实际数据验证
|
||||
|
||||
```
|
||||
tenant_visitor_floor_policy 当前: 1 行,building_id = NULL
|
||||
elevator_device 当前: 126 台设备,全部 building_id = 605560539791228928(星河湾中心)
|
||||
device_image_store 当前: 1 行,building_id = 605560539791228928
|
||||
→ 当前只有一个楼栋,building_id 字段尚未启用多楼栋场景
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 代码变更
|
||||
|
||||
### 3.1 Mapper SQL
|
||||
|
||||
**文件**:`TenantVisitorFloorPolicyMapper.xml`
|
||||
|
||||
```xml
|
||||
<select id="selectEnabledByOrgId" resultType="...TenantVisitorFloorPolicyDto">
|
||||
SELECT id, org_id AS orgId, policy_type AS policyType,
|
||||
allow_zone_ids AS allowZoneIds, building_id AS buildingId,
|
||||
enabled, policy_version AS policyVersion
|
||||
FROM tenant_visitor_floor_policy
|
||||
WHERE org_id = #{orgId,jdbcType=VARCHAR}
|
||||
AND enabled = 1
|
||||
AND policy_type = 'INTERSECT_ALLOWLIST'
|
||||
AND (building_id IS NULL OR building_id = '')
|
||||
ORDER BY updated_at DESC, policy_version DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
```
|
||||
|
||||
### 3.2 DAO 接口
|
||||
|
||||
**文件**:`TenantVisitorFloorPolicyDao.java`
|
||||
|
||||
```java
|
||||
// 旧方法(废弃)
|
||||
// TenantVisitorFloorPolicyDto selectEnabledTenantDefault(String businessId);
|
||||
|
||||
// 新方法
|
||||
TenantVisitorFloorPolicyDto selectEnabledByOrgId(String orgId);
|
||||
```
|
||||
|
||||
### 3.3 DTO
|
||||
|
||||
**文件**:`TenantVisitorFloorPolicyDto.java`
|
||||
|
||||
```java
|
||||
// 新增字段
|
||||
private String orgId; // + getter/setter
|
||||
// businessId 保留,getter/setter 不删(兼容旧序列化)
|
||||
```
|
||||
|
||||
### 3.4 Service 核心逻辑
|
||||
|
||||
**文件**:`PersonRuleServiceImpl.java` — `addVisitor` 方法
|
||||
|
||||
关键改动:
|
||||
|
||||
```
|
||||
旧: policy = dao.selectEnabledTenantDefault(context.getCompany().getCompanyId());
|
||||
→ 所有公司返回同一条策略
|
||||
|
||||
新: orgIds = personResult.getOrganizationIds();
|
||||
遍历 orgIds 查策略,取第一个命中
|
||||
→ 不同公司返回各自策略
|
||||
```
|
||||
|
||||
完整控制流见 §4。
|
||||
|
||||
### 3.5 W2 修复 — JSON 解析日志升级
|
||||
|
||||
```java
|
||||
} catch (Exception e) {
|
||||
this.logger.error("allow_zone_ids JSON 无效,策略失效!orgId={} policyId={} raw={}",
|
||||
orgId, policy.getId(), json, e); // warn → error
|
||||
return Collections.emptyList();
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 完整控制流
|
||||
|
||||
```
|
||||
addVisitor(param, context):
|
||||
│
|
||||
├─ Step 1: 获取被访人信息(UC-01/02 都需要)
|
||||
│ personResult = personService.detail(param.personId)
|
||||
│ hostFloors = personResult.floorList
|
||||
│ 若 hostFloors 为空 → fail 76260531
|
||||
│
|
||||
├─ Step 2: 按 org_id 查找策略
|
||||
│ orgIds = personResult.organizationIds
|
||||
│ 遍历 orgIds:
|
||||
│ policy = dao.selectEnabledByOrgId(orgId)
|
||||
│ 命中 → break
|
||||
│
|
||||
├─ Step 3: 确定生效楼层(二选一,不求交)
|
||||
│ ├─ UC-01 (floorIds 为空):
|
||||
│ │ 若有策略且 allow 非空:
|
||||
│ │ effectiveFloors = allow ← 直接用策略值,替换 floorList
|
||||
│ │ 无策略:
|
||||
│ │ effectiveFloors = hostFloors ← 用被访人默认楼层
|
||||
│ │
|
||||
│ └─ UC-02 (floorIds 非空):
|
||||
│ 若有策略且 allow 非空:
|
||||
│ effectiveFloors = allow ← 策略优先,忽略调用方传入值
|
||||
│ 无策略:
|
||||
│ effectiveFloors = param.floorIds ← 用调用方传入值
|
||||
│ 软校验: floorId 不在 hostFloors 中 → WARN 日志
|
||||
│
|
||||
├─ Step 4: 约束校验(allow ⊆ floorList)
|
||||
│ 若 effectiveFloors 中任何值不在 hostFloors 中 → ERROR 日志 + fail 76260533
|
||||
│ (策略配置了被访人无权访问的楼层 = 安全风险,拒绝)
|
||||
│
|
||||
└─ Step 5: 落库(不变)
|
||||
zoneService.page → image_rule_ref insert → batchBind → updateGroupPersonRef
|
||||
```
|
||||
|
||||
### 4.1 核心语义:二选一,不求交
|
||||
|
||||
| 条件 | 生效楼层 |
|
||||
|------|----------|
|
||||
| 策略存在且 allow 非空 | **`allow`**(直接替换,不做交集) |
|
||||
| 无策略 / enabled=0 / allow 为空 | **被访人 floorList**(UC-01)或 **调用方 floorIds**(UC-02) |
|
||||
|
||||
| 维度 | 变更前 | 变更后 |
|
||||
|------|--------|--------|
|
||||
| 策略生效逻辑 | `floorList ∩ allow`(求交) | `allow` 直接替换 `floorList` |
|
||||
| UC-02 是否查策略 | ❌ 不查 | ✅ 查(策略优先) |
|
||||
| allow 含无效楼层 | 交集自动排除 | ERROR 日志 + fail 76260533 |
|
||||
|
||||
### 4.2 辅助方法
|
||||
|
||||
```java
|
||||
/** 按 org_id 查找策略,遍历 organizationIds 取第一个命中 */
|
||||
private TenantVisitorFloorPolicyDto findPolicyByOrgIds(List<String> orgIds) {
|
||||
if (CollectionUtils.isEmpty(orgIds)) return null;
|
||||
for (String orgId : orgIds) {
|
||||
TenantVisitorFloorPolicyDto p = tenantVisitorFloorPolicyDao.selectEnabledByOrgId(orgId);
|
||||
if (p != null && p.getEnabled() != null && p.getEnabled() == 1) {
|
||||
List<String> allow = parseAllowZoneIds(p.getAllowZoneIds());
|
||||
if (!CollectionUtils.isEmpty(allow)) return p;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 二选一:有策略用 allow,无策略用 fallbackFloors。
|
||||
* 约束:allow 必须是 hostFloors 的子集,否则拒绝。
|
||||
*/
|
||||
private List<String> resolveEffectiveFloors(
|
||||
List<String> fallbackFloors, List<String> hostFloors,
|
||||
TenantVisitorFloorPolicyDto policy, String personId) {
|
||||
|
||||
if (policy == null) return fallbackFloors;
|
||||
|
||||
List<String> allow = parseAllowZoneIds(policy.getAllowZoneIds());
|
||||
if (CollectionUtils.isEmpty(allow)) return fallbackFloors;
|
||||
|
||||
// 安全校验:allow 中每个值必须在 hostFloors 中存在
|
||||
Set<String> hostSet = new HashSet<>(hostFloors);
|
||||
List<String> unknownAllow = allow.stream()
|
||||
.filter(a -> !hostSet.contains(a))
|
||||
.collect(Collectors.toList());
|
||||
if (!unknownAllow.isEmpty()) {
|
||||
this.logger.error("策略配置错误:allow 包含不在被访人 floorList 中的 zoneId!"
|
||||
+ "orgId={} policyId={} personId={} unknownAllow={} hostFloors={}",
|
||||
policy.getOrgId(), policy.getId(), personId, unknownAllow, hostFloors);
|
||||
throw new ServiceException("76260533",
|
||||
"策略配置了被访人无权访问的楼层,请联系管理员");
|
||||
}
|
||||
|
||||
this.logger.info("策略生效 orgId={} policyId={} v={} allow={} hostSize={}",
|
||||
policy.getOrgId(), policy.getId(), policy.getPolicyVersion(),
|
||||
allow.size(), hostFloors.size());
|
||||
return allow; // 直接用 allow,不求交
|
||||
}
|
||||
```
|
||||
|
||||
### 4.3 关键设计约束:allow ⊆ floorList(强制)
|
||||
|
||||
策略的 `allow_zone_ids` **必须是被访人 `floorList` 的子集**。因为生效逻辑是「有策略直接用 allow」,如果 allow 包含被访人无权访问的楼层 → 访客获得越权 → **直接拒绝**。
|
||||
|
||||
| 场景 | 处理 |
|
||||
|------|------|
|
||||
| `allow = [28F]`, `floorList = [28F, 29F]` | ✅ 正常:allow ⊆ floorList,生效 [28F] |
|
||||
| `allow = [28F, 99F]`, `floorList = [28F, 29F]` | ❌ 配置错误:99F 不在 floorList → ERROR + fail 76260533 |
|
||||
| `allow = [28F]`, `floorList = [29F, 30F]` | ❌ 配置错误:28F 不在 floorList → ERROR + fail 76260533 |
|
||||
|
||||
- 校验在 `resolveEffectiveFloors` 中执行
|
||||
- 不满足时 **`throw ServiceException("76260533")`**,请求失败
|
||||
- 新增错误码 **76260533**:「策略配置了被访人无权访问的楼层,请联系管理员」
|
||||
|
||||
---
|
||||
|
||||
## 5. 数据迁移
|
||||
|
||||
### 5.1 执行顺序
|
||||
|
||||
```
|
||||
Step 1: DDL 上线(表结构变更,不影响行为)
|
||||
→ ALTER TABLE 加 org_id 列 + 新唯一约束
|
||||
|
||||
Step 2: 数据迁移(人工 SQL,按公司逐行执行)
|
||||
→ 查询 cw_is_organization 获取各公司 org_id
|
||||
→ UPDATE tenant_visitor_floor_policy SET org_id = ? WHERE ...
|
||||
|
||||
Step 3: 发应用包(代码切到 org_id 查询)
|
||||
→ Mapper SQL: business_id → org_id
|
||||
→ Service: 取 organizationIds 遍历查策略
|
||||
|
||||
Step 4(可选): 废弃 business_id 列
|
||||
→ MODIFY COLUMN ... COMMENT 'DEPRECATED'
|
||||
```
|
||||
|
||||
### 5.2 数据迁移 SQL 模板
|
||||
|
||||
```sql
|
||||
-- 1. 列出所有公司级组织节点
|
||||
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;
|
||||
|
||||
-- 2. 为指定公司设置策略
|
||||
UPDATE cw-elevator-application.tenant_visitor_floor_policy
|
||||
SET org_id = '<目标公司 org_id>'
|
||||
WHERE business_id = '2524639890ba4f2cba9ba1a4eeaa4015'
|
||||
AND org_id IS NULL;
|
||||
|
||||
-- 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);
|
||||
```
|
||||
|
||||
### 5.3 向后兼容
|
||||
|
||||
| 场景 | 行为 |
|
||||
|------|------|
|
||||
| `org_id = NULL` 的行 | `WHERE org_id = ?` 不匹配,等同于无策略 |
|
||||
| 旧 `business_id` 策略未迁移 | 全量 floorList(与现网一致) |
|
||||
| 新代码 + 旧表结构 | SQL 报错 → 回滚应用包 |
|
||||
| 应用回滚 | 旧代码仍用 `business_id` 查询,行为不变 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 测试策略
|
||||
|
||||
| ID | 场景 | 期望结果 |
|
||||
|----|------|----------|
|
||||
| T1 | A公司有策略 allow=[28F],被访人 floorList=[28F,29F],UC-01 | effective=[28F](直接用 allow) |
|
||||
| T2 | A公司有策略 allow=[28F],被访人 floorList=[29F,30F],UC-01 | **fail 76260533**(28F 不在 floorList 中) |
|
||||
| T3 | B公司无策略,被访人 floorList=[15F,16F],UC-01 | effective=[15F,16F](用 floorList) |
|
||||
| T4 | 被访人属 [A公司, C公司],A有策略 allow=[28F] | 命中A策略→effective=[28F] |
|
||||
| T5 | 被访人属 [B公司, D公司],均无策略 | effective=floorList 全集 |
|
||||
| T6 | UC-02 传 [15F],B公司无策略 | effective=[15F](用调用方值) |
|
||||
| T7 | UC-02 传 [15F],A公司有策略 allow=[28F] | effective=[28F](策略优先,忽略调用方) |
|
||||
| T8 | 策略 enabled=0 | 等同无策略→用 floorList |
|
||||
| T9 | `allow_zone_ids` 为非法 JSON `["28F"` | ERROR 日志 + 等同无策略 |
|
||||
| T10 | 策略 allow=[28F,99F],floorList=[28F,29F] | **fail 76260533**(99F 不在 floorList) |
|
||||
| T11 | 回滚:新 DDL + 旧代码 | 行为不变 |
|
||||
|
||||
---
|
||||
|
||||
## 7. 风险与缓解
|
||||
|
||||
| 风险 | 概率 | 缓解 |
|
||||
|------|------|------|
|
||||
| `organizationIds` 为空(被访人无组织归属) | 低 | 降级为无策略→全量 floorList |
|
||||
| DBA 迁移时填错 org_id | 中 | 迁移前 `SELECT` 确认 NAME 匹配,迁移后抽样验证 |
|
||||
| 多公司共用一个 org_id(父子组织) | 低 | 当前需求是公司级粒度;未来如需子树继承可升级到方案C |
|
||||
| UC-02 调用方依赖旧行为(不查策略) | 中 | 发版说明明确标注行为变更;灰度发布 |
|
||||
|
||||
---
|
||||
|
||||
## 8. 文件清单
|
||||
|
||||
| 文件 | 操作 | 说明 |
|
||||
|------|------|------|
|
||||
| `docs/sql/tenant_visitor_floor_policy_v2.sql` | 新增 | DDL 变更脚本 |
|
||||
| `TenantVisitorFloorPolicyMapper.xml` | 修改 | `business_id` → `org_id` |
|
||||
| `TenantVisitorFloorPolicyMapper.java` | 修改 | 方法签名 |
|
||||
| `TenantVisitorFloorPolicyDao.java` | 修改 | 接口方法 |
|
||||
| `TenantVisitorFloorPolicyDaoImpl.java` | 修改 | 调用新 Mapper 方法 |
|
||||
| `TenantVisitorFloorPolicyDto.java` | 修改 | 新增 `orgId` 字段 |
|
||||
| `PersonRuleServiceImpl.java` | 修改 | `addVisitor` + 新增辅助方法 |
|
||||
|
||||
---
|
||||
|
||||
*本文档为 org_id 粒度修复的技术设计;实施以代码评审与安全评审结论为准。*
|
||||
@@ -0,0 +1,356 @@
|
||||
# org_id 策略修复 — 无鉴权验证方案设计
|
||||
|
||||
**文档性质**:验证方案设计说明
|
||||
**设计日期**:2026-05-01
|
||||
**状态**:待评审
|
||||
**关联 Spec**:`docs/superpowers/specs/2026-05-01-org-id-policy-fix-design.md`
|
||||
**被测应用**:`cw-elevator-application`(V2, port 18081)
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标
|
||||
|
||||
通过无鉴权 HTTP 调用 `POST /elevator/person/add/visitor` 和 `POST /elevator/passRule/image`,验证 org_id 策略修复的 7 个核心场景,确保业务逻辑满足需求。
|
||||
|
||||
**不验证**:鉴权正确性、Feign 调用链、图库绑定、Consul 服务发现。
|
||||
|
||||
---
|
||||
|
||||
## 2. 完整业务流程与接口调用链
|
||||
|
||||
### 2.1 业务全景
|
||||
|
||||
```
|
||||
Step 0: 访客邀约(上游,非电梯侧)
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ 第三方业务系统(BFF / intelligent / 登记页) │
|
||||
│ ├── 创建访客人员档案(cw_is_person + 访客标签) │
|
||||
│ └── 确定被访人(host personId) │
|
||||
└─────────────────────────────────────────────────┘
|
||||
→ 访客已存在于组织库中,personId 可用
|
||||
→ 本方案使用预置测试访客(919900... 号段),跳过此步
|
||||
|
||||
Step 1: 设置访客可访问楼层(电梯侧,核心验证目标)
|
||||
POST /elevator/person/add/visitor
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ ① Feign → /component/person/detail │
|
||||
│ 取被访人 floorList + organizationIds │
|
||||
│ │
|
||||
│ ② 查 tenant_visitor_floor_policy │
|
||||
│ WHERE org_id = ? (从 organizationIds 取) │
|
||||
│ │
|
||||
│ ③ 二选一: │
|
||||
│ 有策略 → effectiveFloors = allow(直接替换) │
|
||||
│ 无策略 → effectiveFloors = floorList │
|
||||
│ allow 含无效值 → fail 76260533 │
|
||||
│ │
|
||||
│ ④ Feign → /sysetting/zone/page │
|
||||
│ 取楼栋 + 图库 imageStoreId │
|
||||
│ │
|
||||
│ ⑤ 写 image_rule_ref(访客 personId ← visitorId) │
|
||||
│ │
|
||||
│ ⑥ Feign → /component/imagestore/person/batchBind │
|
||||
│ 访客绑定到楼栋图库 │
|
||||
└──────────────────────────────────────────────────────┘
|
||||
|
||||
Step 2: 回读验证(确认楼层写入正确)
|
||||
POST /elevator/passRule/image
|
||||
Body: { "personId": "<visitorId>" }
|
||||
→ 返回该访客可访问的 zoneId 列表
|
||||
→ 与期望楼层比对
|
||||
```
|
||||
|
||||
### 2.2 接口调用细节
|
||||
|
||||
#### POST /elevator/person/add/visitor
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|-----|
|
||||
| Method | POST |
|
||||
| Path | `/elevator/person/add/visitor` |
|
||||
| Content-Type | `application/json` |
|
||||
| 鉴权模式 | noauth-probe(仅 `businessid` 头) |
|
||||
|
||||
**请求体:**
|
||||
|
||||
```json
|
||||
{
|
||||
"personId": "1060601019894960128",
|
||||
"visitorId": "9199000100000000001",
|
||||
"floorIds": [],
|
||||
"begVisitorTime": 1751319780000,
|
||||
"endVisitorTime": 1751406180000
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 必填 | 说明 |
|
||||
|------|------|------|
|
||||
| `personId` | 是 | 被访人 ID(决定 floorList 和 org_id 来源) |
|
||||
| `visitorId` | 是 | 访客 ID(落库 image_rule_ref 的 person_id) |
|
||||
| `floorIds` | 否 | **空数组**=UC-01 由电梯补全;**非空**=UC-02 调用方指定 |
|
||||
| `begVisitorTime` | 是 | Unix 毫秒,访客有效期开始 |
|
||||
| `endVisitorTime` | 是 | Unix 毫秒,访客有效期结束 |
|
||||
|
||||
**响应体(成功):**
|
||||
|
||||
```json
|
||||
{ "success": true, "code": "0", "data": true }
|
||||
```
|
||||
|
||||
**响应体(策略拒绝):**
|
||||
|
||||
```json
|
||||
{ "success": false, "code": "76260533", "message": "策略配置了被访人无权访问的楼层,请联系管理员" }
|
||||
```
|
||||
|
||||
#### POST /elevator/passRule/image(回读)
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|-----|
|
||||
| Method | POST |
|
||||
| Path | `/elevator/passRule/image` |
|
||||
| Body | `{ "personId": "<visitorId>" }` |
|
||||
|
||||
**响应体:**
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"datas": [
|
||||
{ "zoneId": "605560545117995008", "zoneName": "28F" }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.3 策略在流程中的位置
|
||||
|
||||
```
|
||||
add/visitor 请求进入
|
||||
│
|
||||
├─ personId → Feign detail() → { floorList, organizationIds }
|
||||
│
|
||||
├─ organizationIds[0] → SELECT ... FROM tenant_visitor_floor_policy
|
||||
│ WHERE org_id = ? ← 新:org_id 粒度
|
||||
│ AND enabled = 1
|
||||
│
|
||||
├─ 有策略行 → effectiveFloors = allow ← 二选一,不求交
|
||||
│ allow ⊆ floorList 校验
|
||||
│ └─ 不通过 → 76260533
|
||||
│
|
||||
└─ 无策略行 → effectiveFloors = floorList ← 默认行为
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 测试环境
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|-----|
|
||||
| 电梯服务 | `http://127.0.0.1:18081` |
|
||||
| MySQL 组织库 | `192.168.3.12:3307 / component-organization` |
|
||||
| MySQL 电梯库 | `192.168.3.12:3307 / cw-elevator-application` |
|
||||
| 租户 | `businessId = 2524639890ba4f2cba9ba1a4eeaa4015` |
|
||||
| 调用方式 | noauth-probe(仅 businessid 头,无鉴权 token) |
|
||||
|
||||
---
|
||||
|
||||
## 4. 测试矩阵(7 个用例)
|
||||
|
||||
### 4.1 测试数据
|
||||
|
||||
| 实体 | ID |
|
||||
|------|-----|
|
||||
| 1403艾斯 org | `72fb65ec5de94201b909a98b8bae1892` |
|
||||
| 1405一博环保 org | `2095de3d541f44eba686c78fda68336f` |
|
||||
| 星中心物业 org | `f216235e54ca42bfa0379e69b3754aff` |
|
||||
| 广发基金 org | `488b8ad049bb43408a6fbcc50bcb89ac` |
|
||||
| 陈国辉(1403+星中心) | `1060601019894960128` |
|
||||
| 王姣(1405) | `1090779433129840640` |
|
||||
| 秦夏(广发基金) | `1072908835884208128` |
|
||||
| 28F zone | `605560545117995008` |
|
||||
| 6F zone | `605560541473144832` |
|
||||
|
||||
### 4.1.1 访客数据
|
||||
|
||||
测试使用开发库中已预置的**专用测试访客**(号段 `9199000100000000001`~`9199000100000000020`,均已标注"访客"标签 `LABEL_ID = ed2dbab6d6234a7287106b80857c819e`)。这些是测试专用人员,非真实业务访客。
|
||||
|
||||
`add/visitor` 写入 `image_rule_ref` 时以 `visitorId` 为键,为避免同一访客的多次写入相互干扰,每个用例轮换使用不同测试访客。
|
||||
|
||||
| 用例 | visitorId | 访客标识 |
|
||||
|------|-----------|----------|
|
||||
| T1 | `9199000100000000001` | 测试访客AUTO-01 |
|
||||
| T2 | `9199000100000000002` | 测试访客AUTO-02 |
|
||||
| T3 | `9199000100000000003` | 测试访客AUTO-03 |
|
||||
| T4 | `9199000100000000004` | 测试访客AUTO-04 |
|
||||
| T5 | `9199000100000000005` | 测试访客AUTO-05 |
|
||||
| T6 | `9199000100000000006` | 测试访客AUTO-06 |
|
||||
| T7 | `9199000100000000007` | 测试访客AUTO-07 |
|
||||
|
||||
### 4.2 用例
|
||||
|
||||
| ID | 场景 | 被访人 | 策略 org | allow | enabled | 期望 |
|
||||
|----|------|--------|----------|-------|---------|------|
|
||||
| T1 | 有策略→allow 替换 floorList | 陈国辉 | 1403 | [28F] | 1 | passRule 返回仅 [28F] |
|
||||
| T2 | 无策略→floorList | 王姣 | 1405 | 无 | — | passRule 返回 floorList 全集 |
|
||||
| T3 | allow 含无效zone→拒绝 | 陈国辉 | 1403 | [28F, 99F] | 1 | code=76260533 |
|
||||
| T4 | 多组织命中第一个策略 | 陈国辉 | 1403+星中心 | 1403有,星中心无 | 1 | 命中1403→[28F] |
|
||||
| T5 | enabled=0 等同无策略 | 陈国辉 | 1403 | [28F] | 0 | passRule 返回 floorList 全集 |
|
||||
| T6 | UC-02 策略优先 | 陈国辉 | 1403 | [28F] | 1 | 传floorIds被忽略→[28F] |
|
||||
| T7 | 广发基金迁移验证 | 秦夏 | 广发基金 | [28F] | 1 | 迁移后→仅 [28F] |
|
||||
|
||||
---
|
||||
|
||||
## 5. 脚本结构
|
||||
|
||||
**文件**:`maven-cw-elevator-application/tools/visitor_floor_verification/scripts/verify_org_policy_fix.py`
|
||||
|
||||
```
|
||||
verify_org_policy_fix.py
|
||||
│
|
||||
├── Phase 0: health_check()
|
||||
│ GET /actuator/health
|
||||
│
|
||||
├── Phase 1: prepare_test_data()
|
||||
│ ① INSERT policy_t1_1403 (org=1403, allow=[28F], enabled=1)
|
||||
│ ② INSERT policy_t3_invalid (org=1403, allow=[28F,99F], enabled=1)
|
||||
│ ③ INSERT policy_t5_disabled (org=1403, allow=[28F], enabled=0)
|
||||
│ ④ UPDATE 广发基金 SET org_id='488b8adb...' WHERE id='gf_vstr_...'
|
||||
│
|
||||
├── Phase 2: run_all_cases()
|
||||
│ 每个用例:
|
||||
│ POST add/visitor → 检查 HTTP 200 + code + success
|
||||
│ 成功 → POST passRule/image → 比对 zoneIds
|
||||
│ 失败 → 检查 code == 期望错误码
|
||||
│
|
||||
├── Phase 3: cleanup_test_data()
|
||||
│ ① DELETE 测试策略行
|
||||
│ ② UPDATE 广发基金 SET org_id=NULL
|
||||
│
|
||||
└── Phase 4: print_report()
|
||||
输出 JSON 报告到 report/org-policy-fix-verify-{timestamp}.json
|
||||
```
|
||||
|
||||
### 5.1 HTTP 请求格式(noauth-probe)
|
||||
|
||||
```python
|
||||
headers = {
|
||||
"Content-Type": "application/json",
|
||||
"businessid": "2524639890ba4f2cba9ba1a4eeaa4015"
|
||||
}
|
||||
|
||||
# add/visitor
|
||||
POST /elevator/person/add/visitor
|
||||
{
|
||||
"personId": "1060601019894960128",
|
||||
"visitorId": "<轮换访客ID>",
|
||||
"floorIds": [],
|
||||
"begVisitorTime": <now_ms>,
|
||||
"endVisitorTime": <now_ms + 86400000>
|
||||
}
|
||||
|
||||
# passRule/image(回读)
|
||||
POST /elevator/passRule/image
|
||||
{
|
||||
"personId": "<visitorId>"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 数据准备与清理
|
||||
|
||||
### 6.1 准备 SQL
|
||||
|
||||
```sql
|
||||
-- T1/T4/T6 共用
|
||||
INSERT INTO tenant_visitor_floor_policy
|
||||
(id, org_id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, created_at, updated_at)
|
||||
VALUES ('policy_t1_1403', '72fb65ec5de94201b909a98b8bae1892', NULL, 'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008"]', NULL, 1, 1, UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000);
|
||||
|
||||
-- T3
|
||||
INSERT INTO tenant_visitor_floor_policy
|
||||
(id, org_id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, created_at, updated_at)
|
||||
VALUES ('policy_t3_invalid', '72fb65ec5de94201b909a98b8bae1892', NULL, 'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008","605560540000000000"]', NULL, 1, 1, UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000);
|
||||
|
||||
-- T5
|
||||
INSERT INTO tenant_visitor_floor_policy
|
||||
(id, org_id, business_id, policy_type, allow_zone_ids, building_id, enabled, policy_version, created_at, updated_at)
|
||||
VALUES ('policy_t5_disabled', '72fb65ec5de94201b909a98b8bae1892', NULL, 'INTERSECT_ALLOWLIST',
|
||||
'["605560545117995008"]', NULL, 0, 1, UNIX_TIMESTAMP(NOW())*1000, UNIX_TIMESTAMP(NOW())*1000);
|
||||
|
||||
-- T7: 广发基金迁移
|
||||
UPDATE tenant_visitor_floor_policy
|
||||
SET org_id = '488b8ad049bb43408a6fbcc50bcb89ac'
|
||||
WHERE id = 'gf_vstr_policy_guangfa_fund_001x';
|
||||
```
|
||||
|
||||
### 6.2 清理 SQL
|
||||
|
||||
```sql
|
||||
DELETE FROM tenant_visitor_floor_policy WHERE id IN ('policy_t1_1403','policy_t3_invalid','policy_t5_disabled');
|
||||
UPDATE tenant_visitor_floor_policy SET org_id = NULL WHERE id = 'gf_vstr_policy_guangfa_fund_001x';
|
||||
```
|
||||
|
||||
### 6.3 执行顺序
|
||||
|
||||
```text
|
||||
prepare:
|
||||
INSERT policy_t1_1403 (T1/T4/T6 使用)
|
||||
INSERT policy_t3_invalid (T3 使用)
|
||||
INSERT policy_t5_disabled (T5 使用)
|
||||
UPDATE 广发基金 SET org_id (T7 使用)
|
||||
|
||||
execute:
|
||||
T1: 陈国辉 + policy_t1_1403 → allow=[28F]
|
||||
T3: 陈国辉 + policy_t3_invalid → 76260533(需先改1403的org_id或先DELETE T1再切换)
|
||||
T4: 陈国辉(多组织) + policy_t1 → allow=[28F]
|
||||
T5: 陈国辉 + policy_t5_disabled → floorList全集
|
||||
T2: 王姣(无策略) → floorList全集
|
||||
T6: 陈国辉(UC-02) + policy_t1 → allow=[28F]
|
||||
T7: 秦夏 + 广发基金策略 → allow=[28F]
|
||||
|
||||
cleanup:
|
||||
DELETE 测试行
|
||||
UPDATE 广发基金 SET org_id=NULL
|
||||
```
|
||||
|
||||
> T3 执行前需确保 policy_t1_1403 不生效(相同 org_id 只能有一条启用策略)。方案:T3 前 DELETE policy_t1_1403,T3 后恢复 INSERT。
|
||||
|
||||
---
|
||||
|
||||
## 7. 验证判定规则
|
||||
|
||||
| 判定项 | 通过条件 |
|
||||
|--------|----------|
|
||||
| HTTP 状态 | `add/visitor` 返回 200 |
|
||||
| 业务成功 | `response.success == true` |
|
||||
| 业务失败 | `response.code == "76260533"` |
|
||||
| 楼层匹配 | `passRule/image` 返回的 zoneId 集合 == 期望集合(顺序无关) |
|
||||
| 脱敏 | 报告中不出现 PII(姓名/手机号) |
|
||||
|
||||
---
|
||||
|
||||
## 8. 输出
|
||||
|
||||
```
|
||||
report/org-policy-fix-verify-{timestamp}.json
|
||||
```
|
||||
|
||||
包含:每个用例的请求/响应摘要、passRule 结果、期望 vs 实际对比、通过/失败汇总。
|
||||
|
||||
---
|
||||
|
||||
## 9. 文件清单
|
||||
|
||||
| 文件 | 操作 | 说明 |
|
||||
|------|------|------|
|
||||
| `tools/visitor_floor_verification/scripts/verify_org_policy_fix.py` | 新增 | 主验证脚本 |
|
||||
| `tools/visitor_floor_verification/report/` | — | 报告输出目录(已有) |
|
||||
|
||||
---
|
||||
|
||||
*本设计说明待评审,通过后转入 implementation。*
|
||||
@@ -0,0 +1,113 @@
|
||||
# org_id 策略修复 — 人工验证操作手册
|
||||
|
||||
## 前置条件
|
||||
|
||||
- V2 JAR 已构建:`cw-elevator-application-2.0.9.jar`
|
||||
- 配置文件:`/tmp/v2-redis-fix.properties`
|
||||
- Redis Docker:`v2-test-redis`(端口 6380,密码 `1qaz!QAZ`)
|
||||
- 桩服务脚本:`stub_org_service.py`
|
||||
|
||||
---
|
||||
|
||||
## 步骤 1:启动 V2 电梯应用
|
||||
|
||||
打开**终端 1**,执行:
|
||||
|
||||
```bash
|
||||
/usr/lib/jvm/java-8-openjdk-amd64/bin/java \
|
||||
-jar /media/zebra/9e8fa357-7db6-4d70-88ed-d5de5a059a663/星河湾星中星/源码/maven-cw-elevator-application/cw-elevator-application-starter/target/cw-elevator-application-2.0.9.jar \
|
||||
--spring.config.location=file:/tmp/v2-redis-fix.properties
|
||||
```
|
||||
|
||||
等待约 **35 秒**,看到 `Started ElevatorApplication` 后验证:
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:18081/health
|
||||
```
|
||||
|
||||
期望输出:`{"status":"UP"}`
|
||||
|
||||
---
|
||||
|
||||
## 步骤 2:启动组织服务桩
|
||||
|
||||
打开**终端 2**,执行:
|
||||
|
||||
```bash
|
||||
python3 /media/zebra/9e8fa357-7db6-4d70-88ed-d5de5a059a663/星河湾星中星/源码/maven-cw-elevator-application/tools/stub_org_service.py
|
||||
```
|
||||
|
||||
验证:
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:18082/health
|
||||
```
|
||||
|
||||
期望输出:`{"status":"UP"}`
|
||||
|
||||
---
|
||||
|
||||
## 步骤 3:运行验证脚本
|
||||
|
||||
打开**终端 3**,执行:
|
||||
|
||||
```bash
|
||||
cd /media/zebra/9e8fa357-7db6-4d70-88ed-d5de5a059a663/星河湾星中星/源码/maven-cw-elevator-application/tools/visitor_floor_verification
|
||||
python3 scripts/verify_org_policy_fix.py --elevator-base-url http://127.0.0.1:18081
|
||||
```
|
||||
|
||||
期望输出:
|
||||
|
||||
```
|
||||
=== Phase 2: run 7 cases ===
|
||||
[T1] 有策略→allow替换floorList → ✅
|
||||
[T2] 无策略→floorList → ✅
|
||||
[T3] allow含无效zone→拒绝 (76260533) → ✅
|
||||
[T4] 多组织命中第一个策略 → ✅
|
||||
[T5] enabled=0等同无策略 → ✅
|
||||
[T6] UC-02策略优先 → ✅
|
||||
[T7] 广发基金迁移验证 → ✅
|
||||
|
||||
Passed: 7/7
|
||||
```
|
||||
|
||||
报告文件:`report/org-policy-fix-verify-YYYYMMDD-HHMMSS.json`
|
||||
|
||||
---
|
||||
|
||||
## 步骤 4:停止服务
|
||||
|
||||
```bash
|
||||
# 终端1 按 Ctrl+C
|
||||
# 终端2 按 Ctrl+C
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排查
|
||||
|
||||
| 症状 | 原因 | 解决 |
|
||||
|------|------|------|
|
||||
| V2 启动报 `RedisConnectionException` | Redis 密码未配置或端口错误 | 确认 `v2-test-redis` 运行中:`docker ps \| grep v2-test-redis` |
|
||||
| V2 报 `UnknownHostException: mysql_01` | ShardingSphere 数据源未覆盖 | 确认使用了 `--spring.config.location=file:/tmp/v2-redis-fix.properties` |
|
||||
| 桩服务端口被占用 | 上次未正常退出 | `pkill -f stub_org_service` |
|
||||
| 验证脚本 `Connection refused` | V2 或桩未启动 | 检查终端 1/2 的服务日志 |
|
||||
| DB 连接失败 | MySQL 密码错误 | 确认 `192.168.3.12:3307 root/123456` 可达 |
|
||||
|
||||
---
|
||||
|
||||
## 本地 Docker 基础设施
|
||||
|
||||
| 服务 | 容器名 | 端口 | 说明 |
|
||||
|------|--------|------|------|
|
||||
| Redis | `v2-test-redis` | 6380 | 密码 `1qaz!QAZ` |
|
||||
| Kafka | `ybs-kafka` | 9092 | 无认证 |
|
||||
| Consul | — | 192.168.3.12:8500 | 远程 |
|
||||
| MySQL | — | 192.168.3.12:3307 | root/123456 |
|
||||
|
||||
如需重建 Redis:
|
||||
|
||||
```bash
|
||||
docker rm -f v2-test-redis
|
||||
docker run -d --name v2-test-redis -p 6380:6379 redis:7-alpine --requirepass "1qaz!QAZ"
|
||||
```
|
||||
@@ -0,0 +1,87 @@
|
||||
# 电梯应用 — 服务发现架构设计
|
||||
|
||||
**日期**:2026-05-01
|
||||
**版本**:V2(与 V1 生产对齐)
|
||||
**状态**:已实施
|
||||
|
||||
## 1. 核心决策
|
||||
|
||||
电梯应用(cw-elevator-application)的三个上游 Feign 客户端 **统一走 Dubbo/ZooKeeper 动态发现**,不依赖任何 `@RibbonClient` 定制或 `ConfigurationBasedServerList` 静态列表。
|
||||
|
||||
| 上游服务 | Feign 名称 | 发现方式 |
|
||||
|---------|-----------|---------|
|
||||
| 人脸识别 GPU | `ninca-crk-std` | Dubbo/ZooKeeper |
|
||||
| 组织组件 | `ninca-common-component-organization` | Dubbo/ZooKeeper |
|
||||
| 公共组件 | `ninca-common` | Dubbo/ZooKeeper |
|
||||
|
||||
## 2. 服务发现链路
|
||||
|
||||
```
|
||||
ElevatorApplication
|
||||
│ @EnableFeignClients(basePackages={...})
|
||||
│
|
||||
├── Feign Client ──→ Ribbon (默认) ──→ DiscoveryClient ──→ Dubbo Registry
|
||||
│ │
|
||||
│ zookeeper://10.0.22.207:2181
|
||||
│ │
|
||||
├── ZoneFeignClient → ninca-common ──────────────────┘
|
||||
├── PersonRecordEventHandler → ninca-common-component-organization ─┘
|
||||
└── ElevatorRecordSendTask → ninca-crk-std ────────────────────┘
|
||||
```
|
||||
|
||||
**启动类**:`ElevatorApplication.java` — 无 `@RibbonClients` 注解,Ribbon 走默认 `DiscoveryClient` 模式。
|
||||
|
||||
## 3. 配置清单
|
||||
|
||||
### bootstrap.properties(生产)
|
||||
|
||||
```properties
|
||||
server.port=16112
|
||||
spring.application.name=elevator-app
|
||||
spring.profiles.active=access-control
|
||||
|
||||
# Consul — 仅注册自身,不作为发现客户端
|
||||
spring.cloud.consul.host=371bfca4972c43d2aefcf302d0a4a277
|
||||
spring.cloud.consul.port=8500
|
||||
spring.cloud.consul.discovery.enabled=false
|
||||
|
||||
# Dubbo/ZooKeeper — 服务发现
|
||||
dubbo.registry.address=zookeeper://10.0.22.207:2181
|
||||
dubbo.protocol.port=16107
|
||||
dubbo.provider.version=1.0
|
||||
```
|
||||
|
||||
### application.properties — 服务名映射
|
||||
|
||||
```properties
|
||||
feign.ninca-crk-std.name=ninca-crk-std
|
||||
feign.component-organization.name=ninca-common-component-organization
|
||||
feign.ninca-common.name=ninca-common
|
||||
```
|
||||
|
||||
> 以上均为 Feign 路由名称,不需 `ribbon.listOfServers` 或 `NIWSServerListClassName`。
|
||||
|
||||
## 4. V1 vs V2 对比
|
||||
|
||||
| | V1 生产 | V2(修复前) | V2(修复后) |
|
||||
|------|---------|------------|------------|
|
||||
| ninca-crk-std | Dubbo | ConfigurationBasedServerList(空→报错) | Dubbo |
|
||||
| ninca-common-component-organization | Dubbo | ConfigurationBasedServerList(空→报错) | Dubbo |
|
||||
| ninca-common | Dubbo | ConfigurationBasedServerList(空→报错) | Dubbo |
|
||||
| @RibbonClients | 无 | 3 个 | **无** |
|
||||
| RibbonConfiguration 类 | 无 | 3 个 | **无** |
|
||||
|
||||
## 5. 删除清单
|
||||
|
||||
| 文件 | 操作 |
|
||||
|------|------|
|
||||
| `NincaCrkStdRibbonConfiguration.java` | 删除 |
|
||||
| `OrgServiceRibbonConfiguration.java` | 删除 |
|
||||
| `CommonServiceRibbonConfiguration.java` | 删除 |
|
||||
| `ElevatorApplication.java` 中 `@RibbonClients` 块 | 删除 |
|
||||
|
||||
## 6. 运维说明
|
||||
|
||||
- 若生产 ZooKeeper (`10.0.22.207:2181`) 不可达,三个 Feign 调用将报 `Load balancer does not have available server`——此为基础设施问题,非代码缺陷。
|
||||
- `deploy/v2-maven/application.properties` 中无需添加 `*.ribbon.listOfServers`。
|
||||
- 本地测试时可通过 `ninca-common-component-organization.ribbon.listOfServers=127.0.0.1:18082` 覆盖 DiscoveryClient 指向桩服务(需同时设置 `NIWSServerListClassName` 全局限定或通过 `@RibbonClient` 仅在测试 Profile 启用)。
|
||||
@@ -0,0 +1,280 @@
|
||||
# V2 全系统功能测试环境搭建 — 设计文档
|
||||
|
||||
**日期**: 2026-05-01
|
||||
**状态**: 待实施
|
||||
**关联**: AGENTS.md, maven-cw-elevator-application/deploy/
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标
|
||||
|
||||
搭建 cw-elevator-application V2 (v2.0.7) 的全系统集成功能测试环境,包含电梯应用及其所有上下游依赖服务(CRK人脸识别、报警、cwos-manager、ninca-common、component-organization等),能够:
|
||||
|
||||
- 一键搭建全部 17 个组件
|
||||
- 运行 V1 vs V2 API 对拍测试
|
||||
- 验证 V2.0.7 租户访客固定楼层功能
|
||||
- 验证 CRK 联动、报警联动等端到端链路
|
||||
- 15-20 分钟内完成从零到全部验证
|
||||
|
||||
---
|
||||
|
||||
## 2. 环境约束
|
||||
|
||||
| 约束 | 值 |
|
||||
|------|-----|
|
||||
| 部署方式 | 本机进程 (Java服务) + Docker 容器 (基础组件) |
|
||||
| MySQL | 复用现有: `192.168.3.12:3307`, `root/123456` |
|
||||
| JDK | Java 8 (`/usr/lib/jvm/java-8-openjdk-amd64`) |
|
||||
| Maven | 3.5+ |
|
||||
| Docker | 已安装, `docker compose` 可用 |
|
||||
| 代码分支 | `release/cw-elevator-v1-lib-min-risk` |
|
||||
| 测试范围 | 全系统集成 — 全部 17 个组件 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 组件清单
|
||||
|
||||
### 3.1 基础组件 (Docker)
|
||||
|
||||
| # | 组件 | 端口 | 来源 |
|
||||
|---|------|------|------|
|
||||
| I1 | Consul | 8500 | 已有 `deploy/consul-docker/docker-compose.yml` |
|
||||
| I2 | Redis | 6379 | 需要新增 compose 条目 (`redis:7-alpine`) |
|
||||
| I3 | Kafka + Zookeeper | 9092, 2181 | 需要新增 compose 条目 (`bitnami/kafka:3.6`) |
|
||||
| I4 | Nginx (前端代理) | 8090 | 已有 `docker-compose.frontend-local.yml` |
|
||||
|
||||
### 3.2 应用服务 (本机进程)
|
||||
|
||||
| # | 组件 | 端口 | 来源 | 数据库 |
|
||||
|---|------|------|------|--------|
|
||||
| A1 | ninca-common-backend | 33010 | `星中心/ninca_common_01-ninca_common_backend.tar.gz` | `ninca_common` |
|
||||
| A2 | component-organization | 33011 | `星中心/ninca_common_component_organization_01-...tar.gz` | `component-organization` |
|
||||
| A3 | cwos-system-api | 3333 | `星中心/cwos_system_api_01-cwos_system_api/` (已解压) | — |
|
||||
| A4 | cwos-manager | 3721 | Docker Harbor 镜像 (已有 compose) | `cwos_manager` |
|
||||
| A5 | cwos-portal | 33008 | `星中心/cwos_portal` SQL 备份 → 重建 | `cwos_portal` |
|
||||
| A6 | snap-app | 33012 | `星中心/ninca_common_snap_app_01-...tar.gz` | — |
|
||||
| A7 | vehicle-app | 33013 | `星中心/ninca_common_vehicle_app_01-...tar.gz` | — |
|
||||
| A8 | person-file-app | 33014 | `星中心/ninca-person-file-app-V2.9.2_20210216.tar.gz` | — |
|
||||
| A9 | monitor-app | 33015 | `星中心/ninca_common_monitor_app_01-...tar.gz` | — |
|
||||
| A10 | CRK-std | 16106 (app), 16114 (mgmt) | `星中心/ninca_crk_std_01-ninca_crk_std_backend/` (JAR已就绪) | `ninca_crk_std` |
|
||||
| A11 | alarm-app | 17011 (app), 17211 (mgmt) | `星中心/ninca_qk_alarm_app_01-ninca_qk_alarm_app/` (JAR已就绪) | `alarm_deploy` |
|
||||
| A12 | elevator V2 | 18081 | Maven 构建 `maven-cw-elevator-application` | `cw-elevator-application` |
|
||||
| A13 | elevator V1 | 18080 | 对照基线 (已有 JAR) | `cw-elevator-application` |
|
||||
|
||||
### 3.3 数据库 (MySQL 192.168.3.12:3307)
|
||||
|
||||
| 数据库 | 备份文件 | 大小 |
|
||||
|--------|---------|------|
|
||||
| `cw-elevator-application` | `data_backup/12_*.sql.gz` + `34_*.sql.gz` | 158M + 2.5G |
|
||||
| `ninca_crk_std` | (含在 CRK 配置中,需确认备份) | — |
|
||||
| `alarm_deploy` | `data_backup/alarm_deploy_*.sql.gz` | 15M |
|
||||
| `cwos_manager` | `data_backup/cwos_manager_*.sql.gz` | 51K |
|
||||
| `cwos_portal` | `data_backup/cwos_portal_*.sql.gz` | 212M |
|
||||
| `ninca_common` | `data_backup/ninca_common_*.sql.gz` | 6M |
|
||||
| `component-organization` | `data_backup/component-organization_*.sql.gz` | 212M |
|
||||
| `ods` | `data_backup/ods_*.sql.gz` | 485K |
|
||||
| `cloudwalk_device_thirdparty` | `data_backup/cloudwalk_device_thirdparty_*.sql.gz` | 4K |
|
||||
| `g` / `p` / `12` / `34` | 其他备份 | 小量 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 配置统一化
|
||||
|
||||
### 4.1 环境变量 (`config/env.sh`)
|
||||
|
||||
```bash
|
||||
# 基础设施
|
||||
MYSQL_HOST=192.168.3.12
|
||||
MYSQL_PORT=3307
|
||||
MYSQL_USER=root
|
||||
MYSQL_PASS=123456
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASS=1qaz!QAZ
|
||||
CONSUL_HOST=127.0.0.1
|
||||
CONSUL_PORT=8500
|
||||
KAFKA_HOST=127.0.0.1
|
||||
KAFKA_PORT=9092
|
||||
ZK_HOST=127.0.0.1
|
||||
ZK_PORT=2181
|
||||
|
||||
# 服务端口
|
||||
PORT_ELEVATOR_V2=18081
|
||||
PORT_ELEVATOR_V1=18080
|
||||
PORT_CRK_STD=16106
|
||||
PORT_CRK_MGMT=16114
|
||||
PORT_ALARM=17011
|
||||
PORT_ALARM_MGMT=17211
|
||||
PORT_CWOS_PORTAL=33008
|
||||
PORT_COMPONENT_ORG=33011
|
||||
PORT_NINCA_COMMON=33010
|
||||
PORT_CWOS_MANAGER=3721
|
||||
PORT_SYSTEM_API=3333
|
||||
PORT_SNAP=33012
|
||||
PORT_VEHICLE=33013
|
||||
PORT_PERSON_FILE=33014
|
||||
PORT_MONITOR=33015
|
||||
PORT_NGINX=8090
|
||||
|
||||
# Java
|
||||
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
||||
JAVA_OPTS="-Xmx2048m -Xms512m"
|
||||
```
|
||||
|
||||
### 4.2 配置替换规则
|
||||
|
||||
每个 Java 服务的 `application.properties` / `bootstrap.properties` 中需要替换:
|
||||
|
||||
| 原始值 (生产) | 替换为 (测试) |
|
||||
|--------------|-------------|
|
||||
| `mysql_01.mysql_ip` | `192.168.3.12` |
|
||||
| `redis_01.redis_ip` | `127.0.0.1` |
|
||||
| `371bfca....` (Consul UUID host) | `127.0.0.1` |
|
||||
| `44700995e....` (Kafka broker 1) | `127.0.0.1:9092` |
|
||||
| `0837a70b5....` (Kafka broker 2) | (移除,仅保留一个 broker) |
|
||||
| `10.128.161.95` (内网 IP 地址) | `127.0.0.1` |
|
||||
| `10.0.22.207` (内网 ZK) | `127.0.0.1:2181` |
|
||||
| `10.128.123.108` (内网 DB) | `192.168.3.12` |
|
||||
| `10.0.22.102` (内网 CRK IP) | `127.0.0.1` |
|
||||
| `3306` (生产 DB 端口) | `3307` |
|
||||
|
||||
---
|
||||
|
||||
## 5. 脚本设计
|
||||
|
||||
### 5.1 文件结构
|
||||
|
||||
```
|
||||
源码/scripts/test-env/
|
||||
├── docker-compose.infra.yml # 合并 Consul+Redis+Kafka+Nginx
|
||||
├── config/
|
||||
│ ├── env.sh # 统一环境变量
|
||||
│ ├── consul/consul-config.json # Consul 初始化配置
|
||||
│ └── service-templates/ # 配置文件模板 (.properties 模板)
|
||||
├── setup.sh # 主入口: 一键搭建
|
||||
├── start-all.sh # 启动全部服务
|
||||
├── stop-all.sh # 停止全部服务
|
||||
├── health-check.sh # 探活检查
|
||||
├── prepare-db.sh # 数据库恢复
|
||||
├── prepare-services.sh # 解压 + 配置注入
|
||||
├── build-elevator-v2.sh # 编译 V2 电梯应用
|
||||
└── verify-functional.sh # 功能验证
|
||||
```
|
||||
|
||||
### 5.2 启动依赖拓扑
|
||||
|
||||
```
|
||||
I1 Consul ──┐
|
||||
I2 Redis ───┤ (Docker 并行启动)
|
||||
I3 Kafka ───┤
|
||||
I4 Nginx ───┘
|
||||
|
||||
A1 ninca-common ─────────────────────────┐
|
||||
A2 component-org ←── common ─────────────┤
|
||||
A3 system-api ←── manager ───────────────┤
|
||||
A4 cwos-manager (Docker) ────────────────┤
|
||||
A5 cwos-portal ←── org + manager ────────┤
|
||||
A6 snap-app ←── portal + common ─────────┤
|
||||
A7 vehicle-app ←── portal + common ──────┤
|
||||
A8 person-file ←── portal ───────────────┤
|
||||
A9 monitor-app (独立) ───────────────────┤
|
||||
A10 CRK-std ←── portal + org + elevator ─┤
|
||||
A11 alarm-app ←── portal + org + Kafka ──┤
|
||||
A12 elevator-V2 ←── CRK + portal + org ──┤
|
||||
A13 elevator-V1 (对拍对照) ───────────────┘
|
||||
```
|
||||
|
||||
### 5.3 主入口执行流程
|
||||
|
||||
```
|
||||
setup.sh:
|
||||
Phase 1: 环境检查 (< 10s)
|
||||
├── JDK 8 检查
|
||||
├── Maven 检查
|
||||
├── Docker 检查
|
||||
├── MySQL 连通性检查 (192.168.3.12:3307)
|
||||
└── 端口冲突检查
|
||||
|
||||
Phase 2: 数据库准备 (~5min)
|
||||
├── 创建所有数据库 (如不存在)
|
||||
├── 解压并导入 11 个 SQL 备份
|
||||
└── 执行 V2 DDL (tenant_visitor_floor_policy.sql)
|
||||
|
||||
Phase 3: Docker 启动 (~30s)
|
||||
├── docker compose up infra
|
||||
├── 等待 Consul Ready
|
||||
├── 等待 Kafka Ready
|
||||
└── 启动 Nginx
|
||||
|
||||
Phase 4: 服务准备 (~5-10min)
|
||||
├── 解压 5 个 tar.gz
|
||||
├── 从模板生成各服务配置文件
|
||||
├── 编译 V2 电梯应用
|
||||
└── 同步 JAR 到 deploy/
|
||||
|
||||
Phase 5: 服务启动 (~2min)
|
||||
├── 按拓扑序依次启动 13 个 Java 服务
|
||||
├── 每个服务启动后探活确认
|
||||
└── 失败自动重试 (max 3 次)
|
||||
|
||||
Phase 6: 验证 (~2min)
|
||||
├── 全端口探活
|
||||
├── Consul 注册检查
|
||||
├── V1/V2 API 对拍 (pytest)
|
||||
└── 输出验证报告
|
||||
|
||||
总耗时: ~15-20 分钟
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 验证矩阵
|
||||
|
||||
| ID | 验证项 | 命令/方法 | 通过标准 |
|
||||
|----|--------|----------|---------|
|
||||
| H1 | 所有端口可达 | `nc -z 127.0.0.1 <port>` x 15 | 全部 open |
|
||||
| H2 | 所有 HTTP 健康检查 | `curl /actuator/health` x 8 | 全部 200 + UP |
|
||||
| H3 | Consul 服务注册 | `curl :8500/v1/agent/services` | 10+ 服务已注册 |
|
||||
| F1 | V1/V2 API 对拍 | `pytest tools/elevator_api_parity/tests/` | 全部通过 |
|
||||
| F2 | V2.0.7 UC-01 基线 | 不传 floorIds, 无策略 | floorList 全集 |
|
||||
| F3 | V2.0.7 UC-01 固定楼层 | 不传 floorIds, 有策略 | floorList ∩ allow |
|
||||
| F4 | V2.0.7 无交集 | allow 与 floorList 无交集 | 错误码 76260532 |
|
||||
| F5 | V2.0.7 被访人无楼层 | personId 无楼层 | 错误码 76260531 |
|
||||
| F6 | V2.0.7 UC-02 | 显式传 floorIds | 不读策略表 |
|
||||
| F7 | CRK 联动 | curl CRK → 电梯回调 | CRK 日志有 Feign 记录 |
|
||||
| F8 | 报警 Kafka 消费 | 提交事件 → alarm 日志 | Kafka 消息到达 |
|
||||
| F9 | Nginx 前端代理 | `curl :8090` | cwos-portal 首页 |
|
||||
| I1 | MySQL 连通 | `mysql -h 192.168.3.12 -P3307 -e 'SELECT 1'` | 1 |
|
||||
|
||||
---
|
||||
|
||||
## 7. 已知风险与缓解
|
||||
|
||||
| 风险 | 影响 | 缓解 |
|
||||
|------|------|------|
|
||||
| `星中心/*.tar.gz` 内 JAR 版本与 DB 备份不匹配 | 启动失败 | 从同一时间点导出 (2026-04-23) 的 DB 备份对齐 |
|
||||
| Docker Kafka 首次启动慢 | Phase 3 超时 | 脚本增加 60s 等待 + 重试逻辑 |
|
||||
| V2 Maven 编译需 Nexus 私服 | 编译失败 | 已有 `build_nexus_only.sh` 降级方案 |
|
||||
| cwos-portal 无独立 JAR | 无法启动 | 从 DB 备份 `cwos_portal` 库确认部署方式 |
|
||||
| 端口冲突 (已有进程占用) | 启动失败 | Phase 1 预先检查, 用 `lsof` 检测并提示 |
|
||||
| ES (Elasticsearch) 依赖 | alarm 启动可能失败 | alarm `application.properties` 配置 ES, 需 Docker 添加 |
|
||||
|
||||
---
|
||||
|
||||
## 8. 未解决问题
|
||||
|
||||
1. **cwos-portal 部署方式**: 星中心中没有 cwos-portal 的 JAR 或 tarball, 仅 DB 备份中有 `cwos_portal` 数据。需确认其部署形态 (fat JAR? war? Docker?)。
|
||||
2. **cwos-system-api 启动入口**: `cwos_system_api_01-cwos_system_api/` 已解压, 需确认 JAR 入口和端口。
|
||||
3. **Elasticsearch**: alarm 依赖 ES (`elasticsearch.ip`), 是否需要在 Docker Compose 中添加 ES 容器?
|
||||
4. **Dubbo/ZK**: V1 电梯 bootstrap 配置有 Dubbo + ZK, V2 是否需要?可以在 Docker Compose 中添加 ZK。
|
||||
|
||||
---
|
||||
|
||||
## 9. 产出物
|
||||
|
||||
- `源码/scripts/test-env/docker-compose.infra.yml` — 基础组件 Docker Compose
|
||||
- `源码/scripts/test-env/setup.sh` — 一键搭建脚本
|
||||
- `源码/scripts/test-env/config/env.sh` — 统一环境变量
|
||||
- `源码/scripts/test-env/config/service-templates/` — 14 个配置模板
|
||||
- `源码/scripts/test-env/start-all.sh` / `stop-all.sh` — 启停脚本
|
||||
- `源码/scripts/test-env/verify-functional.sh` — 功能验证脚本
|
||||
Reference in New Issue
Block a user