package com.dbnt.faisp.faStatistics.internationalCrimeArrest; import com.dbnt.faisp.authMgt.service.AuthMgtService; import com.dbnt.faisp.codeMgt.model.CodeMgt; import com.dbnt.faisp.codeMgt.service.CodeMgtService; import com.dbnt.faisp.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest; import com.dbnt.faisp.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository; import com.dbnt.faisp.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService; import com.dbnt.faisp.organMgt.model.OrganConfig; import com.dbnt.faisp.organMgt.service.OrganConfigService; import com.dbnt.faisp.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import java.time.LocalDateTime; import java.util.List; @RestController @RequiredArgsConstructor @RequestMapping("/faStatistics") public class InternationalCrimeArrestController { private final AuthMgtService authMgtService; private final InternationalCrimeArrestService internationalCrimeArrestService; private final CodeMgtService codeMgtService; private final OrganConfigService organConfigService; private final SuspectPersonInfoRepository suspectPersonInfoRepository; @GetMapping("/internationalCrimeArrest") public ModelAndView internationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser,InternationalCrimeArrest internationalCrimeArrest) { ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrest"); //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); internationalCrimeArrest.setQueryInfo(); List internationalCrimeArrestList = internationalCrimeArrestService.selectInternationalCrimeArrestList(internationalCrimeArrest); for (InternationalCrimeArrest ica:internationalCrimeArrestList) { ica.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(ica.getIcaKey())); } mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList); internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest)); internationalCrimeArrest.setPaginationInfo(); mav.addObject("organConfigList", selectOrganList()); mav.addObject("searchParams", internationalCrimeArrest); return mav; } @GetMapping("/internationalCrimeArrest/internationalCrimeArrestEditModal") public ModelAndView internationalCrimeArrestEditModal(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal"); if(internationalCrimeArrest.getIcaKey()!=null){ internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); }else{ internationalCrimeArrest.setWrtOrgan(loginUser.getOgCd()); internationalCrimeArrest.setWrtNm(loginUser.getUserNm()); internationalCrimeArrest.setWrtDt(LocalDateTime.now()); internationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey())); } mav.addObject("organConfigList", selectOrganList()); mav.addObject("internationalCrimeArrest", internationalCrimeArrest); return mav; } @GetMapping("/internationalCrimeArrest/internationalCrimeArrestViewModal") public ModelAndView internationalCrimeArrestViewModal(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ ModelAndView mav = new ModelAndView("faStatistics/internationalCrimeArrest/internationalCrimeArrestViewModal"); internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey()); mav.addObject("internationalCrimeArrest", internationalCrimeArrest); mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("organConfigList", selectOrganList()); //메뉴권한 확인 mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth()); return mav; } @PostMapping("/internationalCrimeArrest/saveInternationalCrimeArrest") public Integer saveInternationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser, InternationalCrimeArrest internationalCrimeArrest){ internationalCrimeArrest.setWrtUserSeq(loginUser.getUserSeq()); return internationalCrimeArrestService.savedInternationalCrimeArrest(internationalCrimeArrest); } public List selectOrganList(){ List organCdList = codeMgtService.selectCodeMgtList("OG"); List organConfigList = organConfigService.selectSavedOrganList(); for(CodeMgt organCode: organCdList){ if(!organCode.getItemCd().equals("OG001")){ boolean usedFlag = false; for(OrganConfig organConfig: organConfigList){ if(organCode.getItemCd().equals(organConfig.getOrganCd())){ usedFlag = true; organConfig.setOrganNm(organCode.getItemValue()); organConfig.setUseState("T"); break; } } if(!usedFlag){ OrganConfig organConfig = new OrganConfig(); organConfig.setOrganCd(organCode.getItemCd()); organConfig.setOrganNm(organCode.getItemValue()); organConfig.setUseState("F"); organConfigList.add(organConfig); } } } return organConfigList; } }