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, ...@@ -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") @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); 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 { ...@@ -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] != null && !rawDataList.get(i)[7].toString().trim().equals(""))) {
if ((rawDataList.get(i)[7].toString().trim().equals(tmpCurrentQuestionCode)) || 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")); sb.append(BundleUtils.getLangString("scenario.mappingQuestion.invalid"));
} }
...@@ -399,7 +399,6 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -399,7 +399,6 @@ public class ScenarioServiceImpl implements ScenarioService {
resultCell.setCellValue(sb.toString()); resultCell.setCellValue(sb.toString());
isValid = false; isValid = false;
} else { } else {
// isValid = true;
resultCell.setCellValue(BundleUtils.getLangString("ok")); resultCell.setCellValue(BundleUtils.getLangString("ok"));
} }
sb = new StringBuilder(); sb = new StringBuilder();
...@@ -416,18 +415,18 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -416,18 +415,18 @@ public class ScenarioServiceImpl implements ScenarioService {
}); });
//for import mapping question from xls: update mapping question id for answer //for import mapping question from xls: update mapping question id for answer
// lstAnswerTmp.forEach(item -> { lstAnswerTmp.forEach(item -> {
// if (item.getMappingQuestionCode() != null && item.getMappingQuestionId() == null) { if (item.getMappingQuestionCode() != null && item.getMappingQuestionId() == null) {
// ScenarioQuestion question = questionRepository.findScenarioQuestionByCodeAndCompanySiteId(item.getMappingQuestionCode(), item.getCompanySiteId()); ScenarioQuestion question = questionRepository.findScenarioQuestionByCodeAndCompanySiteId(item.getMappingQuestionCode(), item.getCompanySiteId());
// if (question != null) { if (question != null) {
// ScenarioAnswer answerForUpdate = answerRepository.findScenarioAnswerByScenarioQuestionIdAndCode(question.getScenarioQuestionId(), item.code); ScenarioAnswer answerForUpdate = answerRepository.findScenarioAnswerByCode(item.code);
// if(answerForUpdate != null) { if(answerForUpdate != null) {
// answerForUpdate.setMappingQuestionId(question.getScenarioQuestionId()); answerForUpdate.setMappingQuestionId(question.getScenarioQuestionId());
// answerRepository.save(answerForUpdate); answerRepository.save(answerForUpdate);
// } }
// } }
// } }
// }); });
workbook.write(os); workbook.write(os);
os.flush(); os.flush();
...@@ -448,7 +447,6 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -448,7 +447,6 @@ public class ScenarioServiceImpl implements ScenarioService {
result.put("message", BundleUtils.getLangString("customer.errorValidate", locale)); result.put("message", BundleUtils.getLangString("customer.errorValidate", locale));
}finally { }finally {
if (workbook != null) workbook.close(); if (workbook != null) workbook.close();
//result.put("code", Constants.FILE_UPLOAD_RESP_CODE.ERROR);
} }
return result; return result;
} }
...@@ -456,13 +454,11 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -456,13 +454,11 @@ public class ScenarioServiceImpl implements ScenarioService {
private boolean validateMappingQuestion(String mappingQuestion, String currentQuestionCode, List<String> lstQuestionCode) { private boolean validateMappingQuestion(String mappingQuestion, String currentQuestionCode, List<String> lstQuestionCode) {
if (mappingQuestion != null && mappingQuestion.equals(currentQuestionCode)) return false; if (mappingQuestion != null && mappingQuestion.equals(currentQuestionCode)) return false;
String duplicateCode = lstQuestionCode.stream(). String existMappingQuestionCode = lstQuestionCode.stream().
filter(p -> (p.equals(mappingQuestion) && p.equals(currentQuestionCode))). filter(p -> (p.equals(mappingQuestion) && !p.equals(currentQuestionCode))).
findAny().orElse(null); 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; return true;
} }
...@@ -534,6 +530,8 @@ public class ScenarioServiceImpl implements ScenarioService { ...@@ -534,6 +530,8 @@ public class ScenarioServiceImpl implements ScenarioService {
q.setLstAnswers(answers); q.setLstAnswers(answers);
}); });
questionOrderIndex = null;
lstQuestions.forEach(q2 -> { lstQuestions.forEach(q2 -> {
List<ScenarioAnswerDTO> lstAnswers = q2.getLstAnswers(); List<ScenarioAnswerDTO> lstAnswers = q2.getLstAnswers();
lstAnswers.forEach(a2 -> { 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