package com.dbnt.faisp.fipTarget; import com.dbnt.faisp.authMgt.service.AuthMgtService; import com.dbnt.faisp.fipTarget.model.PartInfo; import com.dbnt.faisp.fipTarget.service.FipTargetService; import com.dbnt.faisp.organMgt.service.OrganConfigService; import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.util.ParamMap; import com.dbnt.faisp.util.Utils; import lombok.RequiredArgsConstructor; import java.io.IOException; import java.time.LocalDateTime; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; @RestController @RequiredArgsConstructor @RequestMapping("/target") public class FipTargetController { private final OrganConfigService organConfigService; private final AuthMgtService authMgtService; private final FipTargetService fipTargetSevice; @GetMapping("/partInfoList") public ModelAndView partInfoList(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo, HttpServletResponse response) { ModelAndView mav = new ModelAndView("fipTarget/partInfoList"); partInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); //엑셀다운 if(partInfo.getExcel() != null && partInfo.getExcel().equals("Y")){ ParamMap header = fipTargetSevice.selectWorkTypeTotal(partInfo); String[] headers = { "mgt_organ", "land_police", "mp_work_type", "mp_people_cnt", "mp_description", "pl_work_type", "pl_people_cnt", "pl_description", "terminal_nm", "pi_manager_name", "rent_price", "utility_price", "wrt_dt"}; String[] headerNames = { "해경서", "육경서", "해경", "", "", "육경", "", "", "", "", "", "",""}; String[] headerNames2 = { "", "", "상주 "+header.getString("mp_sangju")+"개소 "+header.getString("mp_sangju_total")+"명" ,"상주 "+header.getString("mp_bsangju")+"개소 "+header.getString("mp_bsangju_total")+"명" ,"상주 "+header.getString("mp_closure")+"개소 "+header.getString("mp_closure_total")+"명" ,"상주 "+header.getString("pl_sangju")+"개소 "+header.getString("pl_sangju_total")+"명" ,"상주 "+header.getString("pl_bsangju")+"개소 "+header.getString("pl_bsangju_total")+"명" ,"상주 "+header.getString("pl_closure")+"개소 "+header.getString("pl_closure_total")+"명" , "", "", "", "", "" }; String[] headerNames3 = { "", "", "근무방법", "명", "비고", "근무방법", "명", "비고", "터미널명", "담당자", "임차료", "공공요금", "최종수정일" }; String[] columnType = { "String", "String", "String", "int", "String", "String", "int", "String", "String", "String", "int","int", "String"}; String sheetName = "외사 분실 현황"; String excelFileName = "외사 분실 현황"; List partInfoList= fipTargetSevice.selectPartInfoList(partInfo); try { Utils.partInfolistToExcel(partInfoList, response, headers, headerNames,headerNames2,headerNames3, columnType, sheetName, excelFileName); } catch (IOException e) { } return null; } //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); partInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); partInfo.setQueryInfo(); mav.addObject("total", fipTargetSevice.selectWorkTypeTotal(partInfo)); mav.addObject("partInfoList", fipTargetSevice.selectPartInfoList(partInfo)); partInfo.setContentCnt(fipTargetSevice.selectPartInfoListCnt(partInfo)); partInfo.setPaginationInfo(); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("searchParams", partInfo); return mav; } @GetMapping("/partInfoEditModal") public ModelAndView partInfoEditModal(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo) { ModelAndView mav = new ModelAndView("fipTarget/partInfoEditModal"); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); return mav; } @GetMapping("/partInfoSelecBox") public ModelAndView equipTypeSelecBox(String ogCd) { ModelAndView mav = new ModelAndView("fipTarget/partInfoSelecBox"); ParamMap param = new ParamMap(); param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); mav.addObject("managerList", fipTargetSevice.selectPartInfoManagerList(param)); return mav; } @PostMapping("/savePartInfo") public void savePartInfo (@AuthenticationPrincipal UserInfo loginUser, PartInfo partInfo,MultipartHttpServletRequest request){ partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); partInfo.setWrtNm(loginUser.getUserId()); partInfo.setWrtPart(loginUser.getOfcCd()); partInfo.setWrtUserSeq(loginUser.getUserSeq()); partInfo.setWrtOrgan(loginUser.getOgCd()); partInfo.setWrtDt(LocalDateTime.now()); fipTargetSevice.savePartInfo(partInfo); } @GetMapping("/updatePartInfoPage") public ModelAndView updatePartInfoPage(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo) { ModelAndView mav = new ModelAndView("fipTarget/partInfoModifyModal"); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); PartInfo partInfoView = fipTargetSevice.selectPartInfo(partInfo); ParamMap param = new ParamMap(); param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(partInfoView.getMgtOrgan())); mav.addObject("managerList", fipTargetSevice.selectPartInfoManagerList(param)); partInfoView.setFileList(fipTargetSevice.selectPartInfoFile(partInfo)); mav.addObject("partInfo", partInfoView); return mav; } }