|
@@ -45,6 +45,7 @@ import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.MarkConfigItem;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
|
|
@@ -848,8 +849,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
|
|
sliceConfig = exam.getSliceConfigList();
|
|
sliceConfig = exam.getSliceConfigList();
|
|
}
|
|
}
|
|
if (!sliceConfig.isEmpty()) {
|
|
if (!sliceConfig.isEmpty()) {
|
|
- List<PictureTag> tags = PictureConfigTransform.process(sliceConfig, getSliceTags(student, withGroupScore))
|
|
|
|
- .get(index);
|
|
|
|
|
|
+ List<PictureTag> tags = PictureConfigTransform.process(sliceConfig,
|
|
|
|
+ getSliceTags(student, withGroupScore, sliceConfig)).get(index);
|
|
if (tags != null) {
|
|
if (tags != null) {
|
|
list.addAll(tags);
|
|
list.addAll(tags);
|
|
}
|
|
}
|
|
@@ -880,7 +881,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
|
|
}
|
|
}
|
|
if (!sliceConfig.isEmpty()) {
|
|
if (!sliceConfig.isEmpty()) {
|
|
// 有裁切图配置时才需要获取原始评卷标记信息
|
|
// 有裁切图配置时才需要获取原始评卷标记信息
|
|
- tagMap = getSliceTags(student, withGroupScore);
|
|
|
|
|
|
+ tagMap = getSliceTags(student, withGroupScore, sliceConfig);
|
|
}
|
|
}
|
|
Map<Integer, List<PictureTag>> map = PictureConfigTransform.process(sliceConfig, tagMap);
|
|
Map<Integer, List<PictureTag>> map = PictureConfigTransform.process(sliceConfig, tagMap);
|
|
// List<PictureTag> list = map.get(1);
|
|
// List<PictureTag> list = map.get(1);
|
|
@@ -896,14 +897,15 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
|
|
* 根据考生获取所有评卷分组的评卷标记内容
|
|
* 根据考生获取所有评卷分组的评卷标记内容
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public Map<MarkGroup, List<OriginTag>> getSliceTags(ExamStudent student, boolean withGroupScore) {
|
|
|
|
|
|
+ public Map<MarkGroup, List<OriginTag>> getSliceTags(ExamStudent student, boolean withGroupScore,
|
|
|
|
+ List<PictureConfigItem> sliceConfig) {
|
|
Map<MarkGroup, List<OriginTag>> tagMap = new HashMap<MarkGroup, List<OriginTag>>();
|
|
Map<MarkGroup, List<OriginTag>> tagMap = new HashMap<MarkGroup, List<OriginTag>>();
|
|
List<ExamQuestion> questions = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
|
|
List<ExamQuestion> questions = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
|
|
student.getSubjectCode(), false);
|
|
student.getSubjectCode(), false);
|
|
List<ScoreItem> scoreList = student.getScoreList(false);
|
|
List<ScoreItem> scoreList = student.getScoreList(false);
|
|
List<MarkGroup> markGroups = groupService.findByExamAndSubject(student.getExamId(), student.getSubjectCode());
|
|
List<MarkGroup> markGroups = groupService.findByExamAndSubject(student.getExamId(), student.getSubjectCode());
|
|
for (MarkGroup group : markGroups) {
|
|
for (MarkGroup group : markGroups) {
|
|
- tagMap.put(group, buildOriginTags(student, group, questions, scoreList, withGroupScore));
|
|
|
|
|
|
+ tagMap.put(group, buildOriginTags(student, group, questions, scoreList, withGroupScore, sliceConfig));
|
|
}
|
|
}
|
|
return tagMap;
|
|
return tagMap;
|
|
}
|
|
}
|
|
@@ -976,7 +978,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private List<OriginTag> buildOriginTags(ExamStudent student, MarkGroup group, List<ExamQuestion> questions,
|
|
private List<OriginTag> buildOriginTags(ExamStudent student, MarkGroup group, List<ExamQuestion> questions,
|
|
- List<ScoreItem> scoreList, boolean withGroupScore) {
|
|
|
|
|
|
+ List<ScoreItem> scoreList, boolean withGroupScore, List<PictureConfigItem> sliceConfig) {
|
|
if (scoreList.size() == 0) {
|
|
if (scoreList.size() == 0) {
|
|
return new LinkedList<>();
|
|
return new LinkedList<>();
|
|
}
|
|
}
|
|
@@ -997,14 +999,22 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
|
|
List<OriginTag> originTags = new LinkedList<>();
|
|
List<OriginTag> originTags = new LinkedList<>();
|
|
// 首先添加本大题总得分
|
|
// 首先添加本大题总得分
|
|
if (withGroupScore) {
|
|
if (withGroupScore) {
|
|
- List<PictureConfigItem> configList = group.getPictureConfigList();
|
|
|
|
|
|
+ List<MarkConfigItem> configList = group.getPictureConfigList();
|
|
if (configList.isEmpty()) {
|
|
if (configList.isEmpty()) {
|
|
// 未设置评卷区域,则自动取第一张裁切图的固定位置
|
|
// 未设置评卷区域,则自动取第一张裁切图的固定位置
|
|
originTags.add(new OriginTag(format.format(score), 1, 10, 10));
|
|
originTags.add(new OriginTag(format.format(score), 1, 10, 10));
|
|
} else {
|
|
} else {
|
|
// 取第一个显示区域相对裁切图的位置
|
|
// 取第一个显示区域相对裁切图的位置
|
|
- PictureConfigItem config = configList.get(0);
|
|
|
|
- originTags.add(new OriginTag(format.format(score), config.getI(), config.getX(), config.getY()));
|
|
|
|
|
|
+ MarkConfigItem config = configList.get(0);
|
|
|
|
+ OriginTag tag = new OriginTag(format.format(score), config.getI(), config.getX(), config.getY());
|
|
|
|
+ if (config.getX() <= 1 && config.getY() <= 1
|
|
|
|
+ && sliceConfig.get(config.getI() - 1).getW() > 0
|
|
|
|
+ && sliceConfig.get(config.getI() - 1).getH() > 0) {
|
|
|
|
+ tag = new OriginTag(format.format(score), config.getI(),
|
|
|
|
+ config.getX() * sliceConfig.get(config.getI() - 1).getW(),
|
|
|
|
+ config.getY() * sliceConfig.get(config.getI() - 1).getH());
|
|
|
|
+ }
|
|
|
|
+ originTags.add(tag);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 检测应该使用哪个评卷任务的轨迹记录
|
|
// 检测应该使用哪个评卷任务的轨迹记录
|