/**
* 生成code
*
* @return
* @throws Exception
*/
public static String codeGenerate() throws Exception {
CodeInfoDao dao = new CodeInfoDao();
String code = null;
//查询数据库中的所有的数据
List<Map<String, String>> list = dao.queryForList();
if (CollectionUtils.isEmpty(list)) {//如果数据库中没有数据设置code为0001
final AtomicInteger counter = new AtomicInteger(0);
code = String.format("%04d", counter.incrementAndGet());
} else {//如果有数据递增对比,没有的补上
List<Integer> codeInts = list.stream().filter(v -> StringUtils.isNotBlank(v.get("code")))
.map(v -> Integer.parseInt(v.get("code"))).collect(Collectors.toList());
Integer i = 1;
while (true) {
Boolean flag = true;
for (Integer codeInt : codeInts) {
if (i == codeInt) {
flag = false;
}
}
if (flag) {
break;
}
i++;
}
final AtomicInteger counter = new AtomicInteger(i - 1);
code = String.format("%04d", counter.incrementAndGet());
}
return code;
}
03-10
692