/**\n * イベント発生条件: 画面初期表示\n * 処理概要: ・画面を初期表示する。\n ・遷移元により、以下のデータを取得する。\n [応募一覧からの遷移]\n ・選択された応募者に紐づく、提出済みの提出リクエスト\n ※一覧で選択された応募者の選考フローは考慮せず、応募者に紐づく提出済みの提出リクエストを全て取得する。\n [提出リクエスト一覧からの遷移]\n ・選択された応募者、提出リクエストの、提出済みの提出リクエスト\n ・取得した応募者×提出リクエストの件数と、その提出物内容ごとの件数上位3件を画面に表示する。\n ・取得した応募者×提出リクエストの件数が1,000件を超過した場合、警告文を画面に表示する。\n ・取得した提出リクエストの提出物内容で、[出力提出物内容]プルダウンの選択肢を作成する。\n ・[出力提出物内容]プルダウンの選択肢が2件以上の場合、[出力提出物内容]ボタンを活性にする。\n ・[出力提出物]チェックボックスを非活性にする。\n ・[フォルダ作成]プルダウンに以下の内容を設定する。\n 1.提出物内容>提出物\n 2.提出物内容\n 3.提出物\n 4.フォルダを分けない \n */\n @ApiOperation("画面を初期表示する。")\n @PostMapping("/init")\n @PreAuthorize("hasAuthority('10') or hasAuthority('20') or hasAuthority('30') or hasAuthority('40') or hasAuthority('50') ")\n public CommonResult init(@Valid @RequestBody MCBHS190InitRequest requestPayload) {\n\n MCBHS190InitOutDto outDto = new MCBHS190InitOutDto();\n \n MCBHS190InitSearchInDto mCBHS190InitSearchInDto = new MCBHS190InitSearchInDto();\n // 遷移元区分\n mCBHS190InitSearchInDto.setTransitionKind(String.valueOf(requestPayload.getTransitionKind()));\n // 応募者ソート順\n mCBHS190InitSearchInDto.setApplicantSortKind(String.valueOf(requestPayload.getApplicantSortKind()));\n // 提出リクエストリスト\n List submissionList = new ArrayList();\n for (MCBHS190SubmissionInitDto item : requestPayload.getSubmissionRequestObj()) {\n MCBHS190SubmissionDto initDto = new MCBHS190SubmissionDto();\n // 求職者ID\n initDto.setJobSeekerId(Long.valueOf(item.getJobSeekerId()));\n // 企業別求職者ID\n initDto.setJobSeekerByCompanyId(Long.valueOf(item.getJobSeekerByCompanyId()));\n // 対象年度\n initDto.setTargetYear(item.getTargetYear());\n if (StringUtil.isNotEmpty(item.getSubmissionRequestId())) {\n // 提出リクエストID\n initDto.setSubmissionRequestId(Long.valueOf(item.getSubmissionRequestId()));\n }\n submissionList.add(initDto);\n }\n mCBHS190InitSearchInDto.setSubmissionList(submissionList);\n // 提出リクエスト取得\n List initSearchList = mcbSubmissionStatusService\n .initSearchList(mCBHS190InitSearchInDto);\n\n Map<Long, Integer> map = new HashMap<>();\n\n List submissionContentList = new ArrayList();\n\n for (MCBHS190InitSearchOutDto item : initSearchList) {\n if (map.containsKey(item.getSubmissionContentId())) {\n // 提出物内容ごとの件数\n map.put(item.getSubmissionContentId(), map.get(item.getSubmissionContentId()) + Constants.INTEGER_1);\n\n for (MCBHS190SubmissionContentDto item2 : submissionContentList) {\n if (item.getSubmissionContentId().equals(item2.getSubmissionContentId())) {\n item2.setSubmissionCount(map.get(item.getSubmissionContentId()));\n }\n }\n\n } else {\n map.put(item.getSubmissionContentId(), Constants.INTEGER_1);\n\n MCBHS190SubmissionContentDto submissionDto = new MCBHS190SubmissionContentDto();\n // 提出物内容ID\n submissionDto.setSubmissionContentId(item.getSubmissionContentId());\n // 提出物内容名\n submissionDto.setSubmissionContentName(item.getSubmissionContentName());\n // 提出物内容名(学生画面表示用)\n submissionDto.setSubmissionContentNameStudent(item.getSubmissionContentNameStudent());\n // 提出物エントリシートフラグ\n submissionDto.setSubmissionEntrySheetFlag(item.getSubmissionEntrySheetFlag());\n // 提出物履歴書フラグ\n submissionDto.setSubmissionResumeFlag(item.getSubmissionResumeFlag());\n // 提出物研究概要書フラグ\n submissionDto.setSubmissionResearchSummaryFlag(item.getSubmissionResearchSummaryFlag());\n // 提出物オリジナル設問フラグ\n submissionDto.setSubmissionOriginalQuestionFlag(item.getSubmissionOriginalQuestionFlag());\n // 提出物ファイル提出フラグ\n submissionDto.setSubmissionFileSubmissionFlag(item.getSubmissionFileSubmissionFlag());\n // 提出物数\n submissionDto.setSubmissionCount(Constants.INTEGER_1);\n // MCB提出リクエストID\n submissionDto.setMcbSubmissionRequestId(item.getMcbSubmissionRequestId());\n // My CareerID\n submissionDto.setMyCareerCd(item.getMyCareerCd());\n \n // 提出物内容リスト\n submissionContentList.add(submissionDto);\n }\n\n }\n // ソート順:提出物数\n submissionContentList = submissionContentList.stream()\n .sorted(Comparator.comparing(MCBHS190SubmissionContentDto::getSubmissionCount).reversed())\n .collect(Collectors.toList());\n // 初期検索出力リスト\n outDto.setInitSearchList(initSearchList);\n // 提出物内容リスト\n outDto.setSubmissionContentList(submissionContentList);\n\n // PDF出力上限件数が規定値(String)\n String submissionCountString = PropertiesUtil.getProperty(Constants.SUBMISSIONCOUNT_MAX);\n\n // PDF出力上限件数が規定値(Integer)\n Integer submissionCountInteger = GeneralUtil.stringToInteger(submissionCountString);\n outDto.setSubmissionCountInteger(submissionCountInteger);\n \n return CommonResult.success(outDto);\n }