From 3df21b009a859b2b86622f7f4ca772d9ee7f2928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Mon, 12 Dec 2022 14:12:37 +0900 Subject: [PATCH] =?UTF-8?q?=EC=99=B8=EC=82=AC=EB=B6=84=EC=8B=A4=20?= =?UTF-8?q?=EC=8B=A4=EC=A0=81=EA=B9=8C=EC=A7=80=20=EB=AA=A8=EB=8B=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=99=84=EB=A3=8C.=20=EC=99=B8=EC=82=AC?= =?UTF-8?q?=EC=9E=A5=EB=B9=84=20=EB=AA=A8=EB=8B=AC=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=20=EC=8B=9C=EC=9E=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/fipTarget/FipTargetController.java | 517 ++++++++-------- .../fipTarget/mapper/FipTargetMapper.java | 4 - .../faisp/main/fipTarget/model/PartWork.java | 12 - .../fipTarget/service/FipTargetService.java | 10 +- .../userInfo/service/UserInfoService.java | 1 + src/main/java/com/dbnt/faisp/util/Utils.java | 20 +- .../resources/application-prod.properties | 3 +- .../resources/mybatisMapper/FipTarget.xml | 118 +--- .../resources/static/js/fipTarget/partInfo.js | 558 +++++++++--------- .../resources/static/js/fipTarget/partWork.js | 263 ++++----- .../resources/static/js/fipTarget/shipInfo.js | 14 +- .../templates/fipTarget/ipShipHistory.html | 2 +- .../fipTarget/partInfoEditModal.html | 225 +++---- .../templates/fipTarget/partInfoHistory.html | 185 ++---- .../fipTarget/partInfoHistoryDiv.html | 134 +++++ .../fipTarget/partInfoModifyModal.html | 269 +++++---- .../templates/fipTarget/partInfoSelecBox.html | 8 +- .../fipTarget/partWorkEditModal.html | 93 ++- .../templates/fipTarget/partWorkList.html | 50 +- .../fipTarget/partWorkModifyModal.html | 58 +- 20 files changed, 1235 insertions(+), 1309 deletions(-) create mode 100644 src/main/resources/templates/fipTarget/partInfoHistoryDiv.html diff --git a/src/main/java/com/dbnt/faisp/main/fipTarget/FipTargetController.java b/src/main/java/com/dbnt/faisp/main/fipTarget/FipTargetController.java index 85223122..b1da70d8 100644 --- a/src/main/java/com/dbnt/faisp/main/fipTarget/FipTargetController.java +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/FipTargetController.java @@ -1,6 +1,8 @@ package com.dbnt.faisp.main.fipTarget; +import com.dbnt.faisp.main.codeMgt.model.CodeMgt; +import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.fipTarget.model.ShipInfo; import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.fipTarget.model.PartInfo; @@ -25,7 +27,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.net.URLEncoder; import java.time.LocalDateTime; -import java.util.List; +import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -46,43 +48,44 @@ public class FipTargetController { private final AuthMgtService authMgtService; private final FipTargetService fipTargetService; private final UserInfoService userInfoService; - + private final CodeMgtService codeMgtService; + // 외사분실운영현황 시작 @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 = fipTargetService.selectWorkTypeTotal(partInfo); - String[] headers = { "mgt_organ", "land_police", "terminal_nm", "mp_work_type", "mp_people_cnt", "mp_description", "pl_work_type", "pl_people_cnt", "pl_description", "pi_manager_name", "rent_price", "utility_price", "wrt_dt"}; - String[] headerNames = { "해경서", "육경서","터미넡명", "해경", "", "", "육경", "", "", "", "", "",""}; - String[] headerNames2 = null; - if(header != null) { - headerNames2 = new String[] { "", "", "", "상주 "+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")+"명" - , "", "", "", "" }; - }else { - headerNames2 = new String[] { "", "","", "상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명","상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명", "", "", "", "" }; - } - String[] headerNames3 = { "", "","", "근무방법", "명", "비고", "근무방법", "명", "비고", "담당자", "임차료", "공공요금", "최종수정일" }; - String[] columnType = { "String", "String","String", "String", "int", "String", "String", "int", "String", "String", "String","String", "String"}; - String sheetName = "외사 분실 현황"; - String excelFileName = "외사 분실 현황"; - List partInfoList= fipTargetService.selectPartInfoList(partInfo); + ParamMap header = fipTargetService.selectWorkTypeTotal(partInfo); + String[] headers = { "mgt_organ", "land_police", "terminal_nm", "mp_work_type", "mp_people_cnt", "mp_description", "pl_work_type", "pl_people_cnt", "pl_description", "pi_manager_name", "rent_price", "utility_price", "wrt_dt"}; + String[] headerNames = { "해경서", "육경서","터미넡명", "해경", "", "", "육경", "", "", "", "", "",""}; + String[] headerNames2 = null; + if(header != null) { + headerNames2 = new String[] { "", "", "", "상주 "+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")+"명" + , "", "", "", "" }; + }else { + headerNames2 = new String[] { "", "","", "상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명","상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명", "", "", "", "" }; + } + String[] headerNames3 = { "", "","", "근무방법", "명", "비고", "근무방법", "명", "비고", "담당자", "임차료", "공공요금", "최종수정일" }; + String[] columnType = { "String", "String","String", "String", "int", "String", "String", "int", "String", "String", "String","String", "String"}; + String sheetName = "외사 분실 현황"; + String excelFileName = "외사 분실 현황"; + List partInfoList= fipTargetService.selectPartInfoList(partInfo); - try { - Utils.partInfolistToExcel(partInfoList, response, headers, headerNames,headerNames2,headerNames3, columnType, sheetName, excelFileName); - } catch (IOException e) { - - } - return null; + try { + Utils.partInfolistToExcel(partInfoList, response, headers, headerNames,headerNames2,headerNames3, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; } - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); partInfo.setQueryInfo(); @@ -94,100 +97,112 @@ public class FipTargetController { mav.addObject("searchParams", partInfo); return mav; } - + @GetMapping("/partInfoEditModal") public ModelAndView partInfoEditModal(@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo) { ModelAndView mav = new ModelAndView("fipTarget/partInfoEditModal"); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); mav.addObject("userOrgan", loginUser.getOgCd()); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("accessAuth", accessAuth); - + return mav; } - + @GetMapping("/partInfoSelecBox") public ModelAndView equipTypeSelecBox(String ogCd) { ModelAndView mav = new ModelAndView("fipTarget/partInfoSelecBox"); - ParamMap param = new ParamMap(); + ParamMap param = new ParamMap(); param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); mav.addObject("managerList", userInfoService.selectManagerList(param)); return mav; } - + @PostMapping("/savePartInfo") public void savePartInfo (@AuthenticationPrincipal UserInfo loginUser, PartInfo partInfo,MultipartHttpServletRequest request){ - partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); - partInfo.setWrtNm(loginUser.getUserNm()); - partInfo.setWrtTitle(loginUser.getTitleCd()); - partInfo.setWrtPart(loginUser.getOfcCd()); - partInfo.setWrtUserSeq(loginUser.getUserSeq()); - partInfo.setWrtOrgan(loginUser.getOgCd()); - partInfo.setWrtDt(LocalDateTime.now()); - fipTargetService.savePartInfo(partInfo); + partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partInfo.setWrtNm(loginUser.getUserNm()); + partInfo.setWrtTitle(loginUser.getTitleCd()); + partInfo.setWrtPart(loginUser.getOfcCd()); + partInfo.setWrtUserSeq(loginUser.getUserSeq()); + partInfo.setWrtOrgan(loginUser.getOgCd()); + partInfo.setWrtDt(LocalDateTime.now()); + fipTargetService.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 = fipTargetService.selectPartInfo(partInfo); - ParamMap param = new ParamMap(); + ParamMap param = new ParamMap(); param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(partInfoView.getMgtOrgan())); mav.addObject("managerList", userInfoService.selectManagerList(param)); partInfoView.setFileList(fipTargetService.selectPartInfoFile(partInfo)); mav.addObject("partInfo", partInfoView); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("userSeq", loginUser.getUserSeq()); mav.addObject("wrtUserSeq", fipTargetService.selectPartInfoFirstId(partInfo)); return mav; } - + @PostMapping("/updatePartInfo") public int updatePartInfo (@AuthenticationPrincipal UserInfo loginUser,PartInfo partInfo, - MultipartHttpServletRequest request, - @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ - partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); - partInfo.setWrtUserSeq(loginUser.getUserSeq()); - partInfo.setWrtNm(loginUser.getUserNm()); - partInfo.setWrtOrgan(loginUser.getOgCd()); - partInfo.setWrtPart(loginUser.getOfcCd()); - partInfo.setWrtTitle(loginUser.getTitleCd()); - partInfo.setWrtDt(LocalDateTime.now()); - fipTargetService.updatePartInfo(partInfo,deleteFileSeq); - return partInfo.getPiSeq(); + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + partInfo.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partInfo.setWrtUserSeq(loginUser.getUserSeq()); + partInfo.setWrtNm(loginUser.getUserNm()); + partInfo.setWrtOrgan(loginUser.getOgCd()); + partInfo.setWrtPart(loginUser.getOfcCd()); + partInfo.setWrtTitle(loginUser.getTitleCd()); + partInfo.setWrtDt(LocalDateTime.now()); + fipTargetService.updatePartInfo(partInfo,deleteFileSeq); + return partInfo.getPiSeq(); } - + @GetMapping("/partInfoHistoryPage") public ModelAndView PartInfoHistoryPage(PartInfo partInfo) { ModelAndView mav = new ModelAndView("fipTarget/partInfoHistory"); mav.addObject("partInfoList", fipTargetService.selectPartInfoSeq(partInfo)); return mav; } - + @GetMapping("/partInfoHistoryView") @ResponseBody - public PartInfo partInfoHistoryView(PartInfo partInfo){ - PartInfo partInfoHistory = fipTargetService.selectPartInfoHistoryView(partInfo); - partInfoHistory.setFileList(fipTargetService.selectPartInfoFileHistoryView(partInfo)); - return partInfoHistory; + public ModelAndView partInfoHistoryView(@AuthenticationPrincipal UserInfo loginUser, PartInfo partInfo){ + ModelAndView mav = new ModelAndView("fipTarget/partInfoHistoryDiv"); + + PartInfo partInfoHistory = fipTargetService.selectPartInfoHistory(partInfo); + mav.addObject("partInfo", partInfoHistory); + + ParamMap param = new ParamMap(); + param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(partInfoHistory.getMgtOrgan())); + mav.addObject("managerList", userInfoService.selectManagerList(param)); + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("userSeq", loginUser.getUserSeq()); + mav.addObject("wrtUserSeq", fipTargetService.selectPartInfoFirstId(partInfo)); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + + return mav; } - + @PostMapping("/deletePartInfo") @ResponseBody public void deletePartInfo(@RequestBody PartInfo partInfo) { - fipTargetService.deletePartInfo(partInfo); + fipTargetService.deletePartInfo(partInfo); } - + @GetMapping("/partInfoFileDownload") public void partInfoFileDownload(HttpServletRequest request, - HttpServletResponse response, - Integer fileSeq, - Integer piSeq, - Integer versionNo) { + HttpServletResponse response, + Integer fileSeq, + Integer piSeq, + Integer versionNo) { PartInfoFile downloadFile = fipTargetService.selectPartInfoFileDown(fileSeq, piSeq,versionNo); BufferedInputStream in; @@ -206,115 +221,124 @@ public class FipTargetController { e.printStackTrace(); } } - + private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws IOException { - String browser = getBrowser(request); + String browser = getBrowser(request); - String dispositionPrefix = "attachment; filename="; - String encodedFilename = null; + String dispositionPrefix = "attachment; filename="; + String encodedFilename = null; - if (browser.equals("MSIE")) { - encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); - } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지 - encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); - } else if (browser.equals("Firefox")) { - encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; - } else if (browser.equals("Opera")) { - encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; - } else if (browser.equals("Chrome")) { - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < filename.length(); i++) { - char c = filename.charAt(i); - if (c > '~') { - sb.append(URLEncoder.encode("" + c, "UTF-8")); - } else { - sb.append(c); - } - } - encodedFilename = sb.toString(); - } else { - throw new IOException("Not supported browser"); - } + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지 + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < filename.length(); i++) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + } + encodedFilename = sb.toString(); + } else { + throw new IOException("Not supported browser"); + } - response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + + if ("Opera".equals(browser)) { + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } - if ("Opera".equals(browser)) { - response.setContentType("application/octet-stream;charset=UTF-8"); - } - } - private String getBrowser(HttpServletRequest request) { - String header = request.getHeader("User-Agent"); - if (header.indexOf("MSIE") > -1) { - return "MSIE"; - } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 - return "Trident"; - } else if (header.indexOf("Chrome") > -1) { - return "Chrome"; - } else if (header.indexOf("Opera") > -1) { - return "Opera"; - } - return "Firefox"; - } + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 + return "Trident"; + } else if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } else if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } //외사분실 운영현황 끝 //외사분실실적 시작 @GetMapping("/partWorkList") public ModelAndView partWorkList(@AuthenticationPrincipal UserInfo loginUser,PartWork partWork, HttpServletResponse response) { ModelAndView mav = new ModelAndView("fipTarget/partWorkList"); + List pwtList = codeMgtService.selectCodeMgtList("PWT"); partWork.setDownOrganCdList(loginUser.getDownOrganCdList()); - //엑셀다운 + //엑셀다운 if(partWork.getExcel() != null && partWork.getExcel().equals("Y")){ - String[] headers = { "terminal_nm", "wrt_nm", "work_dt", "work_type_ch", "work_type_poci", "work_type_sri", "work_type_ji", "work_type_mt", "work_type_etc", "description", "file_cnt","wrt_dt"}; - String[] headerNames = { "외사 터미널명", "작성자","일시", "종류", "", "", "", "", "", "비고", "첨부파일", "최근수정일"}; - String[] headerNames2 = { "", "","", "사건처리", "범죄첩보제공", "SRI", "합동점검", "회의", "기타", "", "", ""}; - String[] columnType = { "String", "String","String", "String", "String", "String", "String", "String", "String", "String", "String","String"}; - String sheetName = "외사분실 실적"; - String excelFileName = "외사분실 실적"; - List partWorkList= fipTargetService.selectPartWorkList(partWork); + Set headerSet = new LinkedHashSet(); + headerSet.addAll(List.of(new String[]{"terminal_nm", "wrt_nm", "work_dt"})); + for(CodeMgt code: pwtList){ + headerSet.add("work_type_"+code.getItemCd()); + } + headerSet.addAll(List.of(new String[]{"description", "file_cnt","wrt_dt"})); + String[] headers = headerSet.toArray(new String[0]); + String[] headerNames = { "외사 터미널명", "작성자","일시", "종류", "", "", "", "", "", "비고", "첨부파일", "최근수정일"}; + String[] headerNames2 = { "", "","", "사건처리", "범죄첩보제공", "SRI", "합동점검", "회의", "기타", "", "", ""}; + String[] columnType = { "String", "String","String", "String", "String", "String", "String", "String", "String", "String", "String","String"}; + String sheetName = "외사분실 실적"; + String excelFileName = "외사분실 실적"; + List partWorkList= fipTargetService.selectPartWorkList(partWork); - try { - Utils.partWorkListToExcel(partWorkList, response, headers, headerNames,headerNames2, columnType, sheetName, excelFileName); - } catch (IOException e) { - - } - return null; - } + try { + Utils.partWorkListToExcel(partWorkList, pwtList, response, headers, headerNames, headerNames2, columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partWorkList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); + mav.addObject("pwtList", pwtList); partWork.setQueryInfo(); mav.addObject("partWorkList", fipTargetService.selectPartWorkList(partWork)); partWork.setContentCnt(fipTargetService.selectPartWorkListCnt(partWork)); - partWork.setPaginationInfo(); + partWork.setPaginationInfo(); mav.addObject("uesrSeq", loginUser.getUserSeq()); mav.addObject("searchParams", partWork); return mav; } - + @GetMapping("/partWorkEditModal") public ModelAndView partWorkEditModal(@AuthenticationPrincipal UserInfo loginUser,PartWork partWork) { ModelAndView mav = new ModelAndView("fipTarget/partWorkEditModal"); partWork.setDownOrganCdList(loginUser.getDownOrganCdList()); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partWorkList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("tnList", fipTargetService.selectTerminalName(partWork)); - + mav.addObject("pwtList", codeMgtService.selectCodeMgtList("PWT")); + return mav; } - + @PostMapping("/savePartWork") public void savePartWork (@AuthenticationPrincipal UserInfo loginUser, PartWork partWork,MultipartHttpServletRequest request){ - partWork.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); - partWork.setWrtNm(loginUser.getUserNm()); - partWork.setWrtPart(loginUser.getOfcCd()); - partWork.setWrtUserSeq(loginUser.getUserSeq()); - partWork.setWrtOrgan(loginUser.getOgCd()); - partWork.setWrtTitle(loginUser.getTitleCd()); - partWork.setWrtDt(LocalDateTime.now()); - fipTargetService.savePartWork(partWork); + partWork.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partWork.setWrtNm(loginUser.getUserNm()); + partWork.setWrtPart(loginUser.getOfcCd()); + partWork.setWrtUserSeq(loginUser.getUserSeq()); + partWork.setWrtOrgan(loginUser.getOgCd()); + partWork.setWrtTitle(loginUser.getTitleCd()); + partWork.setWrtDt(LocalDateTime.now()); + fipTargetService.savePartWork(partWork); } - + @GetMapping("/partWorkView") public ModelAndView partWorkView(@AuthenticationPrincipal UserInfo loginUser,PartWork partWork) { ModelAndView mav = new ModelAndView("fipTarget/partWorkModifyModal"); @@ -322,35 +346,40 @@ public class FipTargetController { PartWork partWorkView = fipTargetService.selectPartWorkInfo(partWork); partWorkView.setFileList(fipTargetService.selectPartWorkFile(partWork)); mav.addObject("pwInfo", partWorkView); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); + mav.addObject("pwtList", codeMgtService.selectCodeMgtList("PWT")); + mav.addObject("tnList", fipTargetService.selectTerminalName(partWork)); mav.addObject("userId", loginUser.getUserId()); return mav; } - + @PostMapping("/updatePartWork") public PartWork updatePartWork (@AuthenticationPrincipal UserInfo loginUser, PartWork partWork, - MultipartHttpServletRequest request, - @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ - partWork.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); - partWork.setWrtDt(LocalDateTime.now()); - fipTargetService.updatePartWork(partWork,deleteFileSeq); - return partWork; + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + partWork.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + partWork.setWrtDt(LocalDateTime.now()); + fipTargetService.updatePartWork(partWork,deleteFileSeq); + PartWork returnParams = new PartWork(); + returnParams.setPwSeq(partWork.getPwSeq()); + returnParams.setPiSeq(partWork.getPiSeq()); + return returnParams; } - + @PostMapping("/deletePartWork") @ResponseBody public void deletePartWork(@RequestBody PartWork partWork) { - fipTargetService.deletePartWork(partWork); + fipTargetService.deletePartWork(partWork); } - + @GetMapping("/partWorkFileDownload") public void partWorkFileDownload(HttpServletRequest request, - HttpServletResponse response, - Integer fileSeq, - Integer pwSeq, - Integer piSeq) { + HttpServletResponse response, + Integer fileSeq, + Integer pwSeq, + Integer piSeq) { PartWorkFile downloadFile = fipTargetService.selectPartWorkFileDown(fileSeq, pwSeq,piSeq); BufferedInputStream in; @@ -377,13 +406,13 @@ public class FipTargetController { ModelAndView mav = new ModelAndView("fipTarget/vulnerableList"); mav.addObject("vulnerableList", fipTargetService.selectVulnerableList(vulnerable)); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("searchParams", vulnerable); return mav; } - + @GetMapping("/vulnEditModal") public ModelAndView vulnEditModal(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable) { ModelAndView mav = new ModelAndView("fipTarget/vulnEditModal"); @@ -392,63 +421,63 @@ public class FipTargetController { mav.addObject("organList", fipTargetService.selecetVulnOrganList(vulnerable)); mav.addObject("userOrgan", loginUser.getOgCd()); if(vulnerable.getVulnKey() != null) { - vulnerable = fipTargetService.selectVulnInfo(vulnerable); - vulnerable.setFileList(fipTargetService.selectVulnFile(vulnerable.getVulnKey())); - mav.addObject("userSeq", loginUser.getUserSeq()); + vulnerable = fipTargetService.selectVulnInfo(vulnerable); + vulnerable.setFileList(fipTargetService.selectVulnFile(vulnerable.getVulnKey())); + mav.addObject("userSeq", loginUser.getUserSeq()); } - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); vulnerable.setWrtNm(loginUser.getUserNm()); - vulnerable.setWrtPart(loginUser.getOfcCd()); - vulnerable.setWrtUserSeq(loginUser.getUserSeq()); - vulnerable.setWrtOrgan(loginUser.getOgCd()); - vulnerable.setWrtTitle(loginUser.getTitleCd()); + vulnerable.setWrtPart(loginUser.getOfcCd()); + vulnerable.setWrtUserSeq(loginUser.getUserSeq()); + vulnerable.setWrtOrgan(loginUser.getOgCd()); + vulnerable.setWrtTitle(loginUser.getTitleCd()); mav.addObject("info", vulnerable); return mav; } - + @PostMapping("/saveVulnerable") public Integer saveVulnerable (@AuthenticationPrincipal UserInfo loginUser, Vulnerable vulnerable,MultipartHttpServletRequest request, - @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ - vulnerable.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); - vulnerable.setWrtDt(LocalDateTime.now()); - Integer result = fipTargetService.saveVulnerable(vulnerable,deleteFileSeq); - return result; + @RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){ + vulnerable.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + vulnerable.setWrtDt(LocalDateTime.now()); + Integer result = fipTargetService.saveVulnerable(vulnerable,deleteFileSeq); + return result; } - + @GetMapping("/vulnInfoModal") public ModelAndView vulnInfoModal(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable) { ModelAndView mav = new ModelAndView("fipTarget/vulnInfoModal"); vulnerable.setDownOrganCdList(loginUser.getDownOrganCdList());; mav.addObject("vulnInfoList", fipTargetService.selectVulnInfoList(vulnerable)); mav.addObject("organNm", fipTargetService.selectOrganName(vulnerable.getMgtOrgan())); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); - + return mav; } - + @GetMapping("/vulnViewModal") public ModelAndView vulnViewModal(@AuthenticationPrincipal UserInfo loginUser,Vulnerable vulnerable) { ModelAndView mav = new ModelAndView("fipTarget/vulnViewModal"); Vulnerable vulnInfo = fipTargetService.selectVulnInfo(vulnerable); vulnInfo.setFileList(fipTargetService.selectVulnFile(vulnInfo.getVulnKey())); mav.addObject("vulnInfo", vulnInfo); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/vulnerableList").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); - + return mav; } - + @GetMapping("/vulnFileDownload") public void vulnFileDownload(HttpServletRequest request, - HttpServletResponse response, - Integer fileSeq, - Integer vulnKey) { - VulnFile downloadFile = fipTargetService.selectVulnInfoFileDown(fileSeq, vulnKey); + HttpServletResponse response, + Integer fileSeq, + Integer vulnKey) { + VulnFile downloadFile = fipTargetService.selectVulnInfoFileDown(fileSeq, vulnKey); BufferedInputStream in; BufferedOutputStream out; @@ -466,109 +495,109 @@ public class FipTargetController { e.printStackTrace(); } } - + @PostMapping("/deleteVulnerable") @ResponseBody public void deleteVulnerable(@RequestBody Vulnerable vulnerable) { - fipTargetService.deleteVulnerable(vulnerable); + fipTargetService.deleteVulnerable(vulnerable); } - //외사취약지 끝 + //외사취약지 끝 //국제여객선 시작 @GetMapping("/ipShipList") public ModelAndView ipShipList(@AuthenticationPrincipal UserInfo loginUser, ShipInfo shipInfo, HttpServletResponse response) { ModelAndView mav = new ModelAndView("fipTarget/ipShipList"); shipInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); - - //엑셀다운 + + //엑셀다운 if(shipInfo.getExcel() != null && shipInfo.getExcel().equals("Y")){ - String[] headers = {"hangro", "owner_nm", "ship_nm", "ship_weight", "susong", "operation_cnt", "close_yn", "wrt_dt"}; - String[] headerNames = { "항로", "사업자"+System.lineSeparator()+"(한국대리점)", "선명", "국제"+System.lineSeparator()+"총톤수", "수송능력", "운항횟수", "휴항", "최종수정일"}; - String[] columnType = { "String", "String", "String", "String", "String", "String", "String","String"}; - String sheetName=""; - String excelFileName=""; - if(shipInfo.getSiType().equals("KRCN")) { - sheetName = "한-중 국제여객선 현황"; - excelFileName = "한-중 국제여객선 현황"; - }else if(shipInfo.getSiType().equals("KRJPRU")) { - sheetName = "한-일,러 국제여객선 현황"; - excelFileName = "한-일,러 국제여객선 현황"; - } + String[] headers = {"hangro", "owner_nm", "ship_nm", "ship_weight", "susong", "operation_cnt", "close_yn", "wrt_dt"}; + String[] headerNames = { "항로", "사업자"+System.lineSeparator()+"(한국대리점)", "선명", "국제"+System.lineSeparator()+"총톤수", "수송능력", "운항횟수", "휴항", "최종수정일"}; + String[] columnType = { "String", "String", "String", "String", "String", "String", "String","String"}; + String sheetName=""; + String excelFileName=""; + if(shipInfo.getSiType().equals("KRCN")) { + sheetName = "한-중 국제여객선 현황"; + excelFileName = "한-중 국제여객선 현황"; + }else if(shipInfo.getSiType().equals("KRJPRU")) { + sheetName = "한-일,러 국제여객선 현황"; + excelFileName = "한-일,러 국제여객선 현황"; + } - List ipShipList= fipTargetService.selectShipInfoListToExcle(shipInfo); + List ipShipList= fipTargetService.selectShipInfoListToExcle(shipInfo); - try { - Utils.ipShipDownExcel(ipShipList, response, headers, headerNames,columnType, sheetName, excelFileName); - } catch (IOException e) { - - } - return null; - } + try { + Utils.ipShipDownExcel(ipShipList, response, headers, headerNames,columnType, sheetName, excelFileName); + } catch (IOException e) { + + } + return null; + } //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/ipShipList?siType="+shipInfo.getSiType()).get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); shipInfo.setQueryInfo(); mav.addObject("shipInfoList", fipTargetService.selectShipInfoList(shipInfo)); shipInfo.setContentCnt(fipTargetService.selectShipInfoListCnt(shipInfo)); - shipInfo.setPaginationInfo(); + shipInfo.setPaginationInfo(); mav.addObject("uesrId", loginUser.getUserId()); mav.addObject("searchParams", shipInfo); return mav; } - + @GetMapping("/ipShipEditModal") public ModelAndView ipShipEditModal(@AuthenticationPrincipal UserInfo loginUser,ShipInfo shipInfo) { ModelAndView mav = new ModelAndView("fipTarget/ipShipEditModal"); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/ipShipList?siType="+shipInfo.getSiType()).get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); mav.addObject("siType", shipInfo.getSiType()); - + return mav; } - + @PostMapping("/saveShipInfo") public void saveShipInfo (@AuthenticationPrincipal UserInfo loginUser, ShipInfo shipInfo){ - shipInfo.setWrtNm(loginUser.getUserNm()); - shipInfo.setWrtPart(loginUser.getOfcCd()); - shipInfo.setWrtTitle(loginUser.getTitleCd()); - shipInfo.setWrtUserSeq(loginUser.getUserSeq()); - shipInfo.setWrtOrgan(loginUser.getOgCd()); - shipInfo.setWrtDt(LocalDateTime.now()); - fipTargetService.saveShipInfo(shipInfo); + shipInfo.setWrtNm(loginUser.getUserNm()); + shipInfo.setWrtPart(loginUser.getOfcCd()); + shipInfo.setWrtTitle(loginUser.getTitleCd()); + shipInfo.setWrtUserSeq(loginUser.getUserSeq()); + shipInfo.setWrtOrgan(loginUser.getOgCd()); + shipInfo.setWrtDt(LocalDateTime.now()); + fipTargetService.saveShipInfo(shipInfo); } - + @GetMapping("/shipInfoView") public ModelAndView shipInfoView(@AuthenticationPrincipal UserInfo loginUser,ShipInfo shipInfo) { ModelAndView mav = new ModelAndView("fipTarget/ipShipViewModal"); mav.addObject("shipInfo", fipTargetService.selectShipInfo(shipInfo)); - //메뉴권한 확인 + //메뉴권한 확인 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/ipShipList?siType="+shipInfo.getSiType()).get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); //첫번째 작성 UserSeq mav.addObject("wrtUserSeq", fipTargetService.selectFirstWrtId(shipInfo)); - + mav.addObject("userSeq", loginUser.getUserSeq()); return mav; } - + @PostMapping("/updateShipInfo") public ShipInfo updateShipInfo (@AuthenticationPrincipal UserInfo loginUser,ShipInfo shipInfo){ - shipInfo.setWrtNm(loginUser.getUserNm()); - shipInfo.setWrtPart(loginUser.getOfcCd()); - shipInfo.setWrtTitle(loginUser.getTitleCd()); - shipInfo.setWrtUserSeq(loginUser.getUserSeq()); - shipInfo.setWrtOrgan(loginUser.getOgCd()); - shipInfo.setWrtDt(LocalDateTime.now()); - return fipTargetService.updateShipInfo(shipInfo); + shipInfo.setWrtNm(loginUser.getUserNm()); + shipInfo.setWrtPart(loginUser.getOfcCd()); + shipInfo.setWrtTitle(loginUser.getTitleCd()); + shipInfo.setWrtUserSeq(loginUser.getUserSeq()); + shipInfo.setWrtOrgan(loginUser.getOgCd()); + shipInfo.setWrtDt(LocalDateTime.now()); + return fipTargetService.updateShipInfo(shipInfo); } - + @GetMapping("/ipShipHistory") public ModelAndView ipShipHistory(ShipInfo shipInfo) { ModelAndView mav = new ModelAndView("fipTarget/ipShipHistory"); mav.addObject("shipInfoList", fipTargetService.selectIpShiwHistoryList(shipInfo)); return mav; } - + @GetMapping("/ipShipHistoryView") @ResponseBody public ModelAndView ipShipHistoryView(ShipInfo shipInfo){ @@ -576,17 +605,17 @@ public class FipTargetController { mav.addObject("shipInfo", fipTargetService.selectIpShipHistoryView(shipInfo)); return mav; } - + @PostMapping("/deleteShipInfo") @ResponseBody public void deleteShipInfo(@RequestBody ShipInfo shipInfo) { - fipTargetService.deleteShipInfo(shipInfo); + fipTargetService.deleteShipInfo(shipInfo); } - + //국제여객선 끝 - - - - + + + + } diff --git a/src/main/java/com/dbnt/faisp/main/fipTarget/mapper/FipTargetMapper.java b/src/main/java/com/dbnt/faisp/main/fipTarget/mapper/FipTargetMapper.java index 56ad7a29..6a93869d 100644 --- a/src/main/java/com/dbnt/faisp/main/fipTarget/mapper/FipTargetMapper.java +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/mapper/FipTargetMapper.java @@ -29,10 +29,6 @@ public interface FipTargetMapper { List selectPartInfoSeq(PartInfo partInfo); - PartInfo selectPartInfoHistoryView(PartInfo partInfo); - - List selectPartInfoFileHistoryView(PartInfo partInfo); - String selectPartInfoFirstId(Integer piSeq); List selectTerminalName(PartWork partWork); diff --git a/src/main/java/com/dbnt/faisp/main/fipTarget/model/PartWork.java b/src/main/java/com/dbnt/faisp/main/fipTarget/model/PartWork.java index c076c1b8..b30f7a0a 100644 --- a/src/main/java/com/dbnt/faisp/main/fipTarget/model/PartWork.java +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/model/PartWork.java @@ -68,18 +68,6 @@ public class PartWork extends BaseModel implements Serializable{ @Transient private String terminalNm; @Transient - private String workTypeCh; - @Transient - private String workTypePoci; - @Transient - private String workTypeSri; - @Transient - private String workTypeJi; - @Transient - private String workTypeMt; - @Transient - private String workTypeEtc; - @Transient private Integer fileCnt; @Transient diff --git a/src/main/java/com/dbnt/faisp/main/fipTarget/service/FipTargetService.java b/src/main/java/com/dbnt/faisp/main/fipTarget/service/FipTargetService.java index 06bce08b..57859734 100644 --- a/src/main/java/com/dbnt/faisp/main/fipTarget/service/FipTargetService.java +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/service/FipTargetService.java @@ -192,12 +192,10 @@ public class FipTargetService extends BaseService { return fipTargetMapper.selectPartInfoSeq(partInfo); } - public PartInfo selectPartInfoHistoryView(PartInfo partInfo) { - return fipTargetMapper.selectPartInfoHistoryView(partInfo); - } - - public List selectPartInfoFileHistoryView(PartInfo partInfo) { - return fipTargetMapper.selectPartInfoFileHistoryView(partInfo); + public PartInfo selectPartInfoHistory(PartInfo partInfo) { + partInfo = partInfoRepository.findById(new PartInfoId(partInfo.getPiSeq(), partInfo.getVersionNo())).orElse(partInfo); + partInfo.setFileList(partInfoFileRepository.findByPiSeqAndVersionNoOrderByFileSeqAsc(partInfo.getPiSeq(), partInfo.getVersionNo())); + return partInfo; } @Transactional diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java index b8246ea9..47092037 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java @@ -180,6 +180,7 @@ public class UserInfoService implements UserDetailsService { public void userDelete(List userInfo) { userInfoRepository.deleteAll(userInfo); } + public List selectManagerList(ParamMap param) { return userInfoMapper.selectManagerList(param); } diff --git a/src/main/java/com/dbnt/faisp/util/Utils.java b/src/main/java/com/dbnt/faisp/util/Utils.java index 9c8459a1..bfe3d88b 100644 --- a/src/main/java/com/dbnt/faisp/util/Utils.java +++ b/src/main/java/com/dbnt/faisp/util/Utils.java @@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.dbnt.faisp.main.codeMgt.model.CodeMgt; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; @@ -466,8 +467,8 @@ public class Utils { } } - public static void partWorkListToExcel(List partWorkList, HttpServletResponse response, String[] headers, - String[] headerNames, String[] headerNames2, String[] columnType, String sheetName, String excelFileName) throws IOException { + public static void partWorkListToExcel(List partWorkList, List pwtList, HttpServletResponse response, String[] headers, + String[] headerNames, String[] headerNames2, String[] columnType, String sheetName, String excelFileName) throws IOException { if(Utils.isNotEmpty(partWorkList)) { // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. XSSFWorkbook wb = new XSSFWorkbook(); @@ -515,18 +516,11 @@ public class Utils { }else { rowData.set("work_dt", ""); } - rowData.set("work_type_ch", partWorkList.get(i).getWorkTypeCh()); - rowData.set("work_type_poci", partWorkList.get(i).getWorkTypePoci()); - rowData.set("work_type_sri", partWorkList.get(i).getWorkTypeSri()); - rowData.set("work_type_ji", partWorkList.get(i).getWorkTypeJi()); - rowData.set("work_type_mt", partWorkList.get(i).getWorkTypeMt()); - rowData.set("work_type_etc", partWorkList.get(i).getWorkTypeEtc()); + for(CodeMgt code: pwtList){ + rowData.set("work_type_"+code.getItemCd(), partWorkList.get(i).getWorkType().equals(code.getItemCd())?"O":""); + } rowData.set("description", partWorkList.get(i).getDescription()); - if(partWorkList.get(i).getFileCnt() > 0) { - rowData.set("file_cnt", "●"); - }else { - rowData.set("file_cnt", ""); - } + rowData.set("file_cnt", partWorkList.get(i).getFileCnt()+"건"); rowData.set("wrt_dt", partWorkList.get(i).getWrtDt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))); for(int j=0; j - - - - ' - ); - } + dataType:"html", + success: function(html){ + $("#valueDiv").empty().append(html); }, error:function(){ @@ -365,27 +351,27 @@ $(document).on('click', '.historyInfoTr', function (){ }) $(document).on('click', '#deletePartInfo', function (){ - const piSeq = $('input[name=piSeq]').val(); - if(confirm("삭제하시겠습니까?")){ - contentFade("in"); - $.ajax({ - type : 'POST', - url : "/target/deletePartInfo", - data : JSON.stringify({piSeq:piSeq}), - contentType: 'application/json', - beforeSend: function (xhr){ - xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); - }, - success : function(data) { - alert("삭제 처리되었습니다."); - location.reload(); - }, - error : function(xhr, status) { - alert("삭제 처리에 실패하였습니다"); - } - }) + const piSeq = $('input[name=piSeq]').val(); + if(confirm("삭제하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/target/deletePartInfo", + data : JSON.stringify({piSeq:piSeq}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) - } + } }) $(document).on('click', '.fileDownPartInfo', function (){ @@ -398,11 +384,11 @@ $(document).on('click', '.fileDownPartInfo', function (){ }) $(document).on('click', '.btn-close', function (){ - location.reload(); + location.reload(); }) $(document).on('click', '#btn-close', function (){ - location.reload(); + location.reload(); }) diff --git a/src/main/resources/static/js/fipTarget/partWork.js b/src/main/resources/static/js/fipTarget/partWork.js index 27a912d8..f0f3e233 100644 --- a/src/main/resources/static/js/fipTarget/partWork.js +++ b/src/main/resources/static/js/fipTarget/partWork.js @@ -1,6 +1,6 @@ $(document).on('click', '#addPartWork', function (){ - $.ajax({ + $.ajax({ url: '/target/partWorkEditModal', type: 'GET', dataType:"html", @@ -13,18 +13,7 @@ $(document).on('click', '#addPartWork', function (){ language: "ko", autoclose: true }); - $("#workInfo").summernote({ - lang:'ko-KR', - height: 350, - disableDragAndDrop: true, - toolbar: [ - ['style', ['style']], - ['font', ['bold', 'underline', 'clear']], - ['color', ['color']], - ['para', ['ul', 'ol', 'paragraph']], - ['table', ['table']] - ] - }); + setEditor('editor', '400'); }, error:function(){ @@ -33,99 +22,89 @@ $(document).on('click', '#addPartWork', function (){ }) $(document).on('click', '#saveBtn', function (){ - if($('#piSeq').val() == ''){ - alert('터미널명을 선택해주세요'); - $('#piSeq').focus(); - return false; - } - if($('input:radio[name="workType"]:checked').length < 1){ - alert('종류를 선택해주세요'); - return false; - } - if(confirm("저장하시겠습니까?")){ - $('#saveYn').val('Y'); - contentFade("in"); - savePartWork(); - } + if($('#piSeq').val() == ''){ + alert('터미널명을 선택해주세요'); + $('#piSeq').focus(); + return false; + } + if($('input:radio[name="workType"]:checked').length < 1){ + alert('종류를 선택해주세요'); + return false; + } + if(confirm("저장하시겠습니까?")){ + $('#saveYn').val('Y'); + contentFade("in"); + savePartWork(); + } }) $(document).on('click', '#temporarySaveBtn', function (){ - if($('#piSeq').val() == ''){ - alert('터미널명을 선택해주세요'); - $('#piSeq').focus(); - return false; - } - if($('input:radio[name="workType"]:checked').length < 1){ - alert('종류를 선택해주세요'); - return false; - } - if(confirm("임시 저장하시겠습니까?")){ - $('#saveYn').val('N'); - contentFade("in"); - savePartWork(); - } + if($('#piSeq').val() == ''){ + alert('터미널명을 선택해주세요'); + $('#piSeq').focus(); + return false; + } + if($('input:radio[name="workType"]:checked').length < 1){ + alert('종류를 선택해주세요'); + return false; + } + if(confirm("임시 저장하시겠습니까?")){ + $('#saveYn').val('N'); + contentFade("in"); + savePartWork(); + } }) function savePartWork(){ - const formData = new FormData($("#partWorkSaveFm")[0]); - for(const file of files) { - if(!file.isDelete) - formData.append('uploadFiles', file, file.name); - } - $.ajax({ - type : 'POST', - data : formData, - url : "/target/savePartWork", - processData: false, - contentType: false, - success : function(result) { - alert("저장되었습니다."); - contentFade("out"); - location.reload(); - }, - error : function(xhr, status) { - alert("저장에 실패하였습니다.") - contentFade("out"); - } - }) + const formData = new FormData($("#partWorkSaveFm")[0]); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); + } + formData.append('workInfo', CrossEditor.GetBodyValue()); + $.ajax({ + type : 'POST', + data : formData, + url : "/target/savePartWork", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) } $(document).on('click', '.partWorkTr', function (){ - const pwSeq = (Number($(this).find(".pwSeq").val())); - const piSeq = (Number($(this).find(".piSeq").val())); - showModal(pwSeq,piSeq); + const pwSeq = (Number($(this).find(".pwSeq").val())); + const piSeq = (Number($(this).find(".piSeq").val())); + showModal(pwSeq,piSeq); }) function showModal(pwSeq,piSeq){ - $.ajax({ + $.ajax({ url: '/target/partWorkView', data: { - pwSeq: pwSeq, - piSeq: piSeq - }, + pwSeq: pwSeq, + piSeq: piSeq + }, type: 'GET', dataType:"html", success: function(html){ $("#partWorkEditModalEditModalContent").empty().append(html); - $("#partWorkEditModal").modal('show'); setUploadDiv(); - $("#mWorkDt").datepicker({ + $("#workDt").datepicker({ format: "yyyy-mm-dd", language: "ko", autoclose: true }); - $("#mWorkInfo").summernote({ - lang:'ko-KR', - height: 350, - disableDragAndDrop: true, - toolbar: [ - ['style', ['style']], - ['font', ['bold', 'underline', 'clear']], - ['color', ['color']], - ['para', ['ul', 'ol', 'paragraph']], - ['table', ['table']] - ] - }); + setEditor('editor', '400'); + $("#partWorkEditModal").modal('show'); }, error:function(){ @@ -134,60 +113,60 @@ function showModal(pwSeq,piSeq){ } $(document).on('click', '#updateBtn', function (){ - if(confirm("수정하시겠습니까?")){ - contentFade("in"); - const formData = new FormData($("#partWorkUpdateFm")[0]); - formData.append('saveYn','Y'); - for(const file of files) { - if(!file.isDelete) - formData.append('uploadFiles', file, file.name); - } - $(".text-decoration-line-through").each(function (idx, el){ - formData.append('fileSeq', $(el).attr("data-fileseq")); - }) - $.ajax({ - type : 'POST', - data : formData, - url : "/target/updatePartWork", - processData: false, - contentType: false, - success : function(data) { - alert("수정되었습니다."); - contentFade("out"); - showModal(data.pwSeq,data.piSeq); - }, - error : function(xhr, status) { - alert("수정에 실패하였습니다.") - contentFade("out"); - } - }) + if(confirm("수정하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#partWorkUpdateFm")[0]); + formData.append('saveYn','Y'); + for(const file of files) { + if(!file.isDelete) + formData.append('uploadFiles', file, file.name); } + $(".text-decoration-line-through").each(function (idx, el){ + formData.append('fileSeq', $(el).attr("data-fileseq")); + }) + formData.append('workInfo', CrossEditor.GetBodyValue()); + $.ajax({ + type : 'POST', + data : formData, + url : "/target/updatePartWork", + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + contentFade("out"); + showModal(data.pwSeq,data.piSeq); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } }) $(document).on('click', '#deletePartWork', function (){ - const pwSeq = $('input[name=pwSeq]').val(); - const piSeq = $('#mPiSeq').val(); - console.log(piSeq); - if(confirm("삭제하시겠습니까?")){ - contentFade("in"); - $.ajax({ - type : 'POST', - url : "/target/deletePartWork", - data : JSON.stringify({pwSeq:pwSeq, - piSeq:piSeq}), - contentType: 'application/json', - beforeSend: function (xhr){ - xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); - }, - success : function(data) { - alert("삭제 처리되었습니다."); - location.reload(); - }, - error : function(xhr, status) { - alert("삭제 처리에 실패하였습니다"); - } - }) - } + const pwSeq = $('input[name=pwSeq]').val(); + const piSeq = $('#mPiSeq').val(); + console.log(piSeq); + if(confirm("삭제하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/target/deletePartWork", + data : JSON.stringify({pwSeq:pwSeq, piSeq:piSeq}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + location.reload(); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) + } }) $(document).on('click', '.fileDownPartWork', function (){ @@ -200,19 +179,19 @@ $(document).on('click', '.fileDownPartWork', function (){ }) $(document).on('click', '#goExcel', function (){ - if(confirm("엑셀로 다운로드 하시겠습니까?")){ - $('input[name=excel]').val('Y'); - $('#searchFm').submit(); - $('input[name=excel]').val(''); - }else{ - false; - } + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } }) $(document).on('click', '.btn-close', function (){ - location.reload(); + location.reload(); }) $(document).on('click', '#btn-close', function (){ - location.reload(); + location.reload(); }) \ No newline at end of file diff --git a/src/main/resources/static/js/fipTarget/shipInfo.js b/src/main/resources/static/js/fipTarget/shipInfo.js index 3f5788aa..3cbb3c68 100644 --- a/src/main/resources/static/js/fipTarget/shipInfo.js +++ b/src/main/resources/static/js/fipTarget/shipInfo.js @@ -100,6 +100,13 @@ $(document).on('click', '#viewTab', function (){ showViewModal(siSeq,siType); }) +$(document).on('click', '#historyTab', function (){ + const siSeq = (Number($(this).data('siseq'))); + const siType = $(this).data('sitype'); + $(this).parents(".modal-dialog")[0].className = "modal-dialog modal-xl modal-dialog-scrollable"; + showHistory(siSeq,siType); +}) + function showViewModal(siSeq,siType){ $.ajax({ url: '/target/shipInfoView', @@ -119,13 +126,6 @@ function showViewModal(siSeq,siType){ }); } -$(document).on('click', '#historyTab', function (){ - const siSeq = (Number($(this).data('siseq'))); - const siType = $(this).data('sitype'); - $(this).parents(".modal-dialog")[0].className = "modal-dialog modal-xl modal-dialog-scrollable"; - showHistory(siSeq,siType); -}) - function showHistory(siSeq,siType){ $.ajax({ url: '/target/ipShipHistory', diff --git a/src/main/resources/templates/fipTarget/ipShipHistory.html b/src/main/resources/templates/fipTarget/ipShipHistory.html index 3959e7ad..6e56bea6 100644 --- a/src/main/resources/templates/fipTarget/ipShipHistory.html +++ b/src/main/resources/templates/fipTarget/ipShipHistory.html @@ -41,7 +41,7 @@
- 목록에서 선택해주세요. +
목록에서 선택해주세요.
diff --git a/src/main/resources/templates/fipTarget/partInfoEditModal.html b/src/main/resources/templates/fipTarget/partInfoEditModal.html index f2595496..4800c83e 100644 --- a/src/main/resources/templates/fipTarget/partInfoEditModal.html +++ b/src/main/resources/templates/fipTarget/partInfoEditModal.html @@ -7,123 +7,132 @@