You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Guidewire ClaimCenter支票唯一ID生成实现技术咨询

Guidewire ClaimCenter 支票唯一ID生成实现(基于SequenceUtil)

前提准备

在ClaimCenter系统配置中创建专属序列:

  • 进入 Configuration > System > Sequences
  • 新增序列(比如命名为PAYMENT_CHECK_NUMBER),设置起始值、步长等参数

代码实现修改

基于你提供的代码框架,调整如下:

package libraries

uses gw.plugin.claimnumbergen.IClaimNumGenAdapter
uses gw.plugin.util.SequenceUtil
uses java.text.SimpleDateFormat

class PaymentNumberGenerate implements IClaimNumGenAdapter {

  // 定义支票编号前缀,可根据业务需求修改
  private static final String CHECK_NUMBER_PREFIX = "CHK-"
  // 序列名称,需与系统配置中创建的序列名一致
  private static final String SEQUENCE_NAME = "PAYMENT_CHECK_NUMBER"

  override function generateNewClaimNumber(claim : Claim) : String {
    // 获取下一个序列值
    def sequenceValue = SequenceUtil.getNextSequenceValue(SEQUENCE_NAME)
    // 格式化编号:前缀 + 补零后的序列值(比如补到8位)
    return "${CHECK_NUMBER_PREFIX}${String.format("%08d", sequenceValue)}"
  }

  override function generateTempClaimNumber(claim : Claim) : String {
    // 生成临时编号:前缀 + 当前时间戳,避免重复
    def timestamp = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())
    return "${CHECK_NUMBER_PREFIX}TEMP-${timestamp}"
  }

  override function cancelNewClaimNumber(claim : Claim, claimNumber : String) {
    // 若需要回收已生成的编号,调用SequenceUtil.returnSequenceValue
    // 注意:仅当编号未被实际使用时才建议回收,否则会导致重复
    if (claimNumber.startsWith(CHECK_NUMBER_PREFIX) && !claimNumber.contains("TEMP")) {
      def sequencePart = claimNumber.replace(CHECK_NUMBER_PREFIX, "")
      try {
        def sequenceValue = Integer.parseInt(sequencePart)
        SequenceUtil.returnSequenceValue(SEQUENCE_NAME, sequenceValue)
      } catch (NumberFormatException e) {
        // 日志记录解析失败,可根据需求添加
        log.error("Failed to parse check number for cancellation: ${claimNumber}", e)
      }
    }
  }
}

关键说明

  • SequenceUtil核心方法:
    • getNextSequenceValue(String sequenceName):从指定序列获取下一个唯一值,系统自动维护序列递增
    • returnSequenceValue(String sequenceName, Long value):将未使用的序列值回收,仅在编号未被持久化时使用
  • 编号格式化:通过String.format补零保证编号长度一致,便于后续存储和展示
  • 临时编号:用时间戳生成临时值,适用于需要临时标识但未最终确认的场景

内容的提问来源于stack exchange,提问作者manswaag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:12:14