用(Atomic原子类 使用)实现自增

// 静态变量存储最大值
private static final AtomicInteger atomicNum = new AtomicInteger();
private static final Integer INIT_CODE_NUM = 0;
public String getCode(){
   //获取当前月日
   String date = new SimpleDateFormat("MMdd").format(new Date());
   String code = "XM"+date+"-";
   String format="";
   //从数据库筛选
   LambdaQueryWrapper<Project> wrapper = new LambdaQueryWrapper<>();
   wrapper.orderByDesc(Project::getCode);
   String projectCode = projectServiceImpl.list(wrapper).iterator().next().getCode();


   if(!ValidationUtil.isEmpty(projectCode)){
      //获取到当前code月日
      String proDate = projectCode.substring(projectCode.indexOf("M")+1,projectCode.length() - 5);
      if (proDate.equals(date)){
         String substring = projectCode.substring(projectCode.length() - 4);
         atomicNum.set(Integer.parseInt(substring));
      }else {
      //重置数量
         atomicNum.set(INIT_CODE_NUM);
      }
      //生成四位随机数自加1后并返回
      format = String.format("%04d", atomicNum.incrementAndGet());

   }
   return code+format;
}
posted @   爱笙灬  阅读(150)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
点击右上角即可分享
微信分享提示