package com.dbnt.faisp.equip; import com.dbnt.faisp.authMgt.service.AuthMgtService; import com.dbnt.faisp.equip.model.CellPhone; import com.dbnt.faisp.equip.model.Equip; import com.dbnt.faisp.equip.model.EquipLog; import com.dbnt.faisp.equip.service.EquipService; import com.dbnt.faisp.fipTarget.model.PartInfo; import com.dbnt.faisp.organMgt.service.OrganConfigService; import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.userInfo.service.UserInfoService; import com.dbnt.faisp.util.ParamMap; import com.dbnt.faisp.util.Utils; import lombok.RequiredArgsConstructor; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; 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("/equip") public class EquipController { private final EquipService equipService; private final AuthMgtService authMgtService; private final OrganConfigService organConfigService; private final UserInfoService userInfoService; @GetMapping("/equipStatus") public ModelAndView equipStatus(@AuthenticationPrincipal UserInfo loginUser, Equip equip) { ModelAndView mav = new ModelAndView("equip/equipStatus"); //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("equipList", equipService.selectEquipStatus(equip)); return mav; } @GetMapping("/equipEditModal") public ModelAndView equipEditModal(@AuthenticationPrincipal UserInfo loginUser) { ModelAndView mav = new ModelAndView("equip/equipEditModal"); //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("userOrgan", loginUser.getOgCd()); mav.addObject("accessAuth", accessAuth); return mav; } @GetMapping("/equipTypeSelecBox") public ModelAndView equipTypeSelecBox(String equType) { ModelAndView mav = new ModelAndView("equip/equipTypeSelecBox"); mav.addObject("equType", equType); return mav; } @PostMapping("/saveEquip") public void saveEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){ equip.setWrtNm(loginUser.getUserId()); equip.setWrtOrgan(loginUser.getOgCd()); equip.setWrtDt(LocalDateTime.now()); equipService.saveEquip(equip,request); } @GetMapping("/List") public ModelAndView equipList(@AuthenticationPrincipal UserInfo loginUser,Equip equip) { ModelAndView mav = new ModelAndView("equip/equipList"); //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); equip.setDownOrganCdList(loginUser.getDownOrganCdList()); ParamMap equType = equipService.selectEduType(equip); mav.addObject("equType", equType.get("equ_type")); mav.addObject("detailType", equType.get("detail_type")); equip.setQueryInfo(); mav.addObject("equipList", equipService.selectEquipList(equip)); equip.setContentCnt(equipService.selectEquipListCnt(equip)); equip.setPaginationInfo(); mav.addObject("searchParams", equip); return mav; } @GetMapping("/updatePage") public ModelAndView equipUpdatePage(@AuthenticationPrincipal UserInfo loginUser, Equip equip) { ModelAndView mav = new ModelAndView("equip/equipModifyModal"); //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/equipStatus").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("userId", loginUser.getUserId()); mav.addObject("wrtId", equipService.selectEquipFirstId(equip)); mav.addObject("equInfo", equipService.selectEquipInfo(equip)); return mav; } @PostMapping("/updateEquip") @ResponseBody public int updateEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){ equip.setWrtNm(loginUser.getUserId()); equip.setWrtOrgan(loginUser.getOgCd()); equip.setWrtDt(LocalDateTime.now()); int result = equipService.updateEquip(equip,request); return result; } @GetMapping("/historyView") public ModelAndView historyView(Equip equip) { ModelAndView mav = new ModelAndView("equip/equipHistory"); mav.addObject("equList", equipService.selectHistoryView(equip)); return mav; } @GetMapping("/HistoryDetail") @ResponseBody public Equip HistoryDetail(Equip equip){ return equipService.selectHistoryDetail(equip); } @PostMapping("/epuipDelete") public void epuipDelete(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List equip){ equipService.equipDelete(equip,loginUser); } @GetMapping("/getEquipImg") public void getThumbImage(Equip equip , HttpServletResponse response) throws Exception { Equip dbImg = equipService.selectEquipInfo(equip); String realFile = dbImg.getFilePath()+"/"+ dbImg.getConvNm(); String fileNm = dbImg.getConvNm(); BufferedOutputStream out = null; InputStream in = null; try { response.setContentType("image/jpeg;charset=UTF-8"); response.setHeader("Content-Disposition", "inline;filename=" + fileNm); File file = new File(realFile); // File file = new File(realFile + "/" + fileNm); if(file.exists()){ in = new FileInputStream(file); out = new BufferedOutputStream(response.getOutputStream()); int len; byte[] buf = new byte[1024]; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } } } catch (Exception e) { } finally { if(out != null){ out.flush(); } if(out != null){ out.close(); } if(in != null){ in.close(); } } } @GetMapping("/Log") public ModelAndView equipLog(@AuthenticationPrincipal UserInfo loginUser,EquipLog equipLog) { ModelAndView mav = new ModelAndView("equip/equipLogList"); equipLog.setDownOrganCdList(loginUser.getDownOrganCdList()); equipLog.setQueryInfo(); mav.addObject("logList", equipService.selectEquipLogList(equipLog)); equipLog.setContentCnt(equipService.selectEquipLogListCnt(equipLog)); equipLog.setPaginationInfo(); mav.addObject("searchParams", equipLog); return mav; } @GetMapping("/statusExcelDown") public void statisticsExcelDown(Model model,HttpServletResponse response, Equip equip) { String[] headers = { "rownum","equ_type", "item_value", "total", "cnt_bon", "cnt_center", "cnt_incheon", "cnt_pyeongtaek", "cnt_taean","cnt_boryeong","cnt_west","cnt_mokpo","cnt_buan", "cnt_gunsan","cnt_yusu","cnt_wando","cnt_south","cnt_ulsan","cnt_busan","cnt_changwon","cnt_tongyong","cnt_sacheon","cnt_east","cnt_sokcho","cnt_donghe", "cnt_ulgin","cnt_pohang","cnt_jeju","cnt_jejuseo","cnt_seoguipo"}; String[] headerNames = { "", "", "", "", "", "중부", "", "","","","서해","","","","","","남해","","","","","","동해","","","","","제주","",""}; String[] headerNames2 = { "연번", "분류", "세부분류", "총계", "본청", "청", "인천서", "평택서","태안서","보령서","청","목포서","부안서","군산서","여수서","완도서","청","울산서","부산서","창원서","통영서","서천서","청","속초서","동해서","울진서","포항서","청","제주서","서귀포서"}; String[] columnType = { "int", "String", "String", "int", "int", "int", "int", "int","int","int","int","int","int","int","int","int","int","int","int","int", "int","int","int","int","int","int","int","int","int","int"}; String sheetName = "외사장비현황"; String excelFileName = "외사장비현황"; List equStatusList = equipService.selectEquipStatus(equip); try { Utils.downEquipStatusExcel(equStatusList, response, headers, headerNames,headerNames2, columnType, sheetName, excelFileName); } catch (IOException e) { model.addAttribute("message", "엑셀다운로드 중 오류가 발생했습니다."); } } @GetMapping("/cellPhoneList") public ModelAndView cellPhoneList(@AuthenticationPrincipal UserInfo loginUser,CellPhone cellPhone,HttpServletResponse response) { ModelAndView mav = new ModelAndView("equip/cellPhoneList"); cellPhone.setDownOrganCdList(loginUser.getDownOrganCdList()); //엑셀다운 if(cellPhone.getExcel() != null && cellPhone.getExcel().equals("Y")){ String[] headers = { "phone_key", "sosok", "tel_no", "user_nm", "ext_mail", "webex_no", "katalk_id"}; String[] headerNames = { "연번", "소속","전화번호", "사용자(관리자)", "등록 외부메일", "웹엑스 미팅번호", "카카오톡 ID"}; String[] columnType = { "int", "String","String", "String", "String", "String", "String", "Stiring"}; String sheetName = "업무용 휴대전화 현황"; String excelFileName = "업무용 휴대전화 현황"; List cellPhoneList= equipService.selectCellPhoneList(cellPhone); try { Utils.cellPhoneListToExcel(cellPhoneList, response, headers, headerNames, columnType, sheetName, excelFileName); } catch (IOException e) { } return null; } //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/cellPhoneList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); cellPhone.setQueryInfo(); mav.addObject("cellPhoneList", equipService.selectCellPhoneList(cellPhone)); cellPhone.setContentCnt(equipService.selectCellPhoneListCnt(cellPhone)); cellPhone.setPaginationInfo(); mav.addObject("searchParams", cellPhone); return mav; } @GetMapping("/cellPhoneEditModal") public ModelAndView cellPhoneEditModal(@AuthenticationPrincipal UserInfo loginUser,CellPhone cellPhone) { ModelAndView mav = new ModelAndView("equip/cellPhoneEditModal"); if(cellPhone.getPhoneKey() != null) { cellPhone = equipService.selectCellPhoneInfo(cellPhone.getPhoneKey()); ParamMap param = new ParamMap(); param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(cellPhone.getMgtOrgan())); mav.addObject("managerList", userInfoService.selectManagerList(param)); } if (cellPhone.getPhoneKey() == null) { cellPhone.setWrtOrgan(loginUser.getOgCd()); cellPhone.setWrtPart(loginUser.getOfcCd()); cellPhone.setWrtUserSeq(loginUser.getUserSeq()); cellPhone.setWrtNm(loginUser.getUserNm()); } //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/equip/cellPhoneList").get(0).getAccessAuth(); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("userOrgan", loginUser.getOgCd()); mav.addObject("accessAuth", accessAuth); mav.addObject("info", cellPhone); return mav; } @GetMapping("/cellPhoneSelecBox") public ModelAndView cellPhoneSelecBox(String ogCd) { ModelAndView mav = new ModelAndView("equip/cellPhoneSelecBox"); ParamMap param = new ParamMap(); param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); mav.addObject("managerList", userInfoService.selectManagerList(param)); return mav; } @PostMapping("/saveCellPhone") public Integer saveCellPhone (@AuthenticationPrincipal UserInfo loginUser,CellPhone cellPhone){ cellPhone.setWrtDt(LocalDateTime.now()); return equipService.saveCellPhone(cellPhone); } @PostMapping("/deleteCellPhone") public void deleteCellPhone(@RequestBody List cellPhone){ equipService.deleteCellPhone(cellPhone); } }