|
@@ -384,22 +384,20 @@ public class CreatePdfUtil {
|
|
|
* @return
|
|
|
*/
|
|
|
public String getPaperType(ExamPrintPlan examPrintPlan, ExamTaskDetail examTaskDetail, ExamDetail examDetail, ExamDetailCourse examDetailCourse) {
|
|
|
- Map<String, Object> paperTypeMap = CreatePdfCacheUtil.getCurrentPaperType(examPrintPlan.getId());
|
|
|
- paperTypeMap = Objects.isNull(paperTypeMap) ? paperTypeMap = new HashMap<>() : paperTypeMap;
|
|
|
String key = examDetail.getSchoolId()
|
|
|
- + Math.abs(examDetail.getExamStartTime() + examDetail.getExamEndTime())
|
|
|
- + examDetail.getExamPlace()
|
|
|
- + examDetailCourse.getCourseCode()
|
|
|
- + examDetailCourse.getPaperNumber();
|
|
|
+ + "_" + examDetail.getExamStartTime()
|
|
|
+ + "_" + examDetail.getExamEndTime()
|
|
|
+ + "_" + examDetail.getExamPlace()
|
|
|
+ + "_" + examDetailCourse.getCourseCode()
|
|
|
+ + "_" + examDetailCourse.getPaperNumber();
|
|
|
String paperType = null;
|
|
|
boolean lock = true;
|
|
|
for (int i = 0; i < SystemConstant.MAX_RETRY_COUNT; i++) {
|
|
|
lock = redisUtil.lock(key, SystemConstant.REDIS_CACHE_TIME_OUT);
|
|
|
if (lock) {
|
|
|
try {
|
|
|
- if (paperTypeMap.containsKey(key)) {
|
|
|
- paperType = (String) paperTypeMap.get(key);
|
|
|
- } else {
|
|
|
+ paperType = CreatePdfCacheUtil.getPaperType(key);
|
|
|
+ if (Objects.isNull(paperType)) {
|
|
|
//抽取卷型
|
|
|
DrawRuleEnum drawRule = Objects.nonNull(examPrintPlan.getDrawRule()) ? examPrintPlan.getDrawRule() : DrawRuleEnum.ONE;
|
|
|
//未曝光卷型
|
|
@@ -425,9 +423,7 @@ public class CreatePdfUtil {
|
|
|
}
|
|
|
int paperRandom = new Random().nextInt(paperTypes.length);
|
|
|
paperType = paperTypes[paperRandom];
|
|
|
- String finalPaperType = paperType;
|
|
|
- paperTypeMap.computeIfAbsent(key, v -> finalPaperType);
|
|
|
- CreatePdfCacheUtil.setCurrentPaperType(examPrintPlan.getId(), paperTypeMap);
|
|
|
+ CreatePdfCacheUtil.setPaperType(key, paperType);
|
|
|
}
|
|
|
break;
|
|
|
} catch (Exception e) {
|