# 从 R2.6.6.3.10 升级到 R2.7.0.0
# 更新时间
2025 年 3 月 20 日
# 更新内容
HOS框架R2.7.0.0和历史版本相比有很多不兼容的架构变化,请升级前仔细阅读以下升级指南。
因新版配套的上游系统iCIMS平台和主数据平台未发版,本次升级只支持精简版、简版模式,不支持专业版。专业版请谨慎升级。
特别说明:因为本次有大量表和字段新增和删除,框架提供的升级脚本只变更表字段结构,不会迁移表数据,请升级前备份好数据,并做好数据迁移方案。
# 数据表的变化
具体表字段和字段变化请点击下载 此处 进行下载,其中“主数据字段变更记录”sheet页说明了保留的主数据表每个版本的字段变化。
表数量的变化:
- 基础主数据以hos_org和hos_ct为前缀的主数据表只保留了46张,其余表被删除;
- 框架表hos_org_post_role 改名为 hos_perm_post_role,字段role_code 改为 role_id;
- 框架表hos_org_post_property改名为 hos_sys_post_property;
- 保留的46张全部做了变动,请在升级前备份好数据,并做好数据迁移方案。
46张基础主数据表字段的公共变化:
- 添加同步数据公共字段,所有上游id统一改为data_source_id;
- origin_id:源数据id
- data_version:数据版本
- data_source:数据来源
- data_source_id:上游数据主键
- last_update_datetime:系统最后更新时间戳
- std_data_code:标准编码
- std_data_name:标准名称
- 所有通过code关联的外键字段全部改为通过id关联;
- 关联人员表由通过人员唯一标识改为通过人员表id字段,对应pa_person_id全部改为person_id;
- 人员基本信息表hos_org_person的person_id字段改为code,代表人员唯一标识;
- 职称表hos_org_job_title删除,原职务相关表改为职称表;
- 业务功能区hos_org_rds_locconfigtype改名为hos_org_loc_config_type;
- 业务工作地点hos_org_rds_locconfigtype改名为hos_org_loc_config;
- 人员工作状态hos_ct_emp_status_dict改名为hos_org_emp_status_dict;
- 新增行业分类字典表 hos_ct_industry;
- 新增医联体表 hos_ct_medical_alliance;
- 新增工商关系表 hos_ct_medical_community;
- 新增业务单元与业务工作地点的关系表 hos_org_bu_loc_config_rel。
# 框架的变化
- 框架原hos-app-org模块拆分为独立基础主数据项目hos-base-mdm,两者以后可以独立升级;
- 框架只查询框架本身需要的主数据表和字段,不再对外提供主数据查询接口,本身接口地址由"org/"改为"hosorg/";
- 框架原hos-app-org模块api接口拆分到基础主数据项目api模块(hos-base-mdm-api),地址保持不变;
- 账号表hos_user_account的pa_person_id字段修改为人员表id;
- 代码和实体中paPersonId属性改为personUniqueId,代表人员表唯一标识字段(code字段);
- 代码中原来使用人员表唯一标识查询的功能,逻辑上可以用人员表主键关联的改为通过人员主键查询。
- 登录信息中原personId改为personUniqueId,保存人员唯一标识
专业版依赖的框架数据同步接口将不再可用,所以dts、生产要素、资源计划不能再向下游系统同步数据。后续基础主数据 R4.0.1.0将发布对接主数据平台的数据同步接口。基础主数据说明请参考:基础主数据
# 前端升级步骤
- 请到 hos-app-web (opens new window) 代码仓库中
release-2.6.6.3.12
分支中将源码下载到本地,用户名及密码为自己的Git账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请; - 如果自己业务工程中src/sys的代码没有进行过手动修改的话,将该代码手动删除,然后将hos-app-web 中src/sys的代码复制到本地工程即可;
- 如果自己业务工程中src/sys的代码进行过手动修改的话,请自行与hos-app-web 中src/sys的代码进行比对,手动进行同步并解决冲突代码;
- 本次升级对
src/dynamic-loader.js
和src/moduleConfig.js
文件有改动, 如果自己业务工程没有改动这个文件,请直接复制,如果有改动,请进行比对,手动进行同步并解决冲突代码。
# 后端升级步骤
# 依赖修改
- 在根 pom 文件中修改
hos-app-dependencies
的版本号为R2.7.0.0
,修改hos-starter-dependencies
的版本号为R1.6.0
, 修改hos-security-dependencies
的版本号为R1.1.0
。 - 项目根
pom.xml
文件中在dependencyManagement
添加maven依赖hos-base-mdm-dependencies
:
<dependency>
<groupId>com.mediway.mdm</groupId>
<artifactId>hos-base-mdm-dependencies</artifactId>
<version>R4.0.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
- 在项目runner模块添加如下依赖:
<dependency>
<groupId>com.mediway.mdm</groupId>
<artifactId>hos-base-mdm-controller</artifactId>
</dependency>
<dependency>
<groupId>com.mediway.mdm</groupId>
<artifactId>hos-base-mdm-eventpublish</artifactId>
</dependency>
# 升级数据库
请根据数据库实际使用情况,仔细核对数据库类型,下载当前使用的数据库对应的升级脚本。
(以下为
opengauss
的升级示例)前往 Gitlab 下载框架升级脚本和主数据升级脚本:
- 框架升级脚本地址:(https://106.63.4.7:8000/hos/demo/hos-app-demo/-/blob/2.7.0.0/project-strcutre/project-strcutre-demo/oa-doc/data/opengauss/2.7.0.0) , 用户名及密码为自己的Git账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请
- 基础主数据脚本地址:(https://106.63.4.7:8000/hos/hos-base-mdm-doc/-/tree/4.0.0.0/sql/opengauss/4.0.0.0), 用户名及密码为自己的Git账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请
本次升级比较特殊,中间需要业务系统自己迁移数据,流程如下:
- 下载框架升级SQL
hos-app-base-opengauss-2.6.6.3.10~2.7.0.0.sql
; - 执行框架升级SQL,变更表名和处理字段变更;
- 下载基础主数据升级SQL
hos-base-mdm-opengauss-3.0~4.0.0.0.sql
; - 执行基础主数据升级SQL,会删除无用表、添加新字段、更新国际化和导入导出数据,删除字段有单独SQL处理;
- 业务系统自己迁移数据,如原用code关联的外键全部改为了id关联、人员唯一标识关联全部改为人员表id关联、新增机构和行业等新字段等,如果未上生产没有生产数据,建议重建数据库不走升级流程;
- 下载基础主数据删除字段的SQL
hos-base-mdm-opengauss-3.0~4.0.0.0-delete.sql
; - (迁移完数据再执行)执行删除字段SQL,这里会删除历史版本字段,删除后数据不可恢复,请先完成数据迁移,请谨慎执行。
注意事项:
南大通用8C注意事项:按公司最新规范,南大通用8C由Mysql模式改为oracle模式,所以南大通用8C需要先将数据库迁移到oracle模式再执行相关升级脚本。
南大通用8C从Mysql模式向oracle模式数据库迁移数据HOS框架暂时发现如下问题:
- hos_i18n_tb_field 需要修改name字段长度到500
- hos_org_person表的seq_date索引需要删除
高斯数据库注意事项:高斯数据库支持兼容oracle模式,如在oracle模式下执行sql报错,可优先参考:
因时间原因,该版本只支持高斯数据库、人大金仓数据库、南大通用8C数据库和mysql数据库。
# 上传初始文件
- 下载模板文件。
- 在文件存储管理中,配置好需要存储文件的服务器。
- 在文件管理中,导入第一步下载好的 zip 格式模板文件压缩包。
- 由于本次的初始文件过大,需要改下application.yml文件中
spring.servlet.multipart.max-file-size
的值和spring.servlet.multipart.max-request-size
的值至少40M