生成单据的流水号
一,创建工具
/*** description: 序列号编码枚举* author: wuyc* createTime: 2024-07-23 10:39:00*/
@Getter
public enum SerialCodeEnum {PRICE_MASTER_DATA_CODE_PC("PC", "PC%s", "价格主数据价格记录号,PC+年月日+四位流水号"),SOURCE_GOODS_ORDER_CODE_MS("MS", "MS%s", "货源清单单据号编码,MS+年月日+四位流水号"),QUALIFICATION_DATA_CODE_AMQ("AMQ", "AMQ%s", "资质数据编码,AMQ+年月日+四位流水号"),EXCHANGERATE_CODE_SER("SER", "SER%s", "汇率维护编码,SER+年月日+四位流水号"),SUPPPLIERCHANGEORDER_DATA_CODE_SCN("SCN", "SCN%s", "供应商信息变更单编码,SCN+年月日+四位流水号");private final String code;private final String format;private final String desc;SerialCodeEnum(String code, String format, String desc) {this.code = code;this.format = format;this.desc = desc;}}
二 在redis工具类中加上下面的方法
public String getBusinessCode(String keyConstant) {String dateStr = DateUtils.localDateTimeFormat("yyyyMMdd");String format = String.format(keyConstant, dateStr);Long increment = this.increment(format, 1L);this.expire(format, 1L, TimeUnit.DAYS);String code = String.format("%0".concat(String.valueOf(4)).concat("d"), increment);return format + code;}
三,为编码赋值
qualificationReviewDo.setCode(redisUtils.getBusinessCode(SerialCodeEnum.QUALIFICATION_DATA_CODE_AMQ.getFormat()));