[修改] 并发 流程编号重复问题

This commit is contained in:
bupengxiang
2023-05-18 17:59:21 +08:00
parent 0dd034e730
commit 09bafc78dc
2 changed files with 9 additions and 2 deletions
@@ -233,6 +233,7 @@ public class ActivitDefineController {
List<BusProcessName> busProcessNames = new ArrayList<>(); List<BusProcessName> busProcessNames = new ArrayList<>();
StringBuilder taskIds = new StringBuilder(); StringBuilder taskIds = new StringBuilder();
int i = 0;
for (StartProcessEO startProcessEO : startProcessEOList) { for (StartProcessEO startProcessEO : startProcessEOList) {
startProcessEO.setLoginUserId(UserUtils.getUserId()); startProcessEO.setLoginUserId(UserUtils.getUserId());
if(com.adc.da.util.utils.StringUtils.isNotEmpty(startProcessEO.getId())){ if(com.adc.da.util.utils.StringUtils.isNotEmpty(startProcessEO.getId())){
@@ -240,6 +241,10 @@ public class ActivitDefineController {
} }
String prcType = startProcessEO.getPrcType(); String prcType = startProcessEO.getPrcType();
Map<String, Object> prcNameAndPrcNum = createPrcNameAndPrcNum(prcType); Map<String, Object> prcNameAndPrcNum = createPrcNameAndPrcNum(prcType);
//并发 防止prcNum重复
String prcNumStr = (String) prcNameAndPrcNum.get("prcNum");
int num = Integer.parseInt(prcNumStr.substring(8)) + i++;
String prcNum = prcNumStr.substring(0, 8) + String.format("%08d", num);
startProcessEO.setId((String) prcNameAndPrcNum.get("id")); startProcessEO.setId((String) prcNameAndPrcNum.get("id"));
@@ -276,7 +281,7 @@ public class ActivitDefineController {
busProcessName.setCreatUser(userId); busProcessName.setCreatUser(userId);
UserEO byId = userEoService.getUserById(userId); UserEO byId = userEoService.getUserById(userId);
busProcessName.setCreatUserName(byId.getUsname()); busProcessName.setCreatUserName(byId.getUsname());
busProcessName.setPrcNum((String) prcNameAndPrcNum.get("prcNum")); busProcessName.setPrcNum(prcNum);
busProcessName.setPrcType(prcType); busProcessName.setPrcType(prcType);
// String data = JSON.toJSONString(dataMsg, SerializerFeature.DisableCircularReferenceDetect); // String data = JSON.toJSONString(dataMsg, SerializerFeature.DisableCircularReferenceDetect);
// String dateId = activitDefineService.saveOrUpdateDate(prcType,data,task.getId(),pi.getId(),reportId); // String dateId = activitDefineService.saveOrUpdateDate(prcType,data,task.getId(),pi.getId(),reportId);
@@ -295,7 +300,7 @@ public class ActivitDefineController {
String newId = UUID.randomUUID().toString().replace("-", ""); String newId = UUID.randomUUID().toString().replace("-", "");
one.setId(newId); one.setId(newId);
one.setPrcNum((String) prcNameAndPrcNum.get("prcNum")); one.setPrcNum(prcNum);
// one.setPrcName((String) prcNameAndPrcNum.get("prcName")); // one.setPrcName((String) prcNameAndPrcNum.get("prcName"));
one.setPrcName(startProcessEO.getPrcName()); one.setPrcName(startProcessEO.getPrcName());
one.setPrcId(pi.getId()); one.setPrcId(pi.getId());
@@ -376,6 +376,7 @@ public class TodoTaskController {
wrapper.eq(BusProcessName::getPrcId,task.getProcessInstanceId()); wrapper.eq(BusProcessName::getPrcId,task.getProcessInstanceId());
BusProcessName one = iBusProcessNameService.getOne(wrapper); BusProcessName one = iBusProcessNameService.getOne(wrapper);
one.setDataId(reportId); one.setDataId(reportId);
one.setPrcName((String) JSONObject.parseObject(dataJson).get("prcName"));
iBusProcessNameService.updateById(one); iBusProcessNameService.updateById(one);
} }
return WrapMapper.ok(task.getProcessInstanceId()); return WrapMapper.ok(task.getProcessInstanceId());
@@ -417,6 +418,7 @@ public class TodoTaskController {
wrapper.eq(BusProcessName::getPrcId,task.getProcessInstanceId()); wrapper.eq(BusProcessName::getPrcId,task.getProcessInstanceId());
BusProcessName one = iBusProcessNameService.getOne(wrapper); BusProcessName one = iBusProcessNameService.getOne(wrapper);
one.setDataId(reportId); one.setDataId(reportId);
one.setPrcName((String) JSONObject.parseObject(dataJson).get("prcName"));
iBusProcessNameService.updateById(one); iBusProcessNameService.updateById(one);
} }
} else { } else {