# 从 R2.6.6.3.10 升级到 R2.7.0.0

# 更新时间

2025 年 3 月 20 日

# 更新内容

HOS框架R2.7.0.0和历史版本相比有很多不兼容的架构变化,请升级前仔细阅读以下升级指南。

因新版配套的上游系统iCIMS平台和主数据平台未发版,本次升级只支持精简版、简版模式,不支持专业版。专业版请谨慎升级。

特别说明:因为本次有大量表和字段新增和删除,框架提供的升级脚本只变更表字段结构,不会迁移表数据,请升级前备份好数据,并做好数据迁移方案。

# 数据表的变化

具体表字段和字段变化请点击下载 此处 进行下载,其中“主数据字段变更记录”sheet页说明了保留的主数据表每个版本的字段变化。

表数量的变化:

  1. 基础主数据以hos_org和hos_ct为前缀的主数据表只保留了46张,其余表被删除
  2. 框架表hos_org_post_role 改名为 hos_perm_post_role,字段role_code 改为 role_id;
  3. 框架表hos_org_post_property改名为 hos_sys_post_property;
  4. 保留的46张全部做了变动,请在升级前备份好数据,并做好数据迁移方案。

46张基础主数据表字段的公共变化:

  1. 添加同步数据公共字段,所有上游id统一改为data_source_id;
    • origin_id:源数据id
    • data_version:数据版本
    • data_source:数据来源
    • data_source_id:上游数据主键
    • last_update_datetime:系统最后更新时间戳
    • std_data_code:标准编码
    • std_data_name:标准名称
  2. 所有通过code关联的外键字段全部改为通过id关联
  3. 关联人员表由通过人员唯一标识改为通过人员表id字段,对应pa_person_id全部改为person_id;
  4. 人员基本信息表hos_org_person的person_id字段改为code,代表人员唯一标识;
  5. 职称表hos_org_job_title删除,原职务相关表改为职称表;
  6. 业务功能区hos_org_rds_locconfigtype改名为hos_org_loc_config_type;
  7. 业务工作地点hos_org_rds_locconfigtype改名为hos_org_loc_config;
  8. 人员工作状态hos_ct_emp_status_dict改名为hos_org_emp_status_dict;
  9. 新增行业分类字典表 hos_ct_industry;
  10. 新增医联体表 hos_ct_medical_alliance;
  11. 新增工商关系表 hos_ct_medical_community;
  12. 新增业务单元与业务工作地点的关系表 hos_org_bu_loc_config_rel。

# 框架的变化

  1. 框架原hos-app-org模块拆分为独立基础主数据项目hos-base-mdm,两者以后可以独立升级;
  2. 框架只查询框架本身需要的主数据表和字段,不再对外提供主数据查询接口,本身接口地址由"org/"改为"hosorg/";
  3. 框架原hos-app-org模块api接口拆分到基础主数据项目api模块(hos-base-mdm-api),地址保持不变;
  4. 账号表hos_user_account的pa_person_id字段修改为人员表id;
  5. 代码和实体中paPersonId属性改为personUniqueId,代表人员表唯一标识字段(code字段);
  6. 代码中原来使用人员表唯一标识查询的功能,逻辑上可以用人员表主键关联的改为通过人员主键查询。
  7. 登录信息中原personId改为personUniqueId,保存人员唯一标识

专业版依赖的框架数据同步接口将不再可用,所以dts、生产要素、资源计划不能再向下游系统同步数据。后续基础主数据 R4.0.1.0将发布对接主数据平台的数据同步接口。基础主数据说明请参考:基础主数据

# 前端升级步骤

  1. 请到 hos-app-web (opens new window) 代码仓库中 release-2.6.6.3.12 分支中将源码下载到本地,用户名及密码为自己的Git账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请;
  2. 如果自己业务工程中src/sys的代码没有进行过手动修改的话,将该代码手动删除,然后将hos-app-web 中src/sys的代码复制到本地工程即可;
  3. 如果自己业务工程中src/sys的代码进行过手动修改的话,请自行与hos-app-web 中src/sys的代码进行比对,手动进行同步并解决冲突代码;
  4. 本次升级对 src/dynamic-loader.jssrc/moduleConfig.js文件有改动, 如果自己业务工程没有改动这个文件,请直接复制,如果有改动,请进行比对,手动进行同步并解决冲突代码。

# 后端升级步骤

# 依赖修改

  1. 在根 pom 文件中修改hos-app-dependencies的版本号为R2.7.0.0,修改hos-starter-dependencies的版本号为R1.6.0, 修改hos-security-dependencies的版本号为R1.1.0
  2. 项目根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>
  1. 在项目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账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请

本次升级比较特殊,中间需要业务系统自己迁移数据,流程如下

  1. 下载框架升级SQLhos-app-base-opengauss-2.6.6.3.10~2.7.0.0.sql
  2. 执行框架升级SQL,变更表名和处理字段变更;
  3. 下载基础主数据升级SQLhos-base-mdm-opengauss-3.0~4.0.0.0.sql
  4. 执行基础主数据升级SQL,会删除无用表、添加新字段、更新国际化和导入导出数据,删除字段有单独SQL处理;
  5. 业务系统自己迁移数据,如原用code关联的外键全部改为了id关联、人员唯一标识关联全部改为人员表id关联、新增机构和行业等新字段等,如果未上生产没有生产数据,建议重建数据库不走升级流程
  6. 下载基础主数据删除字段的SQLhos-base-mdm-opengauss-3.0~4.0.0.0-delete.sql
  7. (迁移完数据再执行)执行删除字段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数据库。

# 上传初始文件

  1. 下载模板文件
  2. 在文件存储管理中,配置好需要存储文件的服务器。 2.5.1-fileStorage.png
  3. 在文件管理中,导入第一步下载好的 zip 格式模板文件压缩包。 2.5.1-file.png
  4. 由于本次的初始文件过大,需要改下application.yml文件中spring.servlet.multipart.max-file-size的值和spring.servlet.multipart.max-request-size的值至少40M

img_1.png