分析时间:2026-07-10
| 项目 | 数量 |
|---|---|
| ROHS SQL文件表总数 | 203 |
| ROHS 真实业务表 | 174 |
| ROHS 备份/MV/日志表(排除) | 29 |
| 安监 slaj schema 表总数 | 3,234 |
| 两库重叠表 | 72 |
| ROHS独有表(安监中不存在) | 102 |
| 安监独有表(ROHS中不存在) | 3,162 |
这28张表字段名称和类型完全一致,仅存在 PostgreSQL 类型名写法差异(如 CHAR(32) vs BPCHAR、VARCHAR(100) vs VARCHAR、DECIMAL vs NUMERIC),这些在 PostgreSQL 中是同义词,不影响兼容性。
| ROHS表 | 安监表 | 列数 |
|---|---|---|
| ATT_ENG_CWS | att_eng_cws | 31 |
| ATT_ENG_DIKE | att_eng_dike | 38 |
| ATT_ENG_HYST | att_eng_hyst | 39 |
| ATT_ENG_IRR | att_eng_irr | 42 |
| ATT_ENG_OTHE | att_eng_othe | 30 |
| ATT_ENG_PUST | att_eng_pust | 34 |
| ATT_ENG_RES | att_eng_res | 42 |
| ATT_ENG_SD | att_eng_sd | 31 |
| ATT_ENG_WADI | att_eng_wadi | 34 |
| ATT_ENG_WAGA | att_eng_waga | 33 |
| ATT_MED_BASE | att_med_base | 22 |
| ATT_ORG_UWAT_EXT | att_org_uwat_ext | 66 |
| BIS_ACCI_EXP_REP | bis_acci_exp_rep | 8 |
| BIS_ACCI_INVE | bis_acci_inve | 10 |
| BIS_ACCI_PROG | bis_acci_prog | 7 |
| BIS_ACCI_REC_REP | bis_acci_rec_rep | 10 |
| BIS_ENG_SARE | bis_eng_sare | 24 |
| BIS_HIDD_MAJ_VERI | bis_hidd_maj_veri | 11 |
| BIS_HIDD_RECT_PROG | bis_hidd_rect_prog | 7 |
| BIS_HIDD_REC_REP | bis_hidd_rec_rep | 10 |
| BIS_MAJ_HIDD_SUP | bis_maj_hidd_sup | 13 |
| HAZARD_SOURCE | hazard_source | 18 |
| OBJ_SE | obj_se | 10 |
| T_BUSI_PLAN_DISCLOSURE | t_busi_plan_disclosure | 11 |
| T_DICT_MAJOR_BUILDING | t_dict_major_building | 13 |
| T_DICT_MAJOR_COMMON | t_dict_major_common | 15 |
| T_DICT_MAJOR_ED | t_dict_major_ed | 12 |
| T_DICT_MAJOR_SOURCE | t_dict_major_source | 14 |
差异分为以下几类:
ROHS 使用 STR_TO_DATE 作为时间戳列,安监使用 TO_DATE。这是同一个字段的不同命名,合并时需统一。
涉及表:ATT_ENG_BASE、ATT_ORG_BASE、ATT_ORG_UWAT_BASE、OBJ_ACCI、OBJ_ENG、OBJ_HIDD、OBJ_TEND、REL_BIS_MED、REL_ENG_ORG、REL_ENG_ORG_UWAT、REL_PROJ_ORG、REL_TEND_ORG、REL_USER_TEND、T_BUSI_RISK_THRESHOLD
ROHS 使用 TIMESTAMP 类型,安监使用 DATE 类型。这是精密度的差异:
涉及字段:START_DATE, COMP_DATE, CREATE_TIME, UPDATE_TIME, BORN_DATE 等
注意:如果安监现有的数据没有时间部分,升级为 TIMESTAMP 是安全的(向下兼容)。
涉及表:ATT_ENG_BASE、ATT_PERS_BASE、ATT_PERS_EXT、OBJ_HAZARD、T_BUSI_CONTROL_MEASURE、T_BUSI_CONTROL_TERM、T_BUSI_HAZARD_ARCHIVE、T_BUSI_HAZARD_REPORT、T_BUSI_HAZARD_WARM、T_BUSI_HAZ_IDEN、T_BUSI_INSPECT_ITEM、T_BUSI_INSPECT_RECORD、T_BUSI_INSPECT_TASK、T_BUSI_INSPECT_TASK_ITEM、T_BUSI_RESP_PER
ROHS 和安监的系统管理表使用了完全不同的列命名规范:
| 表 | ROHS列数 | 安监列数 | 说明 |
|---|---|---|---|
| SYS_MENU | 26 | 20 | ROHS用 ID/NAME/CODE;安监用 MENU_ID/MENU_NAME/PERMS |
| SYS_NOTICE | 13 | 10 | ROHS用 ID/TITLE/TYPE_ID;安监用 NOTICE_ID/NOTICE_TITLE/NOTICE_TYPE |
| SYS_POST | 16 | 10 | ROHS用 ID/POST_RESP/DEP_ID;安监用 POST_ID/POST_SORT/STATUS |
| SYS_ROLE | 17 | 14 | ROHS用 ID/NAME/CODE/VALID;安监用 ROLE_ID/ROLE_NAME/ROLE_KEY/STATUS |
| SYS_USER | 34 | 20 | ROHS用 ID/NAME/LOGIN/CODE;安监用 USER_ID/USER_NAME/REAL_NAME |
| SYS_ROLE_MENU | 2 | 2 | ROLE_ID: VARCHAR(40) vs INT8(BIGINT);MENU_ID: VARCHAR(40) vs INT8(BIGINT) |
| SYS_USER_ROLE | 4 | 2 | ROHS多了 GROUP_MANAGER, SORT_NUM |
⚠️ 这是最大的风险点。ROHS 和 安监的 SYS_ 系统表实际上是两套完全不同的系统框架:
- ROHS 似乎基于若依(RuoYi)框架的旧版本(若依早期版本使用这些列名)
- 安监似乎基于若依(RuoYi)框架的新版本或自行改造版本
这两套系统表不能简单合并,需要评估是否统一使用其中一套框架的系统表。
这些表存在个别的列多/少差异:
| 表 | 差异 |
|---|---|
| ATT_ORG_EXT | 安监多了 ACC_EMECONTA, ACC_EMECONTA_MPOH |
| ATT_PERS_BASE | ROHS多了 MODIFIER, FROM_DATE, NODE_CODE;安监多了 COLL_TIME, UPD_TIME, REC_PERS |
| ATT_PERS_EXT | ROHS多了 ORG_GUID;WORK_DATE: DECIMAL vs VARCHAR |
| BIS_HIDD_INVE | 安监多了 ORG_MANAGE, HIDD_CONTENT |
| BIS_HIDD_RECT_ACCE | ROHS多了 ACCEPT_ORG, ACCEPT_DATE, ACCEPT_OPINION, CURL_RESULT |
| BIS_HIDD_RECT_IMPL | ROHS多了 RECT_DEPT |
| OBJ_ACCI | ROHS多了 DATA_TYPE, HIDD_GUID, HAZ_GUID, ACCI_SITU, DATA_SIGN |
| T_BUSI_CONPLAN_BASIC | ROHS多了 HAZ_GUID, ENG_GUID, EMER_TYPE, AREA_TYPE |
| T_BUSI_HAZ_IDEN | ROHS多了 OTLCOL_QGW_TNYGTS;安监多了 HAZ_REMARK, ORG_PER, ORG_PHONE 等人员字段 |
| T_BUSI_REGULAR_EVALU | 列名完全不一致(可能是不同的评估模块) |
| T_BUSI_REVIEW_INFO | 列名完全不一致(可能是不同的评审模块) |
| T_DICT_HIDD_ENG | 列名完全不一致(结构不同) |
| ATT_ORG_BASE | AD_CODE: VARCHAR vs BPCHAR 类型不兼容 |
| 分类 | 数量 | 涉及的表 |
|---|---|---|
| 业务类 (TBUSI) | 33 | ACCI_EVALUATE, ACCOUNT_RECORD, BD_TOTAL, CONT_MEAS, DRILL_EVA, DRILL_RECORD, ENG_PART, ENG_SAFE_EVALUATE, EVALUATE, GROUP_INFO, HARD_TOTAL, HIDD_EVALUATE, HIDD_TOTAL, HUIZONG_TOTAL, INSURE_INFO, INSURE_PRE, MEET_TOTAL, ORG_SAFE_EVALUATE, POSSIBLE_ACCIDENT, POSTRES, POSTRES_PERSON, SAFEORG_INFO, SIX_BOOST_MWR, SMS_RECORD, STR_PUNISH, SUPPLIES_RESERVE, TEAM_INFO, TRAIN_RECORD 等 |
| 系统管理类 (SYS_) | 29 | APPLICATION, CODE, CODE_LINE, DATA_SOURCE, DEPARTMENT, DOCMENT/DOCUMENT, DOCUMENT_TYPE, LOGIN_LOG, MESSAGE_LOG, NOTICE_TYPE, OAUTH_CLIENT_DETAILS, OPERATELOG, ORGANIZATION, RESOURCE, ROLE* (多个), ROUTE_CONFIG, SETTING, SOCIAL_DETAILS, SYSTEM_CONFIG, TABLES, TENANT, USER_CATEGORY, USER_NOTICE |
| 关系类 (REL_) | 13 | DRILL_EVA, DRILL_SC, INSURE_TEND, JOB_ROLE, ORG_ZCPT, PERS_ZCPT, SYS_PERS, USER_APP, USER_APPOINT, USER_JOB, USER_ROLE, USER_ROLE_EXT |
| 对象类 (OBJ_) | 9 | AD, BAAD, ORG_ZCPT, ROLE 等 |
| 附件/属性类 (ATT_) | 7 | APP_BASE, JOB_BASE, ORG_DEP, PERSON_EXT, ROLE_BASE, USER_EXT |
| 字典类 (TDICT) | 2 | SCOR_CERTI, SCOR_PUNISH |
| 配置类 (TCON) | 2 | SAFE_ENU, SLAJ_LOG |
| SSO类 (TSSO) | 2 | USERROLE_SM3, USER_SM3 |
| 其他 | 5 | BDMS_ATT_ENG_PUST, PPRTY_NOTICE_INFO, HARD_TOTAL, HIDD_STATISTICS, BIS_HIDD_REC_REP20250113 |
这些是"六项机制"的特有业务表,应该是合并的核心目标:
SYS_ 系统表冲突(重大风险):
列结构不一致的业务表(约10张):
不同框架的表:
slaj schema,将 ROHS 的表移至 slaj 中分析过程中生成的中间文件:
_rohs_tables.json — ROHS SQL文件解析结果_slaj_table_names.json — 安监数据库所有表名_db_overlap_cols.json — 重叠表的安监列定义_comparison_report.json — 完整对比数据_final_compare.js — 最终对比脚本