From cffa53ccb5bbd413fa42fbae23da838339cf7de8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Tue, 20 Sep 2022 18:10:30 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=AC=EB=AC=B8=EB=B3=B4=EA=B3=A0=20?= =?UTF-8?q?=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/config/FileController.java | 13 +-- .../dbnt/faisp/fpiMgt/FpiMgtController.java | 28 +++--- .../fpiMgt/affair/mapper/AffairMapper.java | 14 +++ .../fpiMgt/affair/model/AffairBoard.java | 64 ++++++++++++++ .../faisp/fpiMgt/affair/model/AffairFile.java | 47 ++++++++++ .../fpiMgt/affair/model/AffairRating.java | 52 +++++++++++ .../faisp/fpiMgt/affair/model/HashTag.java | 26 ++++++ .../fpiMgt/affair/model/HashTagLink.java | 37 ++++++++ .../repository/AffairBoardRepository.java | 9 ++ .../repository/AffairFileRepository.java | 13 +++ .../repository/AffairRatingRepository.java | 11 +++ .../repository/HashTagLinkRepository.java | 8 ++ .../affair/repository/HashTagRepository.java | 9 ++ .../fpiMgt/affair/service/AffairService.java | 86 +++++++++++++++++++ .../{MonthPlanMapper.java => PlanMapper.java} | 2 +- ...MonthPlanService.java => PlanService.java} | 29 +++---- .../service/PublicBoardService.java | 5 ++ .../resources/mybatisMapper/AffairMapper.xml | 65 ++++++++++++++ .../{MonthPlanMapper.xml => PlanMapper.xml} | 2 +- 19 files changed, 485 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java rename src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/{MonthPlanMapper.java => PlanMapper.java} (89%) rename src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/{MonthPlanService.java => PlanService.java} (90%) create mode 100644 src/main/resources/mybatisMapper/AffairMapper.xml rename src/main/resources/mybatisMapper/{MonthPlanMapper.xml => PlanMapper.xml} (97%) diff --git a/src/main/java/com/dbnt/faisp/config/FileController.java b/src/main/java/com/dbnt/faisp/config/FileController.java index d26f0179..eda2c8d0 100644 --- a/src/main/java/com/dbnt/faisp/config/FileController.java +++ b/src/main/java/com/dbnt/faisp/config/FileController.java @@ -1,9 +1,8 @@ package com.dbnt.faisp.config; -import com.dbnt.faisp.fpiMgt.monthPlan.service.MonthPlanService; -import com.dbnt.faisp.userInfo.model.UserInfo; +import com.dbnt.faisp.fpiMgt.monthPlan.service.PlanService; +import com.dbnt.faisp.publicBoard.service.PublicBoardService; import lombok.RequiredArgsConstructor; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,7 +16,8 @@ import java.net.URLEncoder; @RequiredArgsConstructor public class FileController { - private final MonthPlanService monthPlanService; + private final PlanService planService; + private final PublicBoardService publicBoardService; @GetMapping("/file/fileDownload") public void fileDownload(HttpServletRequest request, @@ -28,7 +28,10 @@ public class FileController { FileInfo downloadFile = null; switch (board){ case "monthPlan": - downloadFile = monthPlanService.selectPlanFile(parentKey, fileSeq); + downloadFile = planService.selectPlanFile(parentKey, fileSeq); + break; + case "publicFile": + downloadFile = publicBoardService.selectPublicFile(parentKey, fileSeq); break; } diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java b/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java index 1b585c3f..a640c73f 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java @@ -1,8 +1,9 @@ package com.dbnt.faisp.fpiMgt; import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanApprv; -import com.dbnt.faisp.fpiMgt.monthPlan.service.MonthPlanService; +import com.dbnt.faisp.fpiMgt.monthPlan.service.PlanService; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanBoard; import com.dbnt.faisp.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; @@ -19,8 +20,9 @@ import java.util.Map; @RestController @RequiredArgsConstructor @RequestMapping("/fpiMgt") -public class FpiMgtController { // 외사경찰견문관리 - private final MonthPlanService monthPlanService; +public class FpiMgtController { // 첩보수집활동 + private final PlanService planService; + private final AffairService affairService; private final AuthMgtService authMgtService; @GetMapping("/monthPlanPage") @@ -46,8 +48,8 @@ public class FpiMgtController { // 외사경찰견문관리 mav.addObject("accessAuth", accessAuth); mav.addObject("apprvAuth", apprvAuth); planBoard.setQueryInfo(); - mav.addObject("planList", monthPlanService.selectPlanBoardList(planBoard)); - planBoard.setContentCnt(monthPlanService.selectPlanBoardListCnt(planBoard)); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); planBoard.setPaginationInfo(); mav.addObject("searchParams", planBoard); return mav; @@ -57,7 +59,7 @@ public class FpiMgtController { // 외사경찰견문관리 public ModelAndView planEditModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planEditModal"); if(planBoard.getPlanKey()!=null){ - planBoard = monthPlanService.selectPlanBoard(planBoard.getPlanKey()); + planBoard = planService.selectPlanBoard(planBoard.getPlanKey()); }else{ planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtPart(loginUser.getOfcCd()); @@ -72,7 +74,7 @@ public class FpiMgtController { // 외사경찰견문관리 @GetMapping("/planViewModal") public ModelAndView planViewModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planViewModal"); - planBoard = monthPlanService.selectPlanBoard(planBoard.getPlanKey()); + planBoard = planService.selectPlanBoard(planBoard.getPlanKey()); mav.addObject("plan", planBoard); mav.addObject("userSeq",loginUser.getUserSeq()); Map params = new HashMap<>(); @@ -91,7 +93,7 @@ public class FpiMgtController { // 외사경찰견문관리 MultipartHttpServletRequest request, @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ planBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); - return monthPlanService.savePlanBoard(planBoard, planInfos, detailPlanInfos, deleteFileSeq); + return planService.savePlanBoard(planBoard, planInfos, detailPlanInfos, deleteFileSeq); } @GetMapping("/apprvStayPage") @@ -137,8 +139,8 @@ public class FpiMgtController { // 외사경찰견문관리 mav.addObject("accessAuth", accessAuth); mav.addObject("apprvAuth", apprvAuth); planBoard.setQueryInfo(); - mav.addObject("planList", monthPlanService.selectPlanBoardList(planBoard)); - planBoard.setContentCnt(monthPlanService.selectPlanBoardListCnt(planBoard)); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); planBoard.setPaginationInfo(); mav.addObject("searchParams", planBoard); return mav; @@ -149,7 +151,7 @@ public class FpiMgtController { // 외사경찰견문관리 apprv.setUserSeq(loginUser.getUserSeq()); apprv.setUserNm(loginUser.getUserNm()); apprv.setSaveDt(LocalDateTime.now()); - return monthPlanService.planStateChange(apprv); + return planService.planStateChange(apprv); } @GetMapping("/apprvCommitPage") @@ -194,8 +196,8 @@ public class FpiMgtController { // 외사경찰견문관리 mav.addObject("accessAuth", accessAuth); mav.addObject("apprvAuth", apprvAuth); planBoard.setQueryInfo(); - mav.addObject("planList", monthPlanService.selectPlanBoardList(planBoard)); - planBoard.setContentCnt(monthPlanService.selectPlanBoardListCnt(planBoard)); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); planBoard.setPaginationInfo(); mav.addObject("searchParams", planBoard); return mav; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java new file mode 100644 index 00000000..3ffe92aa --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/mapper/AffairMapper.java @@ -0,0 +1,14 @@ +package com.dbnt.faisp.fpiMgt.affair.mapper; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AffairMapper { + + List selectAffairBoardList(AffairBoard affair); + + Integer selectAffairBoardCnt(AffairBoard affair); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java new file mode 100644 index 00000000..11f5216e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java @@ -0,0 +1,64 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.multipart.MultipartFile; + +import javax.persistence.*; +import java.time.LocalDateTime; +import java.util.List; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "affair_board") +public class AffairBoard extends BaseModel { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "affair_key") + private Integer affairKey; + @Column(name = "affair_status") + private String affairStatus; + @Column(name = "affair_type1") + private String affairType1; + @Column(name = "affair_type2") + private String affairType2; + @Column(name = "affair_type3") + private String affairType3; + @Column(name = "affair_type4") + private String affairType4; + @Column(name = "title") + private String title; + @Column(name = "content") + private String content; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + @Column(name = "plan_state") + private String planState; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + + + @Transient + private List fileList; + @Transient + private List rateList; + @Transient + private List multipartFileList; + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java new file mode 100644 index 00000000..e8ac62c8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairFile.java @@ -0,0 +1,47 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "affair_file") +@IdClass(AffairFile.AffairFileId.class) +public class AffairFile extends FileInfo { + @Id + @Column(name = "affair_key") + private Integer affairKey; + @Id + @Column(name = "file_seq") + private Integer fileSeq; + @Column(name = "orig_nm") + private String origNm; + @Column(name = "conv_nm") + private String convNm; + @Column(name = "file_extn") + private String fileExtn; + @Column(name = "file_size") + private String fileSize; + @Column(name = "save_path") + private String savePath; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class AffairFileId implements Serializable { + private Integer affairKey; + private Integer fileSeq; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java new file mode 100644 index 00000000..1d75ac96 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java @@ -0,0 +1,52 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "affair_rating") +@IdClass(AffairRating.AffairRatingId.class) +public class AffairRating{ + @Id + @Column(name = "affair_key") + private Integer affairKey; + @Id + @Column(name = "rating_organ") + private String ratingOrgan; + @Column(name = "section_nm") + private String sectionNm; + @Column(name = "section_apprv") + private String sectionApprv; + @Column(name = "section_etc") + private String sectionEtc; + @Column(name = "head_nm") + private String headNm; + @Column(name = "head_apprv") + private String headApprv; + @Column(name = "head_etc") + private String headEtc; + @Column(name = "affair_rate") + private String affairRate; + @Column(name = "organ_up") + private String organUp; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class AffairRatingId implements Serializable { + private Integer affairKey; + private String ratingOrgan; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java new file mode 100644 index 00000000..39673657 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTag.java @@ -0,0 +1,26 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "hash_tag") +public class HashTag{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "tag_key") + private Integer tagKey; + @Column(name = "tag_nm") + private String tagNm; + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java new file mode 100644 index 00000000..5470a72f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/HashTagLink.java @@ -0,0 +1,37 @@ +package com.dbnt.faisp.fpiMgt.affair.model; + +import com.dbnt.faisp.config.FileInfo; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "hash_tag_link") +@IdClass(HashTagLink.HashTagLinkId.class) +public class HashTagLink extends FileInfo { + @Id + @Column(name = "affair_key") + private Integer affairKey; + @Id + @Column(name = "tag_key") + private Integer tagKey; + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class HashTagLinkId implements Serializable { + private Integer affairKey; + private Integer tagKey; + } + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java new file mode 100644 index 00000000..36d44c2f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairBoardRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface AffairBoardRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java new file mode 100644 index 00000000..1311a1dc --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairFileRepository.java @@ -0,0 +1,13 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairFile; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; +import java.util.Optional; + + +public interface AffairFileRepository extends JpaRepository { + List findByAffairKey(Integer affairKey); + Optional findTopByAffairKeyOrderByFileSeqDesc(Integer planKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java new file mode 100644 index 00000000..b811e664 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java @@ -0,0 +1,11 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.AffairRating; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface AffairRatingRepository extends JpaRepository { + List findByAffairKey(Integer affairKey); +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java new file mode 100644 index 00000000..1cbdaaf6 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagLinkRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.HashTagLink; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface HashTagLinkRepository extends JpaRepository { +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java new file mode 100644 index 00000000..4ae757bf --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/HashTagRepository.java @@ -0,0 +1,9 @@ +package com.dbnt.faisp.fpiMgt.affair.repository; + +import com.dbnt.faisp.fpiMgt.affair.model.HashTag; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface HashTagRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java new file mode 100644 index 00000000..0df540b1 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java @@ -0,0 +1,86 @@ +package com.dbnt.faisp.fpiMgt.affair.service; + + +import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.fpiMgt.affair.mapper.AffairMapper; +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import com.dbnt.faisp.fpiMgt.affair.model.AffairFile; +import com.dbnt.faisp.fpiMgt.affair.repository.*; +import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanFile; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class AffairService extends BaseService { // 견문보고 + private final AffairBoardRepository affairBoardRepository; + private final AffairFileRepository affairFileRepository; + private final AffairRatingRepository affairRatingRepository; + private final HashTagRepository hashTagRepository; + private final HashTagLinkRepository hashTagLinkRepository; + private final AffairMapper affairMapper; + + public List selectAffairBoardList(AffairBoard affair){ + return affairMapper.selectAffairBoardList(affair); + } + public Integer selectAffairBoardCnt(AffairBoard affair){ + return affairMapper.selectAffairBoardCnt(affair); + } + + public AffairBoard selectAffairBoard(Integer affairKey){ + AffairBoard affair = affairBoardRepository.findById(affairKey).orElse(null); + if(affair != null){ + affair.setFileList(affairFileRepository.findByAffairKey(affairKey)); + affair.setRateList(affairRatingRepository.findByAffairKey(affairKey)); + } + return affair; + } + @Transactional + public Integer saveAffairBoard(AffairBoard affair, List deleteFileSeq){ + Integer affairKey = affairBoardRepository.save(affair).getAffairKey(); + if(deleteFileSeq != null && deleteFileSeq.size()>0){ + deleteAffairFile(affairKey, deleteFileSeq); + } + if(affair.getMultipartFileList()!=null){ + saveUploadFiles(affairKey, affair.getMultipartFileList()); + } + return affairKey; + } + + private void deleteAffairFile(Integer affairKey, List deleteFileSeq) { + List affairFileList = affairFileRepository.findByAffairKey(affairKey); + for(AffairFile file: affairFileList){ + if(deleteFileSeq.contains(file.getFileSeq())){ + deleteStoredFile(new File(file.getSavePath(), file.getConvNm())); + affairFileRepository.delete(file); + } + } + } + private void saveUploadFiles(Integer affairKey, List multipartFileList){ + AffairFile lastFileInfo = affairFileRepository.findTopByAffairKeyOrderByFileSeqDesc(affairKey).orElse(null); + int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); + for(MultipartFile file : multipartFileList){ + String saveName = UUID.randomUUID().toString(); + String path = locationPath+File.separator+"monthPlan"+File.separator; + saveFile(file, new File(path+File.separator+saveName)); + + String originalFilename = file.getOriginalFilename(); + int extnIdx = originalFilename.lastIndexOf("."); + AffairFile fileInfo = new AffairFile(); + fileInfo.setAffairKey(affairKey); + fileInfo.setFileSeq(fileSeq++); + fileInfo.setOrigNm(originalFilename.substring(0, extnIdx)); + fileInfo.setFileExtn(originalFilename.substring(extnIdx+1)); + fileInfo.setConvNm(saveName); + fileInfo.setFileSize(calculationSize(file.getSize())); + fileInfo.setSavePath(path); + affairFileRepository.save(fileInfo); + } + } +} diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/MonthPlanMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/PlanMapper.java similarity index 89% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/MonthPlanMapper.java rename to src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/PlanMapper.java index e13632dc..f92efa29 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/MonthPlanMapper.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/PlanMapper.java @@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper -public interface MonthPlanMapper { +public interface PlanMapper { List selectPlanBoardList(PlanBoard planBoard); diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/MonthPlanService.java b/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/PlanService.java similarity index 90% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/MonthPlanService.java rename to src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/PlanService.java index 72c0e675..db09b80c 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/MonthPlanService.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/PlanService.java @@ -3,7 +3,7 @@ package com.dbnt.faisp.fpiMgt.monthPlan.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.FileInfo; -import com.dbnt.faisp.fpiMgt.monthPlan.mapper.MonthPlanMapper; +import com.dbnt.faisp.fpiMgt.monthPlan.mapper.PlanMapper; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanApprv; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanBoard; import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanFile; @@ -18,18 +18,25 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.File; -import java.io.IOException; import java.util.List; import java.util.UUID; @Service @RequiredArgsConstructor -public class MonthPlanService extends BaseService { +public class PlanService extends BaseService { // 월간계획 private final PlanBoardRepository planBoardRepository; private final PlanFileRepository planFileRepository; private final PlanMainInfoRepository planMainInfoRepository; private final PlanApprvRepository planApprvRepository; - private final MonthPlanMapper monthPlanMapper; + private final PlanMapper planMapper; + + public List selectPlanBoardList(PlanBoard planBoard) { + return planMapper.selectPlanBoardList(planBoard); + } + + public Integer selectPlanBoardListCnt(PlanBoard planBoard) { + return planMapper.selectPlanBoardListCnt(planBoard); + } public PlanBoard selectPlanBoard(Integer planKey) { PlanBoard savedPlan = planBoardRepository.findById(planKey).orElse(null); @@ -67,14 +74,6 @@ public class MonthPlanService extends BaseService { return planSeq; } - public List selectPlanBoardList(PlanBoard planBoard) { - return monthPlanMapper.selectPlanBoardList(planBoard); - } - - public Integer selectPlanBoardListCnt(PlanBoard planBoard) { - return monthPlanMapper.selectPlanBoardListCnt(planBoard); - } - private void saveUploadFiles(Integer planKey, List multipartFileList){ PlanFile lastFileInfo = planFileRepository.findTopByPlanKeyOrderByFileSeqDesc(planKey).orElse(null); int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); @@ -97,7 +96,7 @@ public class MonthPlanService extends BaseService { } } - public void deletePlanFile(Integer planKey, List deleteFileSeq) { + private void deletePlanFile(Integer planKey, List deleteFileSeq) { List planFileList = planFileRepository.findByPlanKey(planKey); for(PlanFile file: planFileList){ if(deleteFileSeq.contains(file.getFileSeq())){ @@ -107,8 +106,8 @@ public class MonthPlanService extends BaseService { } } - public FileInfo selectPlanFile(Integer parentKey, Integer fileSeq) { - return planFileRepository.findById(new PlanFile.PlanFileId(parentKey, fileSeq)).orElse(null); + public FileInfo selectPlanFile(Integer planKey, Integer fileSeq) { + return planFileRepository.findById(new PlanFile.PlanFileId(planKey, fileSeq)).orElse(null); } @Transactional diff --git a/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java b/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java index eab51ac6..30b8e259 100644 --- a/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java +++ b/src/main/java/com/dbnt/faisp/publicBoard/service/PublicBoardService.java @@ -1,6 +1,7 @@ package com.dbnt.faisp.publicBoard.service; import com.dbnt.faisp.config.BaseService; +import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.publicBoard.mapper.PublicBoardMapper; import com.dbnt.faisp.publicBoard.model.PublicBoard; import com.dbnt.faisp.publicBoard.model.PublicComment; @@ -102,4 +103,8 @@ public class PublicBoardService extends BaseService { publicCommentRepository.deleteAll(childList); publicCommentRepository.deleteById(new PublicComment.PublicCommentId(publicKey, commentKey)); } + + public FileInfo selectPublicFile(Integer publicKey, Integer fileSeq){ + return publicFileRepository.findById(new PublicFile.PublicFileId(publicKey, fileSeq)).orElse(null); + } } diff --git a/src/main/resources/mybatisMapper/AffairMapper.xml b/src/main/resources/mybatisMapper/AffairMapper.xml new file mode 100644 index 00000000..a58316f9 --- /dev/null +++ b/src/main/resources/mybatisMapper/AffairMapper.xml @@ -0,0 +1,65 @@ + + + + + + + + + and a.wrt_user_seq = #{wrtUserSeq} + + + and a.wrt_user_nm like '%'||#{wrtUserNm}||'%' + + + and a.wrt_organ = #{wrtOrgan} + + + and a.content_title like '%'||#{contentTitle}||'%' + + + and a.affair_state = #{affairState} + + + + and a.wrt_dt >= #{startDate}::date + + + and a.wrt_dt <= #{endDate}::date + + + + and a.wrt_organ in + + #{organCd} + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/MonthPlanMapper.xml b/src/main/resources/mybatisMapper/PlanMapper.xml similarity index 97% rename from src/main/resources/mybatisMapper/MonthPlanMapper.xml rename to src/main/resources/mybatisMapper/PlanMapper.xml index 5899f32e..035bcf30 100644 --- a/src/main/resources/mybatisMapper/MonthPlanMapper.xml +++ b/src/main/resources/mybatisMapper/PlanMapper.xml @@ -3,7 +3,7 @@ - +