1. /**
    2. * 财务自动编号
    3. *
    4. * @return
    5. */
    6. public String caiwuAutoCode() {
    7. //设置前缀
    8. String prefix = "N" + TjDateUtils.getTodayStringForCode();
    9. //自动编号的长度
    10. int numbers = 5;
    11. //1.拼接SQL查询的where语句
    12. // "code LIKE '${prefix}_____'"
    13. StringBuffer sb = new StringBuffer();
    14. sb.append("code LIKE \'").append(prefix);
    15. for (Integer i = 0; i < numbers; i++) {
    16. sb.append("_");
    17. }
    18. sb.append("\'");
    19. LambdaQueryWrapper<Caiwu> lqw = new LambdaQueryWrapper<>();
    20. lqw.apply(sb.toString());
    21. //查询记录
    22. List<Caiwu> list = list(lqw);
    23. if (list != null && list.size() > 0) {
    24. Caiwu caiwu = list.get(list.size() - 1);//取最后1条数据
    25. String code = caiwu.getCode();
    26. log.info("编号:{}", code);
    27. String substring = StringUtils.substring(code, prefix.length());
    28. log.info("截取后的:{}", substring);
    29. Integer codeNumber = Integer.valueOf(substring);
    30. log.info("转换后的:{}", codeNumber);
    31. return prefix + TjStringUtils.getNumberStringWithZero(codeNumber + 1, numbers);
    32. } else {
    33. return prefix + TjStringUtils.getNumberStringWithZero(1, numbers);
    34. }
    35. }