From f67b41c05995e4aef0a193f29459fd964fa2eb2c Mon Sep 17 00:00:00 2001 From: TaehunPark Date: Wed, 21 Sep 2022 17:51:28 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EC=99=B8=EC=82=AC=EC=9E=A5=EB=B9=84?= =?UTF-8?q?=ED=98=84=ED=99=A9=20->=20=EC=84=B8=EB=B6=80=EC=9E=A5=EB=B9=84?= =?UTF-8?q?=ED=98=84=ED=99=A9=20=EC=9E=91=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dbnt/faisp/equip/EquipController.java | 38 ++++- .../dbnt/faisp/equip/mapper/EquipMapper.java | 8 + .../com/dbnt/faisp/equip/model/Equip.java | 33 +++- .../com/dbnt/faisp/equip/model/EquipFile.java | 12 +- .../equip/repository/EquipRepository.java | 5 + .../faisp/equip/service/EquipService.java | 120 +++++++++++++- .../resources/mybatisMapper/EquipMapper.xml | 116 ++++++++++++++ src/main/resources/static/js/equip/equip.js | 63 ++++++++ .../templates/equip/equipEditModal.html | 4 +- .../resources/templates/equip/equipList.html | 149 ++++++++++++++++++ .../templates/equip/equipModifyModal.html | 87 ++++++++++ .../templates/equip/equipStatus.html | 11 +- 12 files changed, 617 insertions(+), 29 deletions(-) create mode 100644 src/main/resources/templates/equip/equipList.html create mode 100644 src/main/resources/templates/equip/equipModifyModal.html diff --git a/src/main/java/com/dbnt/faisp/equip/EquipController.java b/src/main/java/com/dbnt/faisp/equip/EquipController.java index e1657f29..4c4b6750 100644 --- a/src/main/java/com/dbnt/faisp/equip/EquipController.java +++ b/src/main/java/com/dbnt/faisp/equip/EquipController.java @@ -69,11 +69,43 @@ public class EquipController { 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"); + 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(Equip equip) { + ModelAndView mav = new ModelAndView("equip/equipModifyModal"); + mav.addObject("equInfo", equipService.selectEquipInfo(equip)); + return mav; + } + + @PostMapping("/updateEquip") + @ResponseBody + public int updateEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){ + System.out.println("equip@"+equip); + equip.setWrtNm(loginUser.getUserId()); + equip.setMgtOrgan(loginUser.getOgCd()); + equip.setWrtOrgan(loginUser.getOgCd()); + equip.setWrtDt(LocalDateTime.now()); + int result = equipService.updateEquip(equip,request); + return result; + } + diff --git a/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java b/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java index ba0c8d1c..1eb4167b 100644 --- a/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java +++ b/src/main/java/com/dbnt/faisp/equip/mapper/EquipMapper.java @@ -15,6 +15,14 @@ public interface EquipMapper { List selectEquipStatus(Equip equip); + List selectEquipList(Equip equip); + + Integer selectEquipListCnt(Equip equip); + + Equip selectEquipInfo(Equip equip); + + ParamMap selectEduType(Equip equip); + } diff --git a/src/main/java/com/dbnt/faisp/equip/model/Equip.java b/src/main/java/com/dbnt/faisp/equip/model/Equip.java index e6557396..dd9c5f9d 100644 --- a/src/main/java/com/dbnt/faisp/equip/model/Equip.java +++ b/src/main/java/com/dbnt/faisp/equip/model/Equip.java @@ -56,6 +56,23 @@ public class Equip extends BaseModel implements Serializable{ private String wrtNm; @Column(name = "wrt_dt") private LocalDateTime wrtDt; + + @Transient + private String sosok; + @Transient + private String detailSosok; + @Transient + private String detailName; + @Transient + private String origNm; + @Transient + private String convNm; + @Transient + private String filePath; + @Transient + private Integer deleteFileKey; + @Transient + private Integer deleteFileVnum; @Embeddable @@ -73,7 +90,9 @@ public String toString() { return "Equip [equKey=" + equKey + ", versionNo=" + versionNo + ", mgtOrgan=" + mgtOrgan + ", equType=" + equType + ", detailType=" + detailType + ", storedYear=" + storedYear + ", mgtType=" + mgtType + ", itemQty=" + itemQty + ", itemCondition=" + itemCondition + ", note=" + note + ", wrtOrgan=" + wrtOrgan + ", wrtNm=" - + wrtNm + ", wrtDt=" + wrtDt + "]"; + + wrtNm + ", wrtDt=" + wrtDt + ", sosok=" + sosok + ", detailSosok=" + detailSosok + ", detailName=" + + detailName + ", origNm=" + origNm + ", convNm=" + convNm + ", filePath=" + filePath + ", deleteFileKey=" + + deleteFileKey + ", deleteFileVnum=" + deleteFileVnum + "]"; } @@ -83,4 +102,16 @@ public String toString() { + + + + + + + + + + + + } diff --git a/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java b/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java index 728003b3..93690703 100644 --- a/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java +++ b/src/main/java/com/dbnt/faisp/equip/model/EquipFile.java @@ -28,9 +28,6 @@ import java.util.Date; @IdClass(EquipFile.EquipFileId.class) @Table(name = "equ_file") public class EquipFile extends BaseModel implements Serializable{ - @Id - @Column(name = "file_seq") - private Integer fileSeq; @Id @Column(name = "equ_key") private Integer equKey; @@ -55,7 +52,6 @@ public class EquipFile extends BaseModel implements Serializable{ @NoArgsConstructor @AllArgsConstructor public static class EquipFileId implements Serializable { - private Integer fileSeq; private Integer equKey; private Integer versionNo; } @@ -64,9 +60,8 @@ public static class EquipFileId implements Serializable { @Override public String toString() { - return "EquipFile [fileSeq=" + fileSeq + ", equKey=" + equKey + ", versionNo=" + versionNo + ", origNm=" + origNm - + ", convNm=" + convNm + ", fileExtn=" + fileExtn + ", fileSize=" + fileSize + ", filePath=" + filePath - + "]"; + return "EquipFile [equKey=" + equKey + ", versionNo=" + versionNo + ", origNm=" + origNm + ", convNm=" + convNm + + ", fileExtn=" + fileExtn + ", fileSize=" + fileSize + ", filePath=" + filePath + "]"; } @@ -77,4 +72,7 @@ public String toString() { + + + } diff --git a/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java b/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java index 2a889b57..07151e9e 100644 --- a/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java +++ b/src/main/java/com/dbnt/faisp/equip/repository/EquipRepository.java @@ -1,6 +1,9 @@ package com.dbnt.faisp.equip.repository; import com.dbnt.faisp.equip.model.Equip; + +import java.util.Optional; + import org.springframework.data.jpa.repository.JpaRepository; @@ -12,4 +15,6 @@ public interface EquipRepository extends JpaRepository { + + } diff --git a/src/main/java/com/dbnt/faisp/equip/service/EquipService.java b/src/main/java/com/dbnt/faisp/equip/service/EquipService.java index 1ec11383..2bb31408 100644 --- a/src/main/java/com/dbnt/faisp/equip/service/EquipService.java +++ b/src/main/java/com/dbnt/faisp/equip/service/EquipService.java @@ -3,9 +3,13 @@ package com.dbnt.faisp.equip.service; import com.dbnt.faisp.equip.mapper.EquipMapper; import com.dbnt.faisp.equip.model.Equip; +import com.dbnt.faisp.equip.model.Equip.EquipId; import com.dbnt.faisp.equip.model.EquipFile; +import com.dbnt.faisp.equip.model.EquipFile.EquipFileId; import com.dbnt.faisp.equip.repository.EquipFileRepository; import com.dbnt.faisp.equip.repository.EquipRepository; +import com.dbnt.faisp.translator.model.Translator; +import com.dbnt.faisp.translator.model.Translator.TranslatorId; import com.dbnt.faisp.util.ParamMap; import com.dbnt.faisp.util.Utils; @@ -44,7 +48,7 @@ public class EquipService { equip.setEquKey(dbEquip.getEquKey()+1); equip.setVersionNo(1); equipRepository.save(equip); - } + } saveFile(equip,request); } catch (Exception e) { e.printStackTrace(); @@ -57,7 +61,7 @@ public class EquipService { String FileSize; File dir = new File(path); if(!dir.exists()) dir.mkdir(); - + //파일등록 List mFiles = mRequest.getFiles("file"); for(int i = 0; i < mFiles.size(); i++) { MultipartFile mFile = mFiles.get(i); @@ -74,7 +78,6 @@ public class EquipService { FileCopyUtils.copy(mFile.getBytes(), new File(path, saveName)); EquipFile equipFile = new EquipFile(); - equipFile.setFileSeq(1); equipFile.setEquKey(equip.getEquKey()); equipFile.setVersionNo(equip.getVersionNo()); equipFile.setOrigNm(fileName); @@ -82,17 +85,19 @@ public class EquipService { equipFile.setFileExtn(fileExt); equipFile.setFilePath(path); equipFile.setFileSize(FileSize); - System.out.println(equipFile); + equipFileRepository.save(equipFile); + } else { + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equip.getEquKey()); + equipFile.setVersionNo(equip.getVersionNo()); equipFileRepository.save(equipFile); } } } catch (Exception e) { throw e; - } - - + } } @@ -110,5 +115,106 @@ public class EquipService { return equipMapper.selectEquipStatus(equip); } + public List selectEquipList(Equip equip) { + return equipMapper.selectEquipList(equip); + } + + public Integer selectEquipListCnt(Equip equip) { + return equipMapper.selectEquipListCnt(equip); + } + + public Equip selectEquipInfo(Equip equip) { + return equipMapper.selectEquipInfo(equip); + } + + @Transactional + public int updateEquip(Equip equip, MultipartHttpServletRequest request) { + try { + Equip dbEquip = equipRepository.findById(new EquipId(equip.getEquKey(), equip.getVersionNo())).orElse(null); + Equip equipTmp = new Equip(); + equipTmp.setEquKey(dbEquip.getEquKey()); + equipTmp.setVersionNo(dbEquip.getVersionNo()+1); + equipTmp.setMgtOrgan(equip.getMgtOrgan()); + equipTmp.setEquType(equip.getEquType()); + equipTmp.setDetailType(equip.getDetailType()); + equipTmp.setStoredYear(equip.getStoredYear()); + equipTmp.setItemQty(equip.getItemQty()); + equipTmp.setItemCondition(equip.getItemCondition()); + equipTmp.setNote(equip.getNote()); + equipTmp.setWrtOrgan(equip.getWrtOrgan()); + equipTmp.setWrtNm(equip.getWrtNm()); + equipTmp.setWrtDt(equip.getWrtDt()); + equipRepository.save(equipTmp); + updateFile(equip,equipTmp,request); + } catch (Exception e) { + e.printStackTrace(); + } + return equip.getEquKey(); + } + + public void updateFile(Equip equip,Equip equipTmp, MultipartHttpServletRequest mRequest) throws Exception { + try { + String path = locationPath; + String FileSize; + File dir = new File(path); + if(!dir.exists()) dir.mkdir(); + + //이미지 삭제했을경우 + if(equip.getDeleteFileKey() != null) { + EquipFile equFile = new EquipFile(); + equFile.setEquKey(equip.getDeleteFileKey()); + equFile.setVersionNo(equip.getDeleteFileVnum()); + EquipFile dbEquFile = equipFileRepository.findById(new EquipFileId(equFile.getEquKey(), equFile.getVersionNo())).orElse(null); + if(dbEquFile != null) { + File file = new File(dbEquFile.getFilePath(), dbEquFile.getConvNm()); + + if(file.exists()) { + + file.delete(); + } + } + } + //파일등록 + List mFiles = mRequest.getFiles("file"); + for(int i = 0; i < mFiles.size(); i++) { + MultipartFile mFile = mFiles.get(i); + FileSize = calculationSize(mFile.getSize()); + if(!"".equals(mFile.getOriginalFilename())){ + String fileName = mFile.getOriginalFilename(); + if(fileName.contains("\\")){ + String notSecuredFileName = fileName.substring(fileName.lastIndexOf("\\") +1); + fileName = ("".equals(notSecuredFileName) || null == notSecuredFileName) ? fileName : notSecuredFileName; + }; + + String fileExt = Utils.getFileExtention(fileName); + String saveName = Utils.generationSaveName() + "." + fileExt; + FileCopyUtils.copy(mFile.getBytes(), new File(path, saveName)); + + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equipTmp.getEquKey()); + equipFile.setVersionNo(equipTmp.getVersionNo()); + equipFile.setOrigNm(fileName); + equipFile.setConvNm(saveName); + equipFile.setFileExtn(fileExt); + equipFile.setFilePath(path); + equipFile.setFileSize(FileSize); + + equipFileRepository.save(equipFile); + } else { + EquipFile equipFile = new EquipFile(); + equipFile.setEquKey(equipTmp.getEquKey()); + equipFile.setVersionNo(equipTmp.getVersionNo()); + equipFileRepository.save(equipFile); + } + } + } catch (Exception e) { + throw e; + } + } + + public ParamMap selectEduType(Equip equip) { + return equipMapper.selectEduType(equip); + } + } diff --git a/src/main/resources/mybatisMapper/EquipMapper.xml b/src/main/resources/mybatisMapper/EquipMapper.xml index 2f1c3710..c2da0910 100644 --- a/src/main/resources/mybatisMapper/EquipMapper.xml +++ b/src/main/resources/mybatisMapper/EquipMapper.xml @@ -195,6 +195,122 @@ group by c.category_cd,c.equ_type,c.item_value,item_cd order by category_cd,item_cd asc + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/equip/equip.js b/src/main/resources/static/js/equip/equip.js index 1579112c..a44290bb 100644 --- a/src/main/resources/static/js/equip/equip.js +++ b/src/main/resources/static/js/equip/equip.js @@ -45,6 +45,7 @@ $(document).on('change', '#equType', function (){ } }); +}); $(document).on('click', '#saveEquip', function (){ if(confirm("저장하시겠습니까?")){ @@ -69,6 +70,68 @@ $(document).on('click', '#saveEquip', function (){ }) } +}); + +$(document).on('click', '#equUpdateBtn', function (){ + if($('input:checkbox[name=equChk]:checked').length > 1){ + alert("한개만 선택해주세요") + return false; + } + const target = $('input:checkbox[name=equChk]:checked'); + const equKey = Number(target.parents('tr').find('.equKey').val()); + showUpdateModal(equKey); }) +function showUpdateModal(equKey){ + $.ajax({ + url: '/equip/updatePage', + data: {equKey: equKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#configEqu").empty().append(html) + $("#equipModifyModal").modal('show'); + }, + error:function(){ + + } + }); +} + +$(document).on('click', '#addImgBtn', function (){ + $("#imgUpload").remove(); + $("#imgUpdate").show(); + +}) + +function deleteImg(equKey,versionNo){ + $('#equipModifyForm').append('', + ''); + $("#imgUpload").remove(); + $("#imgUpdate").show(); +} + +$(document).on('click', '#updateEquip', function (){ + if(confirm("수정하시겠습니까?")){ + let ajaxUrl = "/equip/updateEquip"; + const formData = new FormData($("#equipModifyForm")[0]); + contentFade("in"); + $.ajax({ + type : 'POST', + data : formData, + url : ajaxUrl, + processData: false, + contentType: false, + success : function(data) { + alert("수정되었습니다."); + showUpdateModal(data); + contentFade("out"); + }, + error : function(xhr, status) { + alert("수정에 실패하였습니다.") + contentFade("out"); + } + }) + } + }); \ No newline at end of file diff --git a/src/main/resources/templates/equip/equipEditModal.html b/src/main/resources/templates/equip/equipEditModal.html index a9f8d630..23719e33 100644 --- a/src/main/resources/templates/equip/equipEditModal.html +++ b/src/main/resources/templates/equip/equipEditModal.html @@ -43,9 +43,9 @@
- - + diff --git a/src/main/resources/templates/equip/equipList.html b/src/main/resources/templates/equip/equipList.html new file mode 100644 index 00000000..50b1a967 --- /dev/null +++ b/src/main/resources/templates/equip/equipList.html @@ -0,0 +1,149 @@ + + + + + +
+
+

+ + + +
+
+
+
+ + +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
소속세부소속장비사진취득년도보유량상태비고
+ + + +
+
+
+ + + +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ + + +
+ \ No newline at end of file diff --git a/src/main/resources/templates/equip/equipModifyModal.html b/src/main/resources/templates/equip/equipModifyModal.html new file mode 100644 index 00000000..42de14af --- /dev/null +++ b/src/main/resources/templates/equip/equipModifyModal.html @@ -0,0 +1,87 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/equip/equipStatus.html b/src/main/resources/templates/equip/equipStatus.html index 73042d44..10288dba 100644 --- a/src/main/resources/templates/equip/equipStatus.html +++ b/src/main/resources/templates/equip/equipStatus.html @@ -105,7 +105,7 @@ - + @@ -155,21 +155,14 @@
+
\ No newline at end of file