Commit 40d50d15 authored by wanglong's avatar wanglong

修复项目编号自增重复问题

parent 976fd7d0
...@@ -31,6 +31,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController; ...@@ -31,6 +31,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
...@@ -92,18 +93,30 @@ public class ProjectController extends BaseController { ...@@ -92,18 +93,30 @@ public class ProjectController extends BaseController {
projectInitiationService.start(project); projectInitiationService.start(project);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
// 静态变量存储最大值
private static final AtomicInteger atomicNum = new AtomicInteger();
private static final Integer INIT_CODE_NUM = 0;
public String getCode(){ public String getCode(){
String date = new SimpleDateFormat("MMdd").format(new Date()); String date = new SimpleDateFormat("MMdd").format(new Date());
String code = "XM"+date+"-"; String code = "XM"+date+"-";
int c = 1; String format="";
LambdaQueryWrapper<Project> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Project> wrapper = new LambdaQueryWrapper<>();
wrapper.orderByDesc(Project::getCode); wrapper.orderByDesc(Project::getCode);
String projectCode = projectServiceImpl.list(wrapper).iterator().next().getCode(); String projectCode = projectServiceImpl.list(wrapper).iterator().next().getCode();
if(!ValidationUtil.isEmpty(projectCode)){ if(!ValidationUtil.isEmpty(projectCode)){
c = Integer.parseInt(projectCode.substring(projectCode.indexOf("-")+1,projectCode.length()))+1; 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);
}
format = String.format("%04d", atomicNum.incrementAndGet());
} }
return code+c; return code+format;
} }
public Map<String,String> getInfo(String regionName,String regionCode,Long sequenceNbr){ public Map<String,String> getInfo(String regionName,String regionCode,Long sequenceNbr){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment