diff --git a/src/main/java/com/bamdoliro/maru/application/form/SelectSecondPassUseCase.java b/src/main/java/com/bamdoliro/maru/application/form/SelectSecondPassUseCase.java index bd377dbc..e0255b30 100644 --- a/src/main/java/com/bamdoliro/maru/application/form/SelectSecondPassUseCase.java +++ b/src/main/java/com/bamdoliro/maru/application/form/SelectSecondPassUseCase.java @@ -21,12 +21,13 @@ public class SelectSecondPassUseCase { private final FormRepository formRepository; private final CalculateFormScoreService calculateFormScoreService; - private final AtomicInteger otherRegionCount = new AtomicInteger((int) Math.ceil(FixedNumber.TOTAL * FixedNumber.OTHER_REGION_RATE)); @Transactional public void execute() { validate(); + AtomicInteger otherRegionCount = new AtomicInteger((int) Math.ceil(FixedNumber.TOTAL * FixedNumber.OTHER_REGION_RATE)); + int regularCount = FixedNumber.REGULAR; int meisterTalentCount = FixedNumber.MEISTER_TALENT; int socialIntegrationCount = FixedNumber.SOCIAL_INTEGRATION; @@ -54,25 +55,25 @@ public void execute() { int equalOpportunityCount = (int) Math.round(socialIntegrationCount * 0.5); int societyDiversityCount = equalOpportunityCount; - processForms(equalOpportunityFormList, equalOpportunityCount, this::changeToRegularAndCalculateScoreAgain); - processForms(societyDiversityFormList, societyDiversityCount, this::changeToRegularAndCalculateScoreAgain); - processForms(meisterTalentFormList, meisterTalentCount, this::changeToRegularAndCalculateScoreAgain); + processForms(equalOpportunityFormList, equalOpportunityCount, this::changeToRegularAndCalculateScoreAgain, otherRegionCount); + processForms(societyDiversityFormList, societyDiversityCount, this::changeToRegularAndCalculateScoreAgain, otherRegionCount); + processForms(meisterTalentFormList, meisterTalentCount, this::changeToRegularAndCalculateScoreAgain,otherRegionCount); formRepository.flush(); List
regularFormList = formRepository.findFirstPassedRegularForm(); - processForms(regularFormList, regularCount, Form::fail); + processForms(regularFormList, regularCount, Form::fail, otherRegionCount); formRepository.flush(); List supernumeraryFormList = formRepository.findFirstPassedSupernumeraryForm(); List nationalVeteransEducationFormList = classifyFormsByType(supernumeraryFormList, FormType::isNationalVeteransEducation); List specialAdmissionFormList = classifyFormsByType(supernumeraryFormList, FormType::isSpecialAdmission); - processForms(nationalVeteransEducationFormList, nationalVeteransEducationCount, Form::fail); - processForms(specialAdmissionFormList, specialAdmissionCount, Form::fail); + processForms(nationalVeteransEducationFormList, nationalVeteransEducationCount, Form::fail, otherRegionCount); + processForms(specialAdmissionFormList, specialAdmissionCount, Form::fail, otherRegionCount); } - private void processForms(List formList, int count, Consumer action) { + private void processForms(List formList, int count, Consumer action, AtomicInteger otherRegionCount) { for (Form form : formList) { if (count > 0) { if (form.getEducation().getSchool().isBusan()) {