# 从 2.3.0 升级到 2.4.0

# 更新时间

2023 年 10 月 20 日

# 更新内容

  1. 修复若干 bug
  2. 优化部分用户体验
  3. Excel导入优化,增加数据日志和操作日志
  4. 缓存优化,增加缓存有效时长维护
  5. 新增文件管理
  6. 新增水印功能
  7. 新增图标管理
  8. 新增内联菜单管理
  9. 新增安全管理
  10. 新增客户端管理
  11. 新增业务锁管理
  12. 新增临床决策支持管理
  13. 新增接口管理
  14. 新增动态参数管理
  15. 新增系统参数子项
  16. 人员状态,人员工作状态增加大类根据大类动态获取
  17. 批量删除接口改成requestBody
  18. 集成Easy-Trans数据翻译概述
  19. 修改字段填充配置

# 前端升级步骤

  1. 请到 hos-app-web (opens new window) 代码仓库中master分支或release-2.4.0分支中将源码下载到本地
  2. 如果自己业务工程中 src/sys的代码没有进行过手动修改的话,将 该代码进行手动删除,然后将hos-app-websrc/sys 的代码复制到本地工程即可,
  3. 如果自己业务工程中 src/sys的代码进行过手动修改的话,请自行与hos-app-websrc/sys 的代码进行比对,手动进行同步并解决冲突代码。
  4. 如果自己业务工程中 src/biz/mixins/loginMixin.js的代码进行过手动修改的话,请自行与hos-app-websrc/sys 的代码进行比对,手动进行同步并解决冲突代码。

# 后端升级步骤

# 修改 pom 依赖

  1. 在根 pom 文件中修改hos-app-dependencies的版本号为2.4.0-RELEASE, hos-starter-dependencies的版本号为1.2.0-RELEASE,增加依赖 hos-security-dependencies,版本号为1.0.0-RELEASE
<dependencyManagement>
    <dependencies>
       <dependency>
           <groupId>com.mediway.hos</groupId>
            <artifactId>hos-starter-dependencies</artifactId>
             <version>1.2.0-RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-app-dependencies</artifactId>
            <version>2.4.0-RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
       <dependency>
          <groupId>com.mediway.hos</groupId>
          <artifactId>hos-security-dependencies</artifactId>
          <version>1.0.0-RELEASE</version>
          <type>pom</type>
          <scope>import</scope>
       </dependency>
    </dependencies>
</dependencyManagement>

2.将所有pom中引用以hos-app-auth开头的依赖全部移除,(如 hos-app-auth-server、hos-app-auth-free、hos-app-auth-ca)在启动类的pom.xml文件中添加 hos-security-config 依赖

<dependencies>
    // 将以下依赖移除
     <dependency>
         <groupId>com.mediway.hos</groupId>
         <artifactId>hos-app-auth-server</artifactId>
     </dependency>
     <dependency>
         <groupId>com.mediway.hos</groupId>
         <artifactId>hos-app-auth-free</artifactId>
     </dependency>

     <dependency>
         <groupId>com.mediway.hos</groupId>
         <artifactId>hos-app-auth-ca</artifactId>
     </dependency>
    // 引入以下依赖
      <dependency>
         <groupId>com.mediway.hos</groupId>
         <artifactId>hos-security-config</artifactId>
      </dependency>
</dependencies>

# 升级数据库

  1. 前往 Gitlab 下载页面(http://119.255.194.80/hos/demo/hos-app-demo/-/tree/2.4.0/project-strcutre/project-strcutre-boot-1/oa-doc/data/mysql/2.4.0) , 用户名/密码:hosuser/99ahivPJt
  2. 下载hos-app-base-2.3.0~2.4.0.sql文件
  3. 执行更新 SQLhos-app-base-2.3.0~2.4.0.sql

# 修改yml文件

hos-security:
   platform: platform
   front-url: http://114.251.235.9:8328                  #应用前端页面地址
   authentication-uri: http://114.251.235.9:8345             #统一认证地址
   login:                                                #登录相关配置
      captcha:                                            #图形验证码配置
         captcha-type: line
         captcha-length: 5
      password:                                           #密码相关配置
         login-password-encode: BCRYPT                     #数据库中密码加密方式
         login-password-secret: 1234567890123456           #前后端密码传输SM4加密秘钥
      token:                                              #token相关配置
         access-token-expires-in: 600                      #token过期时间,单位:秒
         refresh-token-expires-in: 6000                    #刷新token过期时间,单位:秒
         enable-refresh-token: true                        #是否开启刷新token
         sign-key: 123123                                  #生成jwt token 签名key
         access-token-key: access_token                    #保存token缓存的前缀
         refresh-token-key: refresh_token                  #保存刷新token缓存的前缀
      log-table-name: hos_sys_log_login                   #登录日志保存表名称
      white-list:                                         #认证白名单
         - /openApi/**
         - /druid/**
         - /license/*
         - /loginPageData/*
         - /property/is-enable-tenant
         - /tenant/select-tenant-by-domain
         - /tenant/select-tenant
         - /core/system/files/other/**
         - /core/system/files/image/**
         - /websocket/
         - /favicon.ico
         - /v2/api-docs
         - /swagger-resources
         - /acm/accountAndPWD/validateAccount
         - /doc
         - /**/*.css
         - /**/*.js
         - /**/*.png
         - /**/*.jpg
         - /**/*.jpeg
         - /**/*.html
         - /**/*.ico
         - /**/*.properties
         - /**/*.woff
         - /**/*.woff2
         - /**/*.ttf
   oauth2:                                               #统一认证oauth2登录配置
      enable: false                                        #是否开启统一认证登录
      state-expire-in: 600                                #oauth2登录中state的有效时间,单位:秒
      client:                                             #统一认证登录配置
         registration:
            messaging-client-oidc:
               provider: spring                              #对应下边 provider 的配置,不需要修改
               client-id: messaging-client                   #统一用户平台中创建应用的id
               client-secret: secret                         #统一用户平台中创建应用的秘钥
               authorization-grant-type: authorization_code  #认证类型,不要修改
               redirect-uri: ${hos-security.front-url}/api/security/login/oauth2/code/messaging-client-oidc  #回调地址,不要修改
               scope: all                                #统一用户平台中创建应用的作用域
               client-name: hos-app                          #该客户端名称
         provider:
            spring:
               issuer-uri: ${hos-security.authentication-uri}/api                      #发行地址
               authorization-uri: ${hos-security.authentication-uri}/oauth/authorize   #获取授权码页面

# 修改相关代码

1.获取当前登录账号信息方法修改

增加AccountUtil获取相关账号信息,摈弃 ThreadLocalManager.get("key_login_user");

封装获取databaseId工具类 DatabaseIdUtil;

  1. 部分表的表名修改
alter table hos_business_config rename to hos_sys_business_config;
alter table hos_config_captcha rename to hos_sys_config_captcha;
alter table hos_config_mail rename to hos_sys_config_mail;
alter table hos_config_sms rename to hos_sys_config_sms;
alter table hos_config_sms_sign rename to hos_sys_config_sms_sign;
alter table hos_config_sms_template rename to hos_sys_config_sms_template;
alter table hos_festival rename to hos_sys_festival;
alter table hos_festival_dict rename to hos_sys_festival_dict;
alter table hos_log_bussiness rename to hos_sys_log_bussiness;
alter table hos_log_examine rename to hos_sys_log_examine;
alter table hos_log_login rename to hos_sys_log_login;
alter table hos_log_oper rename to hos_sys_log_oper;
alter table hos_openapi_api_system rename to hos_sys_openapi_api_system;
alter table hos_openapi_info rename to hos_sys_openapi_info;
alter table hos_openapi_log rename to hos_sys_openapi_log;
alter table hos_openapi_system_config rename to hos_sys_openapi_system_config;
alter table  hos_org_country rename to hos_ct_country;
alter table  hos_org_degree rename to hos_ct_degree;
alter table  hos_org_education rename to hos_ct_education;
alter table  hos_org_emp_status_dict rename to hos_ct_emp_status_dict;
alter table  hos_org_gender rename to hos_ct_gender;
alter table  hos_org_identity_type_dict rename to hos_ct_identity_type_dict;
alter table  hos_org_marriage_status rename to hos_ct_marriage_status;
alter table  hos_org_nationality rename to hos_ct_nationality;
alter table  hos_org_occu_category rename to hos_ct_occu_category;
alter table  hos_org_occupation rename to hos_ct_occupation;
alter table  hos_org_city rename to hos_ct_city;
alter table  hos_org_district rename to hos_ct_district;
alter table  hos_org_province rename to hos_ct_province;
alter table  hos_org_religion rename to hos_ct_religion;
alter table  hos_org_person_status_dict rename to hos_ct_person_status_dict;
alter table  hos_post_role rename to hos_org_post_role;

# 上传模板文件

  1. 下载模板文件,并解压缩到本地硬盘上
  2. 在minIO服务器上创建一个名为hosminio的Bucket(见图1、图2),然后进入hosminio(见图3).

图1:

img.png

图2:

img_1.png

图3:

img_2.png

  1. 点击“upload”按钮,选择"Upload Folder",在弹框中选择解压缩后的“upload”文件,点击“上传”按钮等待上传成功即可。

img_4.png

img_5.png