From 4c86769cb6b63d9e59016136c4e1fdc036815c59 Mon Sep 17 00:00:00 2001 From: "DESKTOP-NQTA8OG\\lcks0" Date: Thu, 29 Sep 2022 15:02:15 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=AC=EB=AC=B8=ED=8F=89=EA=B0=80=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../faisp/fpiMgt/affair/AffairController.java | 30 ++++++++++++---- .../fpiMgt/affair/model/AffairBoard.java | 6 ++-- .../fpiMgt/affair/model/AffairRating.java | 2 ++ .../repository/AffairRatingRepository.java | 2 +- .../fpiMgt/affair/service/AffairService.java | 35 +++++++++---------- .../resources/mybatisMapper/AffairMapper.xml | 31 +++++++++------- .../igActivities/fpiMgt/affair/affairMgt.js | 13 ++++--- .../fpiMgt/affair/affairViewModal.html | 17 ++++++--- 8 files changed, 86 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java index 57de34c3..4b1b0a35 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java @@ -1,6 +1,7 @@ package com.dbnt.faisp.fpiMgt.affair; import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.codeMgt.service.CodeMgtService; import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; import com.dbnt.faisp.fpiMgt.affair.model.AffairRating; import com.dbnt.faisp.fpiMgt.affair.service.AffairService; @@ -23,6 +24,7 @@ import java.util.Map; public class AffairController { // 첩보수집활동 > 외사경찰 견문관리 > 견문관리 private final AffairService affairService; private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; @GetMapping("/affairMgt") public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ @@ -33,8 +35,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth(); switch (accessAuth){ case "ACC001": // 조회 - case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 - affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + case "ACC002": // 작성 break; case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); @@ -43,6 +44,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 } //결재권한 확인 String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + affairBoard.setRatingOrgan(loginUser.getOgCd()); mav.addObject("accessAuth", accessAuth); mav.addObject("apprvAuth", apprvAuth); affairBoard.setQueryInfo(); @@ -62,8 +64,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth(); switch (accessAuth){ case "ACC001": // 조회 - case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 - affairBoard.setWrtOrgan(loginUser.getOgCd()); + case "ACC002": // 작성 break; case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); @@ -72,6 +73,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 } //결재권한 확인 String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + affairBoard.setRatingOrgan(loginUser.getOgCd()); if(apprvAuth==null) { if(!accessAuth.equals("ACC003")){ affairBoard.setWrtUserSeq(loginUser.getUserSeq()); @@ -111,8 +113,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth(); switch (accessAuth){ case "ACC001": // 조회 - case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 - affairBoard.setWrtOrgan(loginUser.getOgCd()); + case "ACC002": // 작성 break; case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); @@ -121,6 +122,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 } //결재권한 확인 String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + affairBoard.setRatingOrgan(loginUser.getOgCd()); if(apprvAuth==null) { if(!accessAuth.equals("ACC003")){ affairBoard.setWrtUserSeq(loginUser.getUserSeq()); @@ -155,6 +157,11 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairEditModal"); if(affairBoard.getAffairKey()!=null){ affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); + for(AffairRating rating: affairBoard.getRateList()){ + if(rating.getRatingOrgan().equals(loginUser.getOgCd())){ + affairBoard.setAffairStatus(rating.getAffairStatus()); + } + } }else{ affairBoard.setWrtOrgan(loginUser.getOgCd()); affairBoard.setWrtPart(loginUser.getOfcCd()); @@ -171,11 +178,20 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관 public ModelAndView affairViewModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairViewModal"); affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); + for(AffairRating rating: affairBoard.getRateList()){ + if(rating.getRatingOrgan().equals(loginUser.getOgCd())){ + affairBoard.setAffairStatus(rating.getAffairStatus()); + } + } mav.addObject("affair", affairBoard); mav.addObject("userSeq",loginUser.getUserSeq()); //메뉴권한 확인 mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth()); - mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth()); + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + mav.addObject("apprvAuth", apprvAuth); + if(apprvAuth!=null && (apprvAuth.equals("APC002") || apprvAuth.equals("APC001"))){ + mav.addObject("ratingCodeList", codeMgtService.selectCodeMgtList("AAR")); + } return mav; } 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 index 63ed16f6..a0105b6d 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairBoard.java @@ -26,8 +26,6 @@ public class AffairBoard extends BaseModel { @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") @@ -62,6 +60,10 @@ public class AffairBoard extends BaseModel { @Column(name = "view_status") private String viewStatus; + @Transient + private String affairStatus; + @Transient + private String ratingOrgan; @Transient private String hashTags; 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 index 2cff1b43..f6b595ae 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/model/AffairRating.java @@ -43,6 +43,8 @@ public class AffairRating{ private String affairRate; @Column(name = "organ_up") private String organUp; + @Column(name = "affair_status") + private String affairStatus; @Embeddable 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 index b811e664..89798634 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/repository/AffairRatingRepository.java @@ -7,5 +7,5 @@ import java.util.List; public interface AffairRatingRepository extends JpaRepository { - List findByAffairKey(Integer affairKey); + List findByAffairKeyOrderByRatingOrganAsc(Integer affairKey); } 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 index 9b7d4006..ade9a60a 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/service/AffairService.java @@ -38,22 +38,13 @@ public class AffairService extends BaseService { // 견문보고 if(affair != null){ affair.setHashTags(affairMapper.selectHashTags(affairKey)); affair.setFileList(affairFileRepository.findByAffairKey(affairKey)); - affair.setRateList(affairRatingRepository.findByAffairKey(affairKey)); + affair.setRateList(affairRatingRepository.findByAffairKeyOrderByRatingOrganAsc(affairKey)); } return affair; } @Transactional public Integer saveAffairBoard(AffairBoard affair, List deleteFileSeq){ Integer affairKey = affairBoardRepository.save(affair).getAffairKey(); - if(affair.getAffairStatus().equals("DST002")){ - AffairRating rating = affairRatingRepository.findById(new AffairRating.AffairRatingId(affairKey,affair.getWrtOrgan())).orElse(null); - if(rating == null){ - rating = new AffairRating(); - rating.setAffairKey(affairKey); - rating.setRatingOrgan(affair.getWrtOrgan()); - affairRatingRepository.save(rating); - } - } String[] hashTagAry = affair.getHashTags().split(" "); if(hashTagAry.length>0){ saveHashTagLink(affairKey, hashTagAry); @@ -64,6 +55,16 @@ public class AffairService extends BaseService { // 견문보고 if(affair.getMultipartFileList()!=null){ saveUploadFiles(affairKey, affair.getMultipartFileList()); } + + AffairRating rating = affairRatingRepository.findById(new AffairRating.AffairRatingId(affairKey,affair.getWrtOrgan())).orElse(null); + if(rating == null){ + rating = new AffairRating(); + rating.setAffairKey(affairKey); + rating.setRatingOrgan(affair.getWrtOrgan()); + } + rating.setAffairStatus(affair.getAffairStatus()); + affairRatingRepository.save(rating); + return affairKey; } @@ -118,34 +119,32 @@ public class AffairService extends BaseService { // 견문보고 @Transactional public Integer affairStateChange(UserInfo loginUser, AffairRating rating) { - AffairBoard savedAffair = affairBoardRepository.findById(rating.getAffairKey()).orElse(null); AffairRating savedRating = affairRatingRepository.findById(new AffairRating.AffairRatingId(rating.getAffairKey(), rating.getRatingOrgan())).orElse(null); - if(savedAffair!= null && savedRating != null){ + if(savedRating != null){ if(rating.getHeadApprv() == null){ - savedAffair.setAffairStatus(rating.getSectionApprv()); savedRating.setSectionNm(loginUser.getUserNm()); savedRating.setSectionApprvDt(LocalDateTime.now()); savedRating.setSectionApprv(rating.getSectionApprv()); savedRating.setSectionEtc(rating.getSectionEtc()); + savedRating.setAffairStatus(rating.getSectionApprv()); }else{ - savedAffair.setAffairStatus(rating.getHeadApprv()); savedRating.setHeadNm(loginUser.getUserNm()); savedRating.setHeadApprvDt(LocalDateTime.now()); savedRating.setHeadApprv(rating.getHeadApprv()); savedRating.setHeadEtc(rating.getHeadEtc()); savedRating.setAffairRate(rating.getAffairRate()); - savedRating.setOrganUp(rating.getOrganUp()); - if(rating.getOrganUp().equals("T")){ + savedRating.setOrganUp(rating.getOrganUp()==null?"F":rating.getOrganUp()); + savedRating.setAffairStatus(rating.getHeadApprv()); + if(savedRating.getOrganUp().equals("T")){ List organList = loginUser.getUpOrganCdList(); String upOrgan = organList.get(organList.indexOf(savedRating.getRatingOrgan())-1); AffairRating upRating = new AffairRating(); upRating.setRatingOrgan(upOrgan); upRating.setAffairKey(savedRating.getAffairKey()); + upRating.setAffairStatus("DST002"); affairRatingRepository.save(upRating); - savedAffair.setAffairStatus("DST002"); } } - affairBoardRepository.save(savedAffair); affairRatingRepository.save(savedRating); } return rating.getAffairKey(); diff --git a/src/main/resources/mybatisMapper/AffairMapper.xml b/src/main/resources/mybatisMapper/AffairMapper.xml index 1a840660..73834d31 100644 --- a/src/main/resources/mybatisMapper/AffairMapper.xml +++ b/src/main/resources/mybatisMapper/AffairMapper.xml @@ -19,7 +19,7 @@ and a.title like '%'||#{title}||'%' - and a.affair_status = #{affairStatus} + and c.affair_status = #{affairStatus} and a.wrt_dt >= #{startDate}::date @@ -27,6 +27,9 @@ and a.wrt_dt <= #{endDate}::date+1 + + and c.rating_organ = #{ratingOrgan} + and a.wrt_organ in @@ -35,22 +38,22 @@ - and a.affair_status in ('DST002', 'DST004') + and c.affair_status in ('DST002', 'DST004') - and a.affair_status in ('DST003', 'DST005', 'DST006') + and c.affair_status in ('DST003', 'DST005', 'DST006') - and a.affair_status in ('DST003', 'DST004', 'DST005', 'DST006') + and c.affair_status in ('DST003', 'DST004', 'DST005', 'DST006') - and a.affair_status in ('DST003', 'DST005', 'DST006') + and c.affair_status in ('DST003', 'DST005', 'DST006') - and a.affair_status in ('DST002', 'DST004') + and c.affair_status in ('DST002', 'DST004') - and a.affair_status in ('DST003', 'DST005', 'DST006') + and c.affair_status in ('DST003', 'DST005', 'DST006') @@ -58,26 +61,30 @@ - - + +