|
@@ -953,6 +953,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
library.setTaskNumber(1);
|
|
|
library.setStatus(LibraryStatus.WAITING);
|
|
|
libraryDao.save(library);
|
|
|
+ group.setLibraryCount(group.getLibraryCount() + 1);
|
|
|
// 开启双评时需要判断是否生成第二份评卷任务
|
|
|
if (group.getDoubleRate() != null && group.getDoubleRate() > 0) {
|
|
|
boolean needDouble = false;
|
|
@@ -960,16 +961,17 @@ public class MarkServiceImpl implements MarkService {
|
|
|
needDouble = true;
|
|
|
} else {
|
|
|
double studentCount = subject.getUploadCount();
|
|
|
- // double libraryCount = group.getLibraryCount();
|
|
|
+ double libraryCount = group.getLibraryCount();
|
|
|
double doubleCount = libraryDao.countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(
|
|
|
group.getExamId(), group.getSubjectCode(), group.getNumber(), 2);
|
|
|
int expectCount = (int) (studentCount * group.getDoubleRate());
|
|
|
// 随机数判断加入当前已经生成双评任务的比例加权
|
|
|
- // needDouble = doubleCount < expectCount
|
|
|
- // && ((studentCount - libraryCount + doubleCount) <=
|
|
|
- // (expectCount - doubleCount) || Math
|
|
|
- // .random() < group.getDoubleRate());
|
|
|
- needDouble = doubleCount < expectCount && Math.random() < group.getDoubleRate();
|
|
|
+ // 实际双评任务数小于理论生成数 && (剩余未生成双评的数量小于剩余应生成的数量||随机比例)
|
|
|
+ needDouble = doubleCount < expectCount
|
|
|
+ && ((studentCount - libraryCount + doubleCount) <= (expectCount - doubleCount) || Math
|
|
|
+ .random() < group.getDoubleRate());
|
|
|
+ // needDouble = doubleCount < expectCount && Math.random() <
|
|
|
+ // group.getDoubleRate();
|
|
|
}
|
|
|
if (needDouble) {
|
|
|
library = new MarkLibrary();
|
|
@@ -982,6 +984,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
library.setTaskNumber(2);
|
|
|
library.setStatus(LibraryStatus.WAITING);
|
|
|
libraryDao.save(library);
|
|
|
+ group.setLibraryCount(group.getLibraryCount() + 1);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|