public String makeSn(String sn){
if(sn == null){
sn = "";
}
Map<String, Object> query = new HashMap<>(16);
query.put("sn",sn);
List<String> list = sysDeptService.getSn(query);
for(int i=1;i<9999;i++){
String s = "0000" + i;
s = s.substring(s.length() - 4);
s = sn + s;
if(list == null || list.size()==0){
return s;
}
if(!list.contains(s)){
return s;
}
}
return null;
}
注意sn查询条件sn加匹配任意4位是4个下划线这个拼接||是oracle写法mysql应该有所不同<select id="getSn" resultType="java.lang.String">
select sn from sys_dept
where sn like #{sn} || '____' order by order_num asc
</select>