# 从 R2.6.6.3.48 升级到 R2.6.6.3.49

# 更新时间

2025 年 8 月 19 日

# 更新内容

  1. 增加锁屏功能,锁屏后用户无法进行任何操作,直到解锁。
  2. 修复数据权限中本部门的获取逻辑。
  3. 浏览器关闭事件监听时间实现可配置化。
  4. redis过期监听事件使用redission分布式锁,防止分布式环境下重复执行的问题。
  5. 实现iris版本his的CasTicket认证登录。
  6. 使用dynamictp插件支持从主线程自动往子线程传递mdc信息及threadlocal信息。
  7. 通过登录配置页面的系统特色功能开关,来控制登录界面的效果。 img.png img.png img.png

# 前端升级步骤

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

# 后端升级步骤

  1. 在根 pom 文件中修改hos-app-dependencies的版本号为R2.6.6.3.49,修改hos-starter-dependencies的版本号为R1.5.7.19, 修改 hos-security-dependencies的版本号为R1.0.8.30
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-app-dependencies</artifactId>
            <version>R2.6.6.3.49</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-starter-dependencies</artifactId>
            <version>R1.5.7.19</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.mediway.hos</groupId>
            <artifactId>hos-security-dependencies</artifactId>
            <version>R1.0.8.30</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2.在yml中增加以下配置使其支持从主线程自动往子线程传递mdc信息及threadlocal信息

dynamictp:
  enabled: true                               # 是否启用 dynamictp,默认true
  enabledCollect: true                        # 是否开启监控指标采集,默认true
  collectorTypes: internal_logging          # 监控数据采集器类型(logging | micrometer | internal_logging | JMX),默认micrometer
  monitorInterval: 10                          # 监控时间间隔(报警检测、指标采集),默认5s
  # 告警渠道
  platforms: # 通知报警平台配置
    - platform: email
      platformId: 1
      receivers: liusen_2012@126.com   # 收件人邮箱,多个用逗号隔开
    - platform: wechat
      platformId: 2                            # 平台id,自定义
      urlKey: b38b5661-b8ce-40ee-9474-55cfe6d76087    # webhook 中的 key
      receivers: 15110295660,13261210189                   # 接受人企微账号
  # 全局配置
  globalExecutorProps:                        # 线程池配置 > 全局配置 > 字段默认值
    rejectedHandlerType: CallerRunsPolicy
    queueType: VariableLinkedBlockingQueue
    waitForTasksToCompleteOnShutdown: true
    awaitTerminationSeconds: 3
    taskWrapperNames: ["userinfo", "ttl", "mdc"]
    queueTimeout: 300
    runTimeout: 300
    notifyItems:                     # 报警项,不配置自动会按默认值配置(变更通知、容量报警、活性报警、拒绝报警、任务超时报警)
      - type: change                 # 线程池核心参数变更通知
        silencePeriod: 120           # 通知静默时间(单位:s),默认值1,0表示不静默

      - type: capacity               # 队列容量使用率,报警项类型,查看源码 NotifyTypeEnum枚举类
        threshold: 80                # 报警阈值,意思是队列使用率达到70%告警;默认值=70
        count: 2                     # 在一个统计周期内,如果触发阈值的数量达到 count,则触发报警;默认值=1
        period: 30                   # 报警统计周期(单位:s),默认值=120
        silencePeriod: 0             # 报警静默时间(单位:s),0表示不静默,默认值=120

      - type: liveness               # 线程池活性
        threshold: 80                # 报警阈值,意思是活性达到70%告警;默认值=70
        count: 3                     # 在一个统计周期内,如果触发阈值的数量达到 count,则触发报警;默认值=1
        period: 30                   # 报警统计周期(单位:s),默认值=120
        silencePeriod: 0             # 报警静默时间(单位:s),0表示不静默;默认值=120

      - type: reject                 # 触发任务拒绝告警
        count: 1                     # 在一个统计周期内,如果触发拒绝策略次数达到 count,则触发报警;默认值=1
        period: 30                   # 报警统计周期(单位:s),默认值=120
        silencePeriod: 0             # 报警静默时间(单位:s),0表示不静默;默认值=120

      - type: run_timeout            # 任务执行超时告警
        count: 20                    # 在一个统计周期内,如果执行超时次数达到 count,则触发报警;默认值=10
        period: 30                   # 报警统计周期(单位:s),默认值=120
        silencePeriod: 30            # 报警静默时间(单位:s),0表示不静默;默认值=120

      - type: queue_timeout          # 任务排队超时告警
        count: 5                     # 在一个统计周期内,如果排队超时次数达到 count,则触发报警;默认值=10
        period: 30                   # 报警统计周期(单位:s),默认值=120
        silencePeriod: 0             # 报警静默时间(单位:s),0表示不静默;默认值=120

  # 线程池配置
  executors:                               # 动态线程池配置,都有默认值,采用默认值的可以不配置该项,减少配置量
    - threadPoolName: dtpExecutor1         # 线程池名称,必填
      threadPoolAliasName: 测试线程池        # 线程池别名,可选
      executorType: common                 # 线程池类型 common、eager、ordered、scheduled、priority,默认 common
      corePoolSize: 6                      # 核心线程数,默认1
      maximumPoolSize: 8                   # 最大线程数,默认cpu核数
      queueCapacity: 2000                  # 队列容量,默认1024
      queueType: VariableLinkedBlockingQueue         # 任务队列,查看源码QueueTypeEnum枚举类,默认VariableLinkedBlockingQueue
      rejectedHandlerType: AbortPolicy          # 拒绝策略,查看RejectedTypeEnum枚举类,默认AbortPolicy
      keepAliveTime: 60                              # 空闲线程等待超时时间,默认60
      threadNamePrefix: pro                         # 线程名前缀,默认dtp
      allowCoreThreadTimeOut: false                  # 是否允许核心线程池超时,默认false
      waitForTasksToCompleteOnShutdown: true         # 参考spring线程池设计,优雅关闭线程池,默认true
      awaitTerminationSeconds: 5                     # 优雅关闭线程池时,阻塞等待线程池中任务执行时间,默认3,单位(s)
      preStartAllCoreThreads: false                  # 是否预热所有核心线程,默认false
      runTimeout: 200                                # 任务执行超时阈值,单位(ms),默认0(不统计)
      queueTimeout: 100                              # 任务在队列等待超时阈值,单位(ms),默认0(不统计)
      tryInterrupt: false                            # 执行超时后是否中断线程,默认false
      taskWrapperNames: ["userinfo", "ttl", "mdc"]               # 任务包装器名称,继承TaskWrapper接口
      notifyEnabled: true                            # 是否开启报警,默认true
    - threadPoolName: test         # 线程池名称,必填
      threadPoolAliasName: 测试线程池        # 线程池别名,可选
      executorType: eager                 # 线程池类型 common、eager、ordered、scheduled、priority,默认 common
      corePoolSize: 2                      # 核心线程数,默认1
      maximumPoolSize: 4                   # 最大线程数,默认cpu核数
      queueCapacity: 100                  # 队列容量,默认1024
      queueType: VariableLinkedBlockingQueue         # 任务队列,查看源码QueueTypeEnum枚举类,默认VariableLinkedBlockingQueue
      rejectedHandlerType: AbortPolicy          # 拒绝策略,查看RejectedTypeEnum枚举类,默认AbortPolicy
      keepAliveTime: 60                              # 空闲线程等待超时时间,默认60
      threadNamePrefix: pro                         # 线程名前缀,默认dtp
      allowCoreThreadTimeOut: false                  # 是否允许核心线程池超时,默认false
      waitForTasksToCompleteOnShutdown: true         # 参考spring线程池设计,优雅关闭线程池,默认true
      awaitTerminationSeconds: 5                     # 优雅关闭线程池时,阻塞等待线程池中任务执行时间,默认3,单位(s)
      preStartAllCoreThreads: false                  # 是否预热所有核心线程,默认false
      runTimeout: 20000                                # 任务执行超时阈值,单位(ms),默认0(不统计)
      queueTimeout: 10000                              # 任务在队列等待超时阈值,单位(ms),默认0(不统计)
      tryInterrupt: false                            # 执行超时后是否中断线程,默认false
      taskWrapperNames: ["userinfo", "ttl", "mdc"]               # 任务包装器名称,继承TaskWrapper接口
      notifyEnabled: true                            # 是否开启报警,默认true
      platformIds: [2]

# 数据库脚本

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

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

  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.49) , 用户名及密码为自己的 Git 账号密码,没有权限的话找王鑫申请,没有账号的话找自己的主管向公司申请。
  2. 下载hos-app-base-opengauss-2.6.6.3.46~2.6.6.3.49.sql文件
  3. 执行更新 SQLhos-app-base-opengauss-2.6.6.3.46~2.6.6.3.49.sql