|
@@ -294,9 +294,21 @@ public class SubjectQuestionDTO {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private String errMsg(String err) {
|
|
|
|
+ return errMsg(null, err);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String errMsg(Integer groupNumber, String err) {
|
|
|
|
+ if (groupNumber == null) {
|
|
|
|
+ return "[" + subjectCode + "] " + err;
|
|
|
|
+ } else {
|
|
|
|
+ return "[" + subjectCode + "] 分组号" + groupNumber + " " + err;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
public boolean validateGroupNumber(List<String> error) {
|
|
public boolean validateGroupNumber(List<String> error) {
|
|
- Set<Integer> trialSet= new HashSet<>();
|
|
|
|
- Map<Integer,Set<Integer>> arbitrateTypeMap = new HashMap<>();
|
|
|
|
|
|
+ Set<Integer> trialSet = new HashSet<>();
|
|
|
|
+ Map<Integer, Set<Integer>> arbitrateTypeMap = new HashMap<>();
|
|
Map<Integer, Set<Double>> doubleRateMap = new HashMap<>();
|
|
Map<Integer, Set<Double>> doubleRateMap = new HashMap<>();
|
|
Map<Integer, Set<String>> modeMap = new HashMap<>();
|
|
Map<Integer, Set<String>> modeMap = new HashMap<>();
|
|
Map<Integer, Set<Integer>> policyMap = new HashMap<>();
|
|
Map<Integer, Set<Integer>> policyMap = new HashMap<>();
|
|
@@ -304,73 +316,84 @@ public class SubjectQuestionDTO {
|
|
|
|
|
|
for (ExamQuestion question : list) {
|
|
for (ExamQuestion question : list) {
|
|
if (question.getGroupNumber() == null || question.getGroupNumber() < 0) {
|
|
if (question.getGroupNumber() == null || question.getGroupNumber() < 0) {
|
|
- error.add("[" + subjectCode + "] 有评卷分组为空的记录");
|
|
|
|
|
|
+ error.add(errMsg("评卷分组为空"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
trialSet.add(question.getTrialCount());
|
|
trialSet.add(question.getTrialCount());
|
|
- if (trialSet.size()>1) {
|
|
|
|
- error.add("[" + subjectCode + "] 有试评数量不一致的记录");
|
|
|
|
|
|
+ if (trialSet.size() > 1) {
|
|
|
|
+ error.add(errMsg("试评数量不一致"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- //评卷模式一致
|
|
|
|
|
|
+ // 评卷模式一致
|
|
Set<String> modeSet = modeMap.get(question.getGroupNumber());
|
|
Set<String> modeSet = modeMap.get(question.getGroupNumber());
|
|
- if(modeSet == null){
|
|
|
|
- modeSet =new HashSet<>();
|
|
|
|
- modeSet.add(question.getMarkMode());
|
|
|
|
|
|
+ if (modeSet == null) {
|
|
|
|
+ modeSet = new HashSet<>();
|
|
|
|
+ modeMap.put(question.getGroupNumber(), modeSet);
|
|
}
|
|
}
|
|
- if (modeSet.size()>1) {
|
|
|
|
- error.add("[" + subjectCode + "] 分组号" + question.getGroupNumber() + " 评卷模式不一致的记录");
|
|
|
|
|
|
+ modeSet.add(question.getMarkMode());
|
|
|
|
+
|
|
|
|
+ if (modeSet.size() > 1) {
|
|
|
|
+ error.add(errMsg(question.getGroupNumber(), "评卷模式不一致"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- //开启双评
|
|
|
|
|
|
+ // 开启双评
|
|
Set<Double> doubleRateSet = doubleRateMap.get(question.getGroupNumber());
|
|
Set<Double> doubleRateSet = doubleRateMap.get(question.getGroupNumber());
|
|
- if(doubleRateSet == null){
|
|
|
|
- doubleRateSet =new HashSet<>();
|
|
|
|
- doubleRateSet.add(question.getDoubleRate());
|
|
|
|
|
|
+ if (doubleRateSet == null) {
|
|
|
|
+ doubleRateSet = new HashSet<>();
|
|
|
|
+ doubleRateMap.put(question.getGroupNumber(), doubleRateSet);
|
|
}
|
|
}
|
|
- if (doubleRateSet.size()>1) {
|
|
|
|
- error.add("[" + subjectCode + "] 分组号" + question.getGroupNumber() + " 双评比例不一致的记录");
|
|
|
|
|
|
+ doubleRateSet.add(question.getDoubleRate());
|
|
|
|
+ if (doubleRateSet.size() > 1) {
|
|
|
|
+ error.add(errMsg(question.getGroupNumber(), "双评比例不一致"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
-
|
|
|
|
- if(!doubleRateSet.isEmpty() && doubleRateSet.iterator().next()!=null && doubleRateSet.iterator().next()>0){
|
|
|
|
- //判断分组方式是否一致
|
|
|
|
- Set<Integer> arbitrateTypeSet= arbitrateTypeMap.get(question.getGroupNumber());
|
|
|
|
- if(arbitrateTypeSet ==null ){
|
|
|
|
|
|
+ Double doubleRateFirst = null;
|
|
|
|
+ if (!doubleRateSet.isEmpty()) {
|
|
|
|
+ doubleRateFirst = doubleRateSet.iterator().next();
|
|
|
|
+ }
|
|
|
|
+ if (doubleRateFirst != null && doubleRateFirst > 0) {
|
|
|
|
+ // 判断分组方式是否一致
|
|
|
|
+ Set<Integer> arbitrateTypeSet = arbitrateTypeMap.get(question.getGroupNumber());
|
|
|
|
+ if (arbitrateTypeSet == null) {
|
|
arbitrateTypeSet = new HashSet<>();
|
|
arbitrateTypeSet = new HashSet<>();
|
|
|
|
+ arbitrateTypeMap.put(question.getGroupNumber(), arbitrateTypeSet);
|
|
}
|
|
}
|
|
arbitrateTypeSet.add(question.getArbitrateType());
|
|
arbitrateTypeSet.add(question.getArbitrateType());
|
|
- if(arbitrateTypeSet.size()>1){
|
|
|
|
- error.add("[" + subjectCode + "] 分组号" + question.getGroupNumber() + " 仲裁方式不一致");
|
|
|
|
|
|
+ if (arbitrateTypeSet.size() > 1) {
|
|
|
|
+ error.add(errMsg(question.getGroupNumber(), "仲裁方式不一致"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- arbitrateTypeMap.put(question.getGroupNumber(),arbitrateTypeSet);
|
|
|
|
|
|
|
|
- if(question.getArbitrateThreshold()==null || question.getArbitrateThreshold()<=0){
|
|
|
|
- error.add("[" + subjectCode + "] 分组号" + question.getGroupNumber() + " 仲裁阈值为空");
|
|
|
|
|
|
+ if (question.getArbitrateThreshold() == null || question.getArbitrateThreshold() <= 0) {
|
|
|
|
+ error.add(errMsg(question.getGroupNumber(), "仲裁阈值为空"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
Set<Double> arbitrateThresholdSet = arbitrateThresholdMap.get(question.getGroupNumber());
|
|
Set<Double> arbitrateThresholdSet = arbitrateThresholdMap.get(question.getGroupNumber());
|
|
- if(arbitrateThresholdSet == null){
|
|
|
|
- arbitrateThresholdSet =new HashSet<>();
|
|
|
|
- arbitrateThresholdSet.add(question.getArbitrateThreshold());
|
|
|
|
|
|
+ if (arbitrateThresholdSet == null) {
|
|
|
|
+ arbitrateThresholdSet = new HashSet<>();
|
|
|
|
+ arbitrateThresholdMap.put(question.getGroupNumber(), arbitrateThresholdSet);
|
|
|
|
+ }
|
|
|
|
+ arbitrateThresholdSet.add(question.getArbitrateThreshold());
|
|
|
|
+
|
|
|
|
+ Integer arbitrateTypeFirst = null;
|
|
|
|
+ if (!arbitrateTypeSet.isEmpty()) {
|
|
|
|
+ arbitrateTypeFirst = arbitrateTypeSet.iterator().next();
|
|
}
|
|
}
|
|
- if (arbitrateTypeSet.iterator().next()!=null
|
|
|
|
- && !arbitrateTypeSet.iterator().next().equals(1)
|
|
|
|
- && arbitrateThresholdSet.size()>1) {
|
|
|
|
- error.add("[" + subjectCode + "] 分组号" + question.getGroupNumber() + " 仲裁阈值不一致的记录");
|
|
|
|
|
|
+ if (arbitrateTypeFirst != null && !arbitrateTypeFirst.equals(1) && arbitrateThresholdSet.size() > 1) {
|
|
|
|
+ error.add(errMsg(question.getGroupNumber(), "仲裁阈值不一致"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- //评分规则一致
|
|
|
|
|
|
+ // 评分规则一致
|
|
Set<Integer> policySet = policyMap.get(question.getGroupNumber());
|
|
Set<Integer> policySet = policyMap.get(question.getGroupNumber());
|
|
- if(policySet == null){
|
|
|
|
- policySet =new HashSet<>();
|
|
|
|
- policySet.add(question.getScorePolicy());
|
|
|
|
|
|
+ if (policySet == null) {
|
|
|
|
+ policySet = new HashSet<>();
|
|
|
|
+ policyMap.put(question.getGroupNumber(), policySet);
|
|
}
|
|
}
|
|
- if (policySet.size()>1) {
|
|
|
|
- error.add("[" + subjectCode + "] 分组号" + question.getGroupNumber() + " 判分规则不一致的记录");
|
|
|
|
|
|
+ policySet.add(question.getScorePolicy());
|
|
|
|
+ if (policySet.size() > 1) {
|
|
|
|
+ error.add(errMsg(question.getGroupNumber(), "合分策略不一致"));
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|