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 99c86ad0..dd26eb06 100644 --- a/src/main/java/com/dbnt/faisp/main/fipTarget/FipTargetController.java +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/FipTargetController.java @@ -13,7 +13,7 @@ import com.dbnt.faisp.main.fipTarget.service.FipTargetService; import com.dbnt.faisp.main.organMgt.service.OrganConfigService; import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.service.UserInfoService; - +import com.dbnt.faisp.util.Excel; import com.dbnt.faisp.util.ParamMap; import com.dbnt.faisp.util.Utils; @@ -160,7 +160,7 @@ public class FipTargetController { return partInfo.getPiSeq(); } - @GetMapping("/PartInfoHistoryPage") + @GetMapping("/partInfoHistoryPage") public ModelAndView PartInfoHistoryPage(PartInfo partInfo) { ModelAndView mav = new ModelAndView("fipTarget/partInfoHistory"); mav.addObject("partInfoList", fipTargetService.selectPartInfoSeq(partInfo)); @@ -474,11 +474,37 @@ public class FipTargetController { 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 = "한-일,러 국제여객선 현황"; + } + + List ipShipList= fipTargetService.selectShipInfoListToExcle(shipInfo); + + 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(); mav.addObject("uesrId", loginUser.getUserId()); mav.addObject("searchParams", shipInfo); @@ -489,13 +515,69 @@ public class FipTargetController { public ModelAndView ipShipEditModal(@AuthenticationPrincipal UserInfo loginUser,ShipInfo shipInfo) { ModelAndView mav = new ModelAndView("fipTarget/ipShipEditModal"); //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partWorkList").get(0).getAccessAuth(); + 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.getUserId()); + 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.getUserId()); + 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.selectShipInfoSeq(shipInfo)); + return mav; + } + + @GetMapping("/ipShipHistoryView") + @ResponseBody + public ShipInfo ipShipHistoryView(ShipInfo shipInfo){ + return fipTargetService.selectIpShipHistoryView(shipInfo); + } + + @PostMapping("/deleteShipInfo") + @ResponseBody + public void deleteShipInfo(@RequestBody ShipInfo 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 e0d9b87a..455a96e0 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 @@ -3,6 +3,7 @@ package com.dbnt.faisp.main.fipTarget.mapper; import com.dbnt.faisp.main.fipTarget.model.PartInfo; import com.dbnt.faisp.main.fipTarget.model.PartInfoFile; import com.dbnt.faisp.main.fipTarget.model.PartWork; +import com.dbnt.faisp.main.fipTarget.model.ShipInfo; import com.dbnt.faisp.main.fipTarget.model.Vulnerable; import com.dbnt.faisp.util.ParamMap; @@ -51,6 +52,15 @@ public interface FipTargetMapper { Vulnerable selectVulnInfo(Vulnerable vulnerable); + List selectShipInfoList(ShipInfo shipInfo); + + Integer selectShipInfoListCnt(ShipInfo shipInfo); + + ShipInfo selectShipInfo(ShipInfo shipInfo); + + List selectShipInfoListToExcle(ShipInfo shipInfo); + + diff --git a/src/main/java/com/dbnt/faisp/main/fipTarget/model/ShipInfo.java b/src/main/java/com/dbnt/faisp/main/fipTarget/model/ShipInfo.java index 807a8079..f8e44eaf 100644 --- a/src/main/java/com/dbnt/faisp/main/fipTarget/model/ShipInfo.java +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/model/ShipInfo.java @@ -38,7 +38,7 @@ public class ShipInfo extends BaseModel implements Serializable{ @Column(name = "start_point") private String startPoint; @Column(name = "end_point") - private Integer endPoint; + private String endPoint; @Column(name = "distance_nm") private String distanceNm; @Column(name = "distance_km") @@ -50,7 +50,7 @@ public class ShipInfo extends BaseModel implements Serializable{ @Column(name = "operation_cnt") private String operationCnt; @Column(name = "ship_weight") - private Integer shipWeight; + private Double shipWeight; @Column(name = "passenger_cnt") private Integer passengerCnt; @Column(name = "freight_cnt") @@ -75,6 +75,9 @@ public class ShipInfo extends BaseModel implements Serializable{ @Transient private String excel; + + @Transient + private String weightStr; @Override diff --git a/src/main/java/com/dbnt/faisp/main/fipTarget/repository/ShipInfoRepository.java b/src/main/java/com/dbnt/faisp/main/fipTarget/repository/ShipInfoRepository.java new file mode 100644 index 00000000..48314031 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/fipTarget/repository/ShipInfoRepository.java @@ -0,0 +1,26 @@ +package com.dbnt.faisp.main.fipTarget.repository; + + +import com.dbnt.faisp.main.fipTarget.model.ShipInfo; + +import java.util.List; + + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + + + + +public interface ShipInfoRepository extends JpaRepository { + + ShipInfo findTopBySiTypeOrderBySiSeqDesc(String siType); + + List findBySiSeqAndSiTypeOrderByVersionNoDesc(Integer siSeq, String siType); + + void deleteBySiSeqAndSiType(Integer siSeq, String siType); + + @Query(value = "SELECT wrt_user_seq FROM ship_info WHERE si_seq=:siSeq AND si_type=:siType order by version_no asc limit 1", nativeQuery = true) + Integer getWrtUserSeq(@Param("siSeq") Integer siSeq,@Param("siType") String siType); +} 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 2c6ccb4c..fa5e9214 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 @@ -12,6 +12,8 @@ import com.dbnt.faisp.main.fipTarget.model.PartWork; import com.dbnt.faisp.main.fipTarget.model.PartWork.PartWorkId; import com.dbnt.faisp.main.fipTarget.model.PartWorkFile; import com.dbnt.faisp.main.fipTarget.model.PartWorkFile.PartWorkFileId; +import com.dbnt.faisp.main.fipTarget.model.ShipInfo; +import com.dbnt.faisp.main.fipTarget.model.ShipInfo.ShipInfoId; import com.dbnt.faisp.main.fipTarget.model.VulnFile; import com.dbnt.faisp.main.fipTarget.model.VulnFile.VulnFileId; import com.dbnt.faisp.main.fipTarget.model.Vulnerable; @@ -19,6 +21,7 @@ import com.dbnt.faisp.main.fipTarget.repository.PartInfoFileRepository; import com.dbnt.faisp.main.fipTarget.repository.PartInfoRepository; import com.dbnt.faisp.main.fipTarget.repository.PartWorkFileRepository; import com.dbnt.faisp.main.fipTarget.repository.PartWorkRepository; +import com.dbnt.faisp.main.fipTarget.repository.ShipInfoRepository; import com.dbnt.faisp.main.fipTarget.repository.VulnFileRepository; import com.dbnt.faisp.main.fipTarget.repository.VulnRepository; import com.dbnt.faisp.util.ParamMap; @@ -31,6 +34,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.text.DecimalFormat; +import java.time.LocalDateTime; import java.util.*; @Service @@ -45,6 +50,7 @@ public class FipTargetService extends BaseService { private final PartWorkFileRepository partWorkFileRepository; private final VulnRepository vulnRepository; private final VulnFileRepository vulnFileRepository; + private final ShipInfoRepository shipInfoRepository; private final FipTargetMapper fipTargetMapper; @Transactional @@ -405,8 +411,89 @@ public class FipTargetService extends BaseService { } vulnFileRepository.deleteByVulnKey(vulnerable.getVulnKey()); vulnRepository.deleteById(vulnerable.getVulnKey()); - } + } + @Transactional + public void saveShipInfo(ShipInfo shipInfo) { + ShipInfo dbShip = shipInfoRepository.findTopBySiTypeOrderBySiSeqDesc(shipInfo.getSiType()); + if(dbShip == null) { + shipInfo.setSiSeq(1); + shipInfo.setVersionNo(1); + }else { + shipInfo.setSiSeq(dbShip.getSiSeq()+1); + shipInfo.setVersionNo(1); + } + shipInfoRepository.save(shipInfo); + } + + public List selectShipInfoList(ShipInfo shipInfo) { + List List = fipTargetMapper.selectShipInfoList(shipInfo); + DecimalFormat formatter3 = new DecimalFormat("#,##0.####"); + for(ShipInfo tmpList : List) { + if(tmpList.getShipWeight() != null) { + tmpList.setWeightStr(formatter3.format(tmpList.getShipWeight())); + } + } + return List; + } + + public Integer selectShipInfoListCnt(ShipInfo shipInfo) { + return fipTargetMapper.selectShipInfoListCnt(shipInfo); + } + + public ShipInfo selectShipInfo(ShipInfo shipInfo) { + return fipTargetMapper.selectShipInfo(shipInfo); + } + + @Transactional + public ShipInfo updateShipInfo(ShipInfo shipInfo) { + ShipInfo dbShip = shipInfoRepository.findById(new ShipInfoId(shipInfo.getSiSeq(),shipInfo.getSiType(), shipInfo.getVersionNo())).orElse(null); + ShipInfo shipTmp = new ShipInfo(); + shipTmp.setSiSeq(dbShip.getSiSeq()); + shipTmp.setSiType(dbShip.getSiType()); + shipTmp.setVersionNo(dbShip.getVersionNo()+1); + shipTmp.setStartPoint(shipInfo.getStartPoint()); + shipTmp.setEndPoint(shipInfo.getEndPoint()); + shipTmp.setOwnerNm(shipInfo.getOwnerNm()); + shipTmp.setShipNm(shipInfo.getShipNm()); + shipTmp.setDistanceNm(shipInfo.getDistanceNm()); + shipTmp.setDistanceKm(shipInfo.getDistanceKm()); + shipTmp.setShipWeight(shipInfo.getShipWeight()); + shipTmp.setPassengerCnt(shipInfo.getPassengerCnt()); + shipTmp.setFreightCnt(shipInfo.getFreightCnt()); + shipTmp.setOperationCnt(shipInfo.getOperationCnt()); + shipTmp.setCloseYn(shipInfo.getCloseYn()); + shipTmp.setDescription(shipInfo.getDescription()); + shipTmp.setWrtNm(shipInfo.getWrtNm()); + shipTmp.setWrtPart(shipInfo.getWrtPart()); + shipTmp.setWrtTitle(shipInfo.getWrtTitle()); + shipTmp.setWrtUserSeq(shipInfo.getWrtUserSeq()); + shipTmp.setWrtOrgan(shipInfo.getWrtOrgan()); + shipTmp.setWrtDt(shipInfo.getWrtDt()); + return shipInfoRepository.save(shipTmp); + } + + public List selectShipInfoSeq(ShipInfo shipInfo) { + return shipInfoRepository.findBySiSeqAndSiTypeOrderByVersionNoDesc(shipInfo.getSiSeq(),shipInfo.getSiType()); + } + + public ShipInfo selectIpShipHistoryView(ShipInfo shipInfo) { + return shipInfoRepository.findById(new ShipInfoId(shipInfo.getSiSeq(),shipInfo.getSiType(), shipInfo.getVersionNo())).orElse(null); + } + + @Transactional + public void deleteShipInfo(ShipInfo shipInfo) { + shipInfoRepository.deleteBySiSeqAndSiType(shipInfo.getSiSeq(),shipInfo.getSiType()); + } + + public List selectShipInfoListToExcle(ShipInfo shipInfo) { + return fipTargetMapper.selectShipInfoListToExcle(shipInfo); + } + + public Integer selectFirstWrtId(ShipInfo shipInfo) { + return shipInfoRepository.getWrtUserSeq(shipInfo.getSiSeq(),shipInfo.getSiType()); + } + diff --git a/src/main/java/com/dbnt/faisp/util/Utils.java b/src/main/java/com/dbnt/faisp/util/Utils.java index 896d4469..f81dcbc1 100644 --- a/src/main/java/com/dbnt/faisp/util/Utils.java +++ b/src/main/java/com/dbnt/faisp/util/Utils.java @@ -4,6 +4,7 @@ package com.dbnt.faisp.util; import java.io.IOException; import java.io.PrintWriter; +import java.text.DecimalFormat; import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; @@ -877,4 +878,85 @@ public class Utils { } } + public static void ipShipDownExcel(List ipShipList, HttpServletResponse response, String[] headers, + String[] headerNames, String[] columnType, String sheetName, String excelFileName) throws IOException { + DecimalFormat formatter3 = new DecimalFormat("#,##0.####"); + if(Utils.isNotEmpty(ipShipList)) { + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(sheetName); + Row headerRow = sheet.createRow(0); + CellStyle cellStyle1 = wb.createCellStyle(); //쉼표들어간 숫자 양식 + CellStyle cellStyle2 = wb.createCellStyle(); + CellStyle cellStyle3 = wb.createCellStyle();//숫자양식 + CellStyle headerStyle = wb.createCellStyle(); //숫자양식 + + XSSFDataFormat format = wb.createDataFormat(); + cellStyle1.setDataFormat(format.getFormat("#,##0")); + cellStyle2.setDataFormat(format.getFormat("#,##0")); + cellStyle3.setWrapText(true); + cellStyle1.setAlignment(HorizontalAlignment.CENTER); + cellStyle2.setAlignment(HorizontalAlignment.CENTER); + cellStyle3.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + headerStyle.setFillForegroundColor((short)3); + headerStyle.setFillForegroundColor(IndexedColors.LIME.getIndex()); + headerStyle.setWrapText(true); + + //로우그리기 + for(int i=0; i + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/fipTarget/partInfo.js b/src/main/resources/static/js/fipTarget/partInfo.js index c7d008d6..c8c0101b 100644 --- a/src/main/resources/static/js/fipTarget/partInfo.js +++ b/src/main/resources/static/js/fipTarget/partInfo.js @@ -299,7 +299,7 @@ $(document).on('click', '#updatePartInfo', function (){ function showHistory(piSeq){ $.ajax({ - url: '/target/PartInfoHistoryPage', + url: '/target/partInfoHistoryPage', data: { piSeq: piSeq }, diff --git a/src/main/resources/static/js/fipTarget/shipInfo.js b/src/main/resources/static/js/fipTarget/shipInfo.js index aebfe764..74db528d 100644 --- a/src/main/resources/static/js/fipTarget/shipInfo.js +++ b/src/main/resources/static/js/fipTarget/shipInfo.js @@ -8,6 +8,15 @@ $(document).on('click', '#krjpruTab', function (){ $(document).on('click', '#addKRCN', function (){ const siType = 'KRCN'; + showEditModal(siType); +}) + +$(document).on('click', '#addKRJPRU', function (){ + const siType = 'KRJPRU'; + showEditModal(siType); +}) + +function showEditModal(siType){ $.ajax({ url: '/target/ipShipEditModal', data: {siType: siType}, @@ -22,4 +31,237 @@ $(document).on('click', '#addKRCN', function (){ } }); +} + +$(document).on('click', '#saveShipInfo', function (){ + if($('#startPoint').val() == ''){ + alert('출발지를 입력해주세요.'); + $('#startPoint').focus(); + return false; + } + if($('#endPoint').val() == ''){ + alert('도착지를 입력해주세요'); + $('#endPoint').focus(); + return false; + } + if($('#distanceNm').val() == ''){ + alert('거리(해리)를 입력해주세요'); + $('#distanceNm').focus(); + return false; + } + if($('#distanceKm').val() == ''){ + alert('거리(Km)를 입력해주세요'); + $('#distanceKm').focus(); + return false; + } + if($('#ownerNm').val() == ''){ + alert('사업자를를 입력해주세요'); + $('#ownerNm').focus(); + return false; + } + if($('#shipNm').val() == ''){ + alert('선명을 입력해주세요'); + $('#shipNm').focus(); + return false; + } + + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#shipInfoSave")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/target/saveShipInfo", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + location.reload(); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '.shipInfoTr', function (){ + const siSeq = (Number($(this).find(".siSeq").val())); + const siType = $(this).find(".siType").val(); + showViewModal(siSeq,siType); +}) + +$(document).on('click', '#viewTab', function (){ + const siSeq = (Number($(this).data('siseq'))); + const siType = $(this).data('sitype'); + showViewModal(siSeq,siType); +}) + +function showViewModal(siSeq,siType){ + $.ajax({ + url: '/target/shipInfoView', + data: { + siSeq: siSeq, + siType: siType + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#ipShipModalContent").empty().append(html); + $("#ipShipModal").modal('show'); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#historyTab', function (){ + const siSeq = (Number($(this).data('siseq'))); + const siType = $(this).data('sitype'); + showHistory(siSeq,siType); +}) + +function showHistory(siSeq,siType){ + $.ajax({ + url: '/target/ipShipHistory', + data: { + siSeq: siSeq, + siType: siType + }, + type: 'GET', + dataType:"html", + success: function(html){ + $("#ipShipModalContent").empty().append(html); + $("#ipShipModal").modal('show'); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#updateShipInfo', function (){ + if($('#startPointM').val() == ''){ + alert('출발지를 입력해주세요.'); + $('#startPointM').focus(); + return false; + } + if($('#endPointM').val() == ''){ + alert('도착지를 입력해주세요'); + $('#endPointM').focus(); + return false; + } + if($('#distanceNmM').val() == ''){ + alert('거리(해리)를 입력해주세요'); + $('#distanceNmM').focus(); + return false; + } + if($('#distanceKmM').val() == ''){ + alert('거리(Km)를 입력해주세요'); + $('#distanceKmM').focus(); + return false; + } + if($('#ownerNmM').val() == ''){ + alert('사업자를를 입력해주세요'); + $('#ownerNmM').focus(); + return false; + } + if($('#shipNmM').val() == ''){ + alert('선명을 입력해주세요'); + $('#shipNmM').focus(); + return false; + } + if(confirm("수정하시겠습니까?")){ + contentFade("in"); + const formData = new FormData($("#shipInfoUpdate")[0]); + $.ajax({ + type : 'POST', + data : formData, + url : "/target/updateShipInfo", + processData: false, + contentType: false, + success : function(result) { + alert("수정되었습니다."); + contentFade("out"); + showViewModal(result.siSeq,result.siType); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } +}) + +$(document).on('click', '.historyInfoTr', function (){ + $(this).find('.hisChk').prop('checked',true) + if($(this).find('.hisChk').prop('checked')){ + $('.hisChk').prop('checked',false); + $(this).find('.hisChk').prop('checked',true) + } + $.ajax({ + url: '/target/ipShipHistoryView', + data: { + siSeq: Number($(this).find(".siSeq").val()), + siType: $(this).find(".siType").val(), + versionNo : Number($(this).find(".verNo").val()) + }, + type: 'GET', + dataType:"json", + success: function(data){ + $('#hHangro').val(data.startPoint+' / '+data.endPoint+'('+data.distanceNm+','+data.distanceKm+')'); + $('#hOwnerNm').val(data.ownerNm); + $('#hShipNm').val(data.shipNm); + $('#hShipWeight').val(data.shipWeight); + $('#hSusong').val('여객 : '+data.passengerCnt+'명'+'\n'+'화물 : '+data.freightCnt+'TEU') + $('#hOperationCnt').val(data.operationCnt); + $('#hCloseYn').val(data.closeYn); + console.log(data); + }, + error:function(){ + + } + }); +}) + +$(document).on('click', '#deleteShipInfo', function (){ + const siSeq = $('#vSiSeq').val(); + const siType = $('#vSiType').val(); + if(confirm("삭제하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + url : "/target/deleteShipInfo", + data : JSON.stringify({siSeq:siSeq,siType:siType}), + 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', '#goExcel', function (){ + if(confirm("엑셀로 다운로드 하시겠습니까?")){ + $('input[name=excel]').val('Y'); + $('#searchFm').submit(); + $('input[name=excel]').val(''); + }else{ + false; + } +}) + +$(document).on('click', '#btn-close', function (){ + location.reload(); }) \ No newline at end of file diff --git a/src/main/resources/templates/fipTarget/ipShipEditModal.html b/src/main/resources/templates/fipTarget/ipShipEditModal.html index 34f4e272..960970c6 100644 --- a/src/main/resources/templates/fipTarget/ipShipEditModal.html +++ b/src/main/resources/templates/fipTarget/ipShipEditModal.html @@ -2,69 +2,74 @@