# 从 R2.6.6.3.45 升级到 R2.6.6.3.46

# 更新时间

2025 年 7 月 21 日

# 更新内容

  1. 登录相关功能中关于使用到redis的keys查询优化改造,涉及到的功能点包括:多端登录控制、在线用户查询。
  2. 在线用户查询功能优化。
  3. 浏览器关闭或者窗口关闭时退出功能优化(由线程等待修改为redis过期监听)。
  4. 新增应用系统退出时是否触发统一认证退出的开关控制
  5. 实现单体登录与单点登录共存。
  6. 修复基础字典-学历导入数据不能更新是否启用字段的问题
  7. 修复基础字典-行政区划导出问题。
  8. 水印支持自定义组合文字,自定义调整水印的旋转角度。
  9. 修复应用系统退出问题
  10. 支持移动医生查房和服务总线对接部分用户接口:校验用户名密码获取用户业务单元岗位列表

# 前端升级步骤

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

# 后端升级步骤

  1. 在根 pom 文件中修改hos-app-dependencies的版本号为R2.6.6.3.46,修改hos-starter-dependencies的版本号为R1.5.7.18, 修改 hos-security-dependencies的版本号为R1.0.8.29
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-app-dependencies</artifactId>
            <version>R2.6.6.3.46</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-starter-dependencies</artifactId>
            <version>R1.5.7.18</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-security-dependencies</artifactId>
            <version>R1.0.8.29</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
  1. 关闭浏览器退出功能使用到redis过期key监听事件,产品组需要使用redis缓存,并且开启redis过期缓存监听。
    具体配置参考:redis监听过期和删除事件使用

  2. 新增应用系统退出时是否触发统一认证退出的开关控制

hos-security:
  oauth2:                                               #统一认证oauth2登录配置
    ssoLogout: false                                      #是否退出时触发统一认证退出,默认值为false
  • 默认为false(只退出本系统),如果应用系统走统一认证登录的方式只在门户系统里面打开使用,需要在前端的 env.production文件里面修改环境变量VUE_APP_ENV_TYPE = '1',这样在统一认证登录情况下就不会显示退出按钮,退出统一由门户系统触发
  • 配置成true(退出本系统以及统一认证)时,应用系统通过单点登录时,点击应用系统退出按钮会触发统一认证的退出,影响其他已打开应用的使用
  1. 单点登录的访问路径:

    • 使用VUE框架开发的应用:前端的根路径/sso
      例如:https://114.251.235.9:8327/sso
    • 引入hos框架前端工程包,但是未使用VUE框架开发的应用:能访问存放hos框架的根目录/sso
      例如:http://172.17.1.173:8082/imedical/pis/base/sso sys-no-vue
    • 应用系统走单点登录还有个前提条件是后端yaml文件开启了统一认证(hos-security.oauth2.enable=true),另外统一认证服务是正常的,否则强制走单体登录。
    • 该功能影响通过单点方式打开其他应用具体菜单功能,打开的菜单路由由原来的:/菜单路由,改成:/sso?redirect=/菜单路由
      例如:/organization改成/sso?redirect=/organization
  2. 在线用户查询方式由原来的从缓存获取改成从登录日志表查询,所以如果之前的登录用户没有正常退出,
    会被记录在内,这些数据需要进行手动强制下线处理。

    OnlineUserLogout

# 数据库脚本

请根据数据库实际使用情况,仔细核对数据库类型,下载当前使用的数据库对应的升级脚本。

(以下为 高斯数据库 的升级示例)

如果之前执行过临时版本的升级脚本2.6.6.3.40~2.6.6.3.43.sql,执行以下脚本时遇到错误跳过即可。

  1. 前往 Gitlab 下载页面(https://106.63.4.7:8000/hos/demo/hos-app-demo/-/tree/master/project-strcutre/project-strcutre-demo/oa-doc/data/opengauss/2.6.6.3.46) , 用户名及密码为自己的 Git 账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请。
  2. 下载hos-app-base-opengauss-2.6.6.3.40~2.6.6.3.46.sql文件
  3. 执行更新 SQLhos-app-base-opengauss-2.6.6.3.40~2.6.6.3.46.sql

# 升级提供接口内容如下

# 校验用户名密码

校验用户名密码并返回默认登录业务单元及岗位

接口请求demo

http://localhost:8080/api/openApi/service-bus/valid-and-login-info

ip端口请以实际项目为准。/openApi请以实际项目中的yaml配置项sys.restfulPath值为准。

请求参数

请求头

POST /api/openApi/service-bus/valid-and-login-info
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive

请求体

{
  "data": {
    "loginCode": "xutian",  // 登录名
    "password": "111111"    // 密码
  }
}

响应参数

{
  "code": "200",          // 成功:200,错误:500
  "msg": "操作成功",      // 提示信息
  "data": {               // 返回数据
    "loginCode": "xutian",                                 // 登录名
    "accountName": "徐天",                                 // 账号名称
    "defBusiUnitId": "f4e549ac0e12ec506020abd377022fd3",   // 业务单元ID
    "defBusiUnitCode": "ceshi44",                          // 业务单元编码
    "defBusiUnitDesc": "业务单元测试44",                    // 业务单元描述
    "defBusiPostId": "30fa04a0124e42ca834c918f23a93b5a",   // 业务岗位ID
    "defBusiPostCode": "Test222",                          // 业务岗位编码
    "defBusiPostDesc": "测试岗位222"                       // 业务岗位描述
  }
}

# 获取用户业务单元岗位列表

获取用户所有可用的登录业务单元及岗位

接口请求demo

http://localhost:8080/api/openApi/service-bus/list-bus-unit-post

ip端口请以实际项目为准。/openApi请以实际项目中的yaml配置项sys.restfulPath值为准。

请求参数

请求头

POST /api/openApi/service-bus/list-bus-unit-post
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive

请求体

{
  "current": 1,              // 分页参数 当前页码
  "size": 5,                 // 分页参数 每页数量
  "data": {
    "loginCode": "xutian"    // 登录名
  }
}

响应参数

{
  "code": "200",             // 成功:200,错误:500
  "msg": "操作成功",         // 提示信息
  "data": {                 // 返回数据
    "total": 10,            // 总数
    "size": 5,              // 每页条数
    "current": 1,           // 当前页码
    "records": [            // 返回数据集
      {
        "busiUnitId": "f4e549ac0e12ec506020abd377022fd3",   // 业务单元ID
        "busiUnitCode": "ceshi44",                          // 业务单元编码
        "busiUnitDesc": "业务单元测试44",                    // 业务单元描述
        "busiPostId": "30fa04a0124e42ca834c918f23a93b5a",    // 业务岗位ID
        "busiPostCode": "Test222",                           // 业务岗位编码
        "busiPostDesc": "测试岗位222",                       // 业务岗位描述
        "defaultFlag": true                                 // 是否默认
      },
      {
        "busiUnitId": "1423g5sdf3d3d0c374ecb60fd495b954",
        "busiUnitCode": "xxkywdy",
        "busiUnitDesc": "信息科业务单元",
        "busiPostId": "b3230de8faca23d8e99c5ec5b9146b54",
        "busiPostCode": "xxkglg",
        "busiPostDesc": "信息科管理岗",
        "defaultFlag": false
      },
      {
        "busiUnitId": "17959de263bd0be4e4efd1dcc89539e7",
        "busiUnitCode": "DTC03.A.A69.2-760",
        "busiUnitDesc": "HOS系统部",
        "busiPostId": "b3230de8faca23d8e99c5ec5b9146b54",
        "busiPostCode": "xxkglg",
        "busiPostDesc": "信息科管理岗",
        "defaultFlag": false
      },
      {
        "busiUnitId": "1423g5sdf3d3d0c374ecb60fd495b954",
        "busiUnitCode": "xxkywdy",
        "busiUnitDesc": "信息科业务单元",
        "busiPostId": "00bc3aad905ea71b066984d7e7542c24",
        "busiPostCode": "DTC03.A.A69.2-760-DTC03-20-00004-001",
        "busiPostDesc": "HOS超级系统管理员",
        "defaultFlag": false
      },
      {
        "busiUnitId": "cc463f1ddf0addc997a49541d63519c9",
        "busiUnitCode": "ceshi11",
        "busiUnitDesc": "业务单元测试11",
        "busiPostId": "a27e7828ef0744d7ba12d530443f5bfb",
        "busiPostCode": "Test333",
        "busiPostDesc": "测试岗位333",
        "defaultFlag": false
      }
    ]
  }
}