|
@@ -53,6 +53,8 @@ import java.math.BigDecimal;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
+import java.util.concurrent.locks.Lock;
|
|
|
|
+import java.util.concurrent.locks.ReentrantLock;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -66,6 +68,8 @@ import java.util.stream.Collectors;
|
|
public class PrintCommonServiceImpl implements PrintCommonService {
|
|
public class PrintCommonServiceImpl implements PrintCommonService {
|
|
private final static Logger log = LoggerFactory.getLogger(PrintCommonServiceImpl.class);
|
|
private final static Logger log = LoggerFactory.getLogger(PrintCommonServiceImpl.class);
|
|
|
|
|
|
|
|
+ Lock lock = new ReentrantLock();
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
private DictionaryConfig dictionaryConfig;
|
|
private DictionaryConfig dictionaryConfig;
|
|
|
|
|
|
@@ -1151,7 +1155,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
|
|
examStudent.setMajorName(basicStudentResult.getMajorName());
|
|
examStudent.setMajorName(basicStudentResult.getMajorName());
|
|
String prefix = convertUtil.randomNumberPrefix(examShortCode, courseShortCode, map.get(String.valueOf(basicClazzId)), basicCardRule == null ? null : basicCardRule.getExamNumberDigit());
|
|
String prefix = convertUtil.randomNumberPrefix(examShortCode, courseShortCode, map.get(String.valueOf(basicClazzId)), basicCardRule == null ? null : basicCardRule.getExamNumberDigit());
|
|
SerialNumberParams ticketNumberParams = new SerialNumberParams(SystemConstant.NUMBER_CACHE + "ticketNumber-" + schoolId, prefix, StringUtils.isBlank(prefix) ? 8 : basicCardRule.getExamNumberDigit() - prefix.length());
|
|
SerialNumberParams ticketNumberParams = new SerialNumberParams(SystemConstant.NUMBER_CACHE + "ticketNumber-" + schoolId, prefix, StringUtils.isBlank(prefix) ? 8 : basicCardRule.getExamNumberDigit() - prefix.length());
|
|
- examStudent.setTicketNumber(createTempNumber(ticketNumberParams));
|
|
|
|
|
|
+ examStudent.setTicketNumber(createTicketNumber(ticketNumberParams));
|
|
examStudent.setSiteNumber(String.valueOf(atomicInteger.getAndIncrement()));
|
|
examStudent.setSiteNumber(String.valueOf(atomicInteger.getAndIncrement()));
|
|
examStudent.setExtendFields(extendFields);
|
|
examStudent.setExtendFields(extendFields);
|
|
examStudent.setCreateId(sysUser.getId());
|
|
examStudent.setCreateId(sysUser.getId());
|
|
@@ -1178,7 +1182,12 @@ public class PrintCommonServiceImpl implements PrintCommonService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public String createTicketNumber(SerialNumberParams serialNumberParams) {
|
|
public String createTicketNumber(SerialNumberParams serialNumberParams) {
|
|
- return convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit());
|
|
|
|
|
|
+ try {
|
|
|
|
+ lock.lock();
|
|
|
|
+ return convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit());
|
|
|
|
+ } finally {
|
|
|
|
+ lock.unlock();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|