Commit 52dc2499 authored by Vu Duy Anh's avatar Vu Duy Anh

anhvd commit fix bug import scenario

parent 1383a8fb
......@@ -28,5 +28,5 @@ public interface ScenarioAnswerRepository extends JpaRepository<ScenarioAnswer,
@Query(value = "SELECT COUNT(1) FROM ScenarioAnswer WHERE 1 = 1 AND code = :code AND scenarioQuestionId = :scenarioQuestionId AND scenarioAnswerId <> :scenarioAnswerId")
Integer countDuplicateScenarioCode(@Param("code") String code, @Param("scenarioQuestionId") Long scenarioQuestionId, @Param("scenarioAnswerId") Long scenarioAnswerId);
ScenarioAnswer findScenarioAnswerByScenarioQuestionIdAndCode(Long questionId, String code);
ScenarioAnswer findScenarioAnswerByCode(String code);
}
......@@ -388,7 +388,7 @@ public class ScenarioServiceImpl implements ScenarioService {
}
if ((rawDataList.get(i)[7] != null && !rawDataList.get(i)[7].toString().trim().equals(""))) {
if ((rawDataList.get(i)[7].toString().trim().equals(tmpCurrentQuestionCode)) ||
validateMappingQuestion(rawDataList.get(i)[7].toString().trim(), tmpCurrentQuestionCode, lstImportQuestionCodes))
!validateMappingQuestion(rawDataList.get(i)[7].toString().trim(), tmpCurrentQuestionCode, lstImportQuestionCodes))
sb.append(BundleUtils.getLangString("scenario.mappingQuestion.invalid"));
}
......@@ -399,7 +399,6 @@ public class ScenarioServiceImpl implements ScenarioService {
resultCell.setCellValue(sb.toString());
isValid = false;
} else {
// isValid = true;
resultCell.setCellValue(BundleUtils.getLangString("ok"));
}
sb = new StringBuilder();
......@@ -416,18 +415,18 @@ public class ScenarioServiceImpl implements ScenarioService {
});
//for import mapping question from xls: update mapping question id for answer
// lstAnswerTmp.forEach(item -> {
// if (item.getMappingQuestionCode() != null && item.getMappingQuestionId() == null) {
// ScenarioQuestion question = questionRepository.findScenarioQuestionByCodeAndCompanySiteId(item.getMappingQuestionCode(), item.getCompanySiteId());
// if (question != null) {
// ScenarioAnswer answerForUpdate = answerRepository.findScenarioAnswerByScenarioQuestionIdAndCode(question.getScenarioQuestionId(), item.code);
// if(answerForUpdate != null) {
// answerForUpdate.setMappingQuestionId(question.getScenarioQuestionId());
// answerRepository.save(answerForUpdate);
// }
// }
// }
// });
lstAnswerTmp.forEach(item -> {
if (item.getMappingQuestionCode() != null && item.getMappingQuestionId() == null) {
ScenarioQuestion question = questionRepository.findScenarioQuestionByCodeAndCompanySiteId(item.getMappingQuestionCode(), item.getCompanySiteId());
if (question != null) {
ScenarioAnswer answerForUpdate = answerRepository.findScenarioAnswerByCode(item.code);
if(answerForUpdate != null) {
answerForUpdate.setMappingQuestionId(question.getScenarioQuestionId());
answerRepository.save(answerForUpdate);
}
}
}
});
workbook.write(os);
os.flush();
......@@ -448,7 +447,6 @@ public class ScenarioServiceImpl implements ScenarioService {
result.put("message", BundleUtils.getLangString("customer.errorValidate", locale));
}finally {
if (workbook != null) workbook.close();
//result.put("code", Constants.FILE_UPLOAD_RESP_CODE.ERROR);
}
return result;
}
......@@ -456,13 +454,11 @@ public class ScenarioServiceImpl implements ScenarioService {
private boolean validateMappingQuestion(String mappingQuestion, String currentQuestionCode, List<String> lstQuestionCode) {
if (mappingQuestion != null && mappingQuestion.equals(currentQuestionCode)) return false;
String duplicateCode = lstQuestionCode.stream().
filter(p -> (p.equals(mappingQuestion) && p.equals(currentQuestionCode))).
String existMappingQuestionCode = lstQuestionCode.stream().
filter(p -> (p.equals(mappingQuestion) && !p.equals(currentQuestionCode))).
findAny().orElse(null);
if (duplicateCode == null) return false;
if (existMappingQuestionCode == null) return false;
String notMappedCode = lstQuestionCode.stream().filter(p -> (!p.equals(mappingQuestion))).findAny().orElse(null);
if (notMappedCode != null) return false;
return true;
}
......@@ -534,6 +530,8 @@ public class ScenarioServiceImpl implements ScenarioService {
q.setLstAnswers(answers);
});
questionOrderIndex = null;
lstQuestions.forEach(q2 -> {
List<ScenarioAnswerDTO> lstAnswers = q2.getLstAnswers();
lstAnswers.forEach(a2 -> {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment