流水号的工具类

@Component
public class CreateCodeUtil {

    @Resource
    private JdbcTemplate jdbcTemplate;

    public  String createCode(){
        //查询数据库中最大的流水号
        String sql = "select MAX(a.FILE_CODE+0) maxCode FROM t_file_info a";
        List<Map<String,Object>> list;
        //调用templet方法
        list = jdbcTemplate.queryForList(sql);
        String resultCode = "";
        String maxCode = "";
        Object object = list.get(0).get("maxCode");
        if (list.size() > 0 && object!=null) {
            maxCode =  new DecimalFormat("0").format((double)object);
        }
        //指定生成的时间格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String preCode = simpleDateFormat.format(new Date());
        //若果如果当天有生成的编码,直接在尾号加1;若果没有直接生成新的编码
        if (maxCode!=null&&maxCode.contains(preCode)){
            Integer endCode = Integer.parseInt(maxCode.substring(8));
            //计算结果
            endCode = endCode+10000+1;
            resultCode = preCode+endCode.toString().substring(1);
        }else {
            resultCode = preCode+"0001";
        }
        return resultCode;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要生成形如20131210001的流水号,可以利用Java的日期类和格式化工具类来实现。 首先,需要获取当前的日期和流水号的最大值。可以使用Java的LocalDate类来获取当前日期,使用DateTimeFormatter类来格式化日期。示例代码如下: ```java import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class SerialNumberGenerator { public static void main(String[] args) { LocalDate currentDate = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); String formattedDate = currentDate.format(formatter); System.out.println("当前日期:" + formattedDate); } } ``` 上述代码中,使用`LocalDate.now()`获取当前日期,使用`DateTimeFormatter.ofPattern("yyyyMMdd")`来定义日期的格式,然后使用`format()`方法将日期转化成字符串。最后输出当前日期。 接下来,需要确定流水号的最大值,可以从数据库或其他数据源中获取。在此示例中,假设最大值为100,可以定义一个变量来存储最大值,然后每次生成流水号时递增。示例代码如下: ```java public class SerialNumberGenerator { private static int maxSerialNumber = 100; public String generateSerialNumber() { // 生成流水号逻辑,省略 maxSerialNumber++; return formattedDate + String.format("%05d", maxSerialNumber); } } ``` 上述代码中,定义了一个静态变量`maxSerialNumber`作为最大流水号,每次生成流水号时递增。通过`String.format("%05d", maxSerialNumber)`将数字格式化为5位数,不足的位数用0填充。 最后,可以在需要生成流水号的地方调用`generateSerialNumber()`方法,即可得到相应的流水号

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值