From 3f8cf83644f084b372468626d213aa58686b62b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Wed, 21 Sep 2022 18:23:08 +0900 Subject: [PATCH] =?UTF-8?q?=EC=99=B8=EC=82=AC=EA=B2=BD=EC=B0=B0=EA=B2=AC?= =?UTF-8?q?=EB=AC=B8=EA=B4=80=EB=A6=AC=20>=20=EA=B3=84=ED=9A=8D=EC=88=98?= =?UTF-8?q?=EB=A6=BD=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95.=20?= =?UTF-8?q?=EC=99=B8=EC=82=AC=EA=B2=BD=EC=B0=B0=EA=B2=AC=EB=AC=B8=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20>=20=EA=B2=AC=EB=AC=B8=EA=B4=80=EB=A6=AC=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 --- .../dbnt/faisp/authMgt/AuthMgtController.java | 6 +- .../faisp/authMgt/service/AuthMgtService.java | 12 +- .../com/dbnt/faisp/config/FileController.java | 2 +- .../com/dbnt/faisp/config/SecurityConfig.java | 29 ++- .../faisp/fpiMgt/affair/AffairController.java | 194 +++++++++++++++ .../fpiMgt/affair/model/AffairBoard.java | 4 +- .../fpiMgt/affair/service/AffairService.java | 8 +- .../PlanController.java} | 229 +++++++++--------- .../mapper/PlanMapper.java | 4 +- .../model/PlanApprv.java | 2 +- .../model/PlanBoard.java | 2 +- .../model/PlanFile.java | 2 +- .../model/PlanMainInfo.java | 2 +- .../repository/PlanApprvRepository.java | 4 +- .../repository/PlanBoardRepository.java | 4 +- .../repository/PlanFileRepository.java | 4 +- .../repository/PlanMainInfoRepository.java | 4 +- .../service/PlanService.java | 20 +- .../translator/TranslatorController.java | 15 +- .../resources/mybatisMapper/AffairMapper.xml | 18 +- .../resources/mybatisMapper/PlanMapper.xml | 2 +- .../igActivities/fpiMgt/affair/affairMgt.js | 125 ++++++++++ .../js/igActivities/fpiMgt/affairPlan.js | 26 -- .../js/igActivities/fpiMgt/commitPlan.js | 33 --- .../fpiMgt/{monthPlan.js => plan/planMgt.js} | 75 +++++- .../static/js/igActivities/fpiMgt/stayPlan.js | 33 --- .../fpiMgt/affair/affairEditModal.html | 87 +++++++ .../commitPlan.html => affair/affairMgt.html} | 71 +++--- .../fpiMgt/affair/affairViewModal.html | 139 +++++++++++ .../igActivities/fpiMgt/affair/temp.html | 10 - .../fpiMgt/affairPlan/monthPlan.html | 182 -------------- .../{stayPlan.html => planMgt.html} | 11 +- .../publicBoard/notice/noticePage.html | 2 +- .../templates/publicBoard/qna/qnaPage.html | 4 +- 34 files changed, 838 insertions(+), 527 deletions(-) create mode 100644 src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java rename src/main/java/com/dbnt/faisp/fpiMgt/{FpiMgtController.java => affairPlan/PlanController.java} (79%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/mapper/PlanMapper.java (68%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/model/PlanApprv.java (95%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/model/PlanBoard.java (97%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/model/PlanFile.java (95%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/model/PlanMainInfo.java (94%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/repository/PlanApprvRepository.java (75%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/repository/PlanBoardRepository.java (57%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/repository/PlanFileRepository.java (75%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/repository/PlanMainInfoRepository.java (69%) rename src/main/java/com/dbnt/faisp/fpiMgt/{monthPlan => affairPlan}/service/PlanService.java (87%) create mode 100644 src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js delete mode 100644 src/main/resources/static/js/igActivities/fpiMgt/affairPlan.js delete mode 100644 src/main/resources/static/js/igActivities/fpiMgt/commitPlan.js rename src/main/resources/static/js/igActivities/fpiMgt/{monthPlan.js => plan/planMgt.js} (64%) delete mode 100644 src/main/resources/static/js/igActivities/fpiMgt/stayPlan.js create mode 100644 src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html rename src/main/resources/templates/igActivities/fpiMgt/{affairPlan/commitPlan.html => affair/affairMgt.html} (68%) create mode 100644 src/main/resources/templates/igActivities/fpiMgt/affair/affairViewModal.html delete mode 100644 src/main/resources/templates/igActivities/fpiMgt/affair/temp.html delete mode 100644 src/main/resources/templates/igActivities/fpiMgt/affairPlan/monthPlan.html rename src/main/resources/templates/igActivities/fpiMgt/affairPlan/{stayPlan.html => planMgt.html} (92%) diff --git a/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java b/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java index 6fa8ec6d..a1f5ec2f 100644 --- a/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java +++ b/src/main/java/com/dbnt/faisp/authMgt/AuthMgtController.java @@ -34,10 +34,8 @@ public class AuthMgtController { @GetMapping("/authEditModal") public ModelAndView menuEditModal(UserInfo userInfo){ ModelAndView mav = new ModelAndView("adminPage/authMgt/authEditModal"); - Map params = new HashMap<>(); - params.put("userSeq", userInfo.getUserSeq()); - userInfo.setAccessConfigList(authMgtService.selectAccessConfigList(params)); - userInfo.setApprovalConfigList(authMgtService.selectApprovalConfigList(params)); + userInfo.setAccessConfigList(authMgtService.selectAccessConfigList(userInfo.getUserSeq(), null)); + userInfo.setApprovalConfigList(authMgtService.selectApprovalConfigList(userInfo.getUserSeq(), null)); mav.addObject("userInfo", userInfo); return mav; } diff --git a/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java b/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java index 5ab3c839..1344cfd3 100644 --- a/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java +++ b/src/main/java/com/dbnt/faisp/authMgt/service/AuthMgtService.java @@ -10,6 +10,7 @@ import com.dbnt.faisp.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,12 +22,17 @@ public class AuthMgtService { private final AccessConfigRepository accessConfigRepository; private final ApprovalConfigRepository approvalConfigRepository; - - public List selectAccessConfigList(Map params) { + public List selectAccessConfigList(Integer userSeq, String url) { + Map params = new HashMap<>(); + params.put("userSeq", userSeq); + params.put("menuUrl", url); return authMgtMapper.selectAccessConfigList(params); } - public List selectApprovalConfigList(Map params) { + public List selectApprovalConfigList(Integer userSeq, String url) { + Map params = new HashMap<>(); + params.put("userSeq", userSeq); + params.put("menuUrl", url); return authMgtMapper.selectApprovalConfigList(params); } diff --git a/src/main/java/com/dbnt/faisp/config/FileController.java b/src/main/java/com/dbnt/faisp/config/FileController.java index eda2c8d0..5269bbb2 100644 --- a/src/main/java/com/dbnt/faisp/config/FileController.java +++ b/src/main/java/com/dbnt/faisp/config/FileController.java @@ -1,6 +1,6 @@ package com.dbnt.faisp.config; -import com.dbnt.faisp.fpiMgt.monthPlan.service.PlanService; +import com.dbnt.faisp.fpiMgt.affairPlan.service.PlanService; import com.dbnt.faisp.publicBoard.service.PublicBoardService; import lombok.RequiredArgsConstructor; import org.springframework.util.FileCopyUtils; diff --git a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java index 141b8325..80bf4808 100644 --- a/src/main/java/com/dbnt/faisp/config/SecurityConfig.java +++ b/src/main/java/com/dbnt/faisp/config/SecurityConfig.java @@ -15,6 +15,7 @@ import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.security.web.savedrequest.HttpSessionRequestCache; import org.springframework.security.web.savedrequest.SavedRequest; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; @@ -61,6 +62,20 @@ public class SecurityConfig{ }; } + @Bean + public AuthenticationSuccessHandler loginSuccessHandler() { + return (request, response, authentication) -> { + SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request,response); + baseController.setSession((UserInfo)authentication.getPrincipal(), request.getSession()); + if(savedRequest != null){ + String targetUrl = savedRequest.getRedirectUrl(); + new DefaultRedirectStrategy().sendRedirect(request,response,targetUrl); + }else{ + new DefaultRedirectStrategy().sendRedirect(request,response,"/"); + } + }; + } + @Bean protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeRequests() // 페이지 권한 설정 @@ -68,7 +83,8 @@ public class SecurityConfig{ "/dashboard", "/refreshSession", "/publicBoard/**", - "/fpiMgt/**" + "/affairPlan/**", + "/affair/**" ).hasRole(Role.USER.name()) // USER 접근 허용 .antMatchers( "/authMgt/**", @@ -87,16 +103,7 @@ public class SecurityConfig{ /*.failureHandler((request, response, exception) -> { })*/ // 로그인 실패시 동작 수행 - .successHandler((request, response, authentication) -> { - SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request,response); - baseController.setSession((UserInfo)authentication.getPrincipal(), request.getSession()); - if(savedRequest != null){ - String targetUrl = savedRequest.getRedirectUrl(); - new DefaultRedirectStrategy().sendRedirect(request,response,targetUrl); - }else{ - new DefaultRedirectStrategy().sendRedirect(request,response,"/"); - } - }) // 로그인 성공시 동작 수행. + .successHandler(loginSuccessHandler()) // 로그인 성공시 동작 수행. .and() // 로그아웃 설정 .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")) // 로그아웃 시 URL 재정의 .logoutSuccessUrl("/") // 로그아웃 성공 시 redirect 이동 diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java new file mode 100644 index 00000000..63ca45f8 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affair/AffairController.java @@ -0,0 +1,194 @@ +package com.dbnt.faisp.fpiMgt.affair; + +import com.dbnt.faisp.authMgt.service.AuthMgtService; +import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; +import com.dbnt.faisp.fpiMgt.affair.service.AffairService; +import com.dbnt.faisp.userInfo.model.UserInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/affair") +public class AffairController { // 첩보수집활동 > 외사경찰 견문관리 > 견문관리 + private final AffairService affairService; + private final AuthMgtService authMgtService; + + @GetMapping("/affairMgt") + public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); + mav.addObject("page", "main"); + mav.addObject("searchUrl", "/affair/affairMgt"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + affairBoard.setQueryInfo(); + mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard)); + affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard)); + affairBoard.setPaginationInfo(); + mav.addObject("searchParams", affairBoard); + return mav; + } + + @GetMapping("/stayPage") + public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); + mav.addObject("page", "stay"); + mav.addObject("searchUrl", "/affair/stayPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + affairBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + affairBoard.setUserType("normalStayList"); + }else{ + affairBoard.setUserType("managerStayList"); + } + }else{ + mav.addObject("userNm", loginUser.getUserNm()); + switch (apprvAuth){ + case "APC004": // 계장대행 + case "APC003": // 계장 // 결재대기 문서 조회 + affairBoard.setAffairStatus("DST002"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 계장승인 문서 조회 + affairBoard.setAffairStatus("DST004"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + affairBoard.setQueryInfo(); + mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard)); + affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard)); + affairBoard.setPaginationInfo(); + mav.addObject("searchParams", affairBoard); + return mav; + } + + @GetMapping("/commitPage") + public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); + mav.addObject("page", "commit"); + mav.addObject("searchUrl", "/affair/commitPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + affairBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + affairBoard.setUserType("normalCommitList"); + }else{ + affairBoard.setUserType("managerCommitList"); + } + }else{ + switch (apprvAuth) { + case "APC004": // 계장대행 + case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 + affairBoard.setUserType("sectionCommitList"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 부장반려, 부장승인 문서 조회 + affairBoard.setUserType("headCommitList"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + affairBoard.setQueryInfo(); + mav.addObject("affairList", affairService.selectAffairBoardList(affairBoard)); + affairBoard.setContentCnt(affairService.selectAffairBoardListCnt(affairBoard)); + affairBoard.setPaginationInfo(); + mav.addObject("searchParams", affairBoard); + return mav; + } + + @GetMapping("/affairEditModal") + public ModelAndView affairEditModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairEditModal"); + if(affairBoard.getAffairKey()!=null){ + affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); + }else{ + affairBoard.setWrtOrgan(loginUser.getOgCd()); + affairBoard.setWrtPart(loginUser.getOfcCd()); + affairBoard.setWrtUserSeq(loginUser.getUserSeq()); + affairBoard.setWrtUserNm(loginUser.getUserNm()); + affairBoard.setWrtDt(LocalDateTime.now()); + } + mav.addObject("affair", affairBoard); + return mav; + } + + @GetMapping("/affairViewModal") + public ModelAndView affairViewModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairViewModal"); + affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); + 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()); + return mav; + } + + @PostMapping("/saveAffair") + public Integer saveAffair(AffairBoard affairBoard, + MultipartHttpServletRequest request, + @RequestParam(value = "fileSeq", required = false) List deleteFileSeq){ + affairBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); + return affairService.saveAffairBoard(affairBoard, deleteFileSeq); + } + + /*@PostMapping("/affairStateChange") + public Integer affairStateChange(@AuthenticationPrincipal UserInfo loginUser, AffairApprv apprv){ + apprv.setUserSeq(loginUser.getUserSeq()); + apprv.setUserNm(loginUser.getUserNm()); + apprv.setSaveDt(LocalDateTime.now()); + return affairService.affairStateChange(apprv); + }*/ +} 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 11f5216e..221660a8 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 @@ -48,12 +48,12 @@ public class AffairBoard extends BaseModel { @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 String userType; @Transient private List fileList; @Transient 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 0df540b1..88fb9f80 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 @@ -5,8 +5,10 @@ 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.model.AffairRating; import com.dbnt.faisp.fpiMgt.affair.repository.*; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanFile; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,7 +31,7 @@ public class AffairService extends BaseService { // 견문보고 public List selectAffairBoardList(AffairBoard affair){ return affairMapper.selectAffairBoardList(affair); } - public Integer selectAffairBoardCnt(AffairBoard affair){ + public Integer selectAffairBoardListCnt(AffairBoard affair){ return affairMapper.selectAffairBoardCnt(affair); } @@ -67,7 +69,7 @@ public class AffairService extends BaseService { // 견문보고 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; + String path = locationPath+File.separator+"affair"+File.separator; saveFile(file, new File(path+File.separator+saveName)); String originalFilename = file.getOriginalFilename(); diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/PlanController.java similarity index 79% rename from src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/PlanController.java index a640c73f..559e9806 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/PlanController.java @@ -1,10 +1,9 @@ -package com.dbnt.faisp.fpiMgt; +package com.dbnt.faisp.fpiMgt.affairPlan; 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.PlanService; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.service.PlanService; import com.dbnt.faisp.userInfo.model.UserInfo; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -19,20 +18,18 @@ import java.util.Map; @RestController @RequiredArgsConstructor -@RequestMapping("/fpiMgt") -public class FpiMgtController { // 첩보수집활동 +@RequestMapping("/affairPlan") +public class PlanController { // 첩보수집활동 > 외사경찰 견문관리 > 계획수립 private final PlanService planService; - private final AffairService affairService; private final AuthMgtService authMgtService; - @GetMapping("/monthPlanPage") + @GetMapping("/planMgt") public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ - ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/monthPlan"); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/fpiMgt/monthPlanPage"); + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); + mav.addObject("page", "main"); + mav.addObject("searchUrl", "/affairPlan/planMgt"); //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(params).get(0).getAccessAuth(); + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); switch (accessAuth){ case "ACC001": // 조회 case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 @@ -44,7 +41,104 @@ public class FpiMgtController { // 첩보수집활동 break; } //결재권한 확인 - String apprvAuth = authMgtService.selectApprovalConfigList(params).get(0).getApprovalAuth(); + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + planBoard.setQueryInfo(); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); + planBoard.setPaginationInfo(); + mav.addObject("searchParams", planBoard); + return mav; + } + + @GetMapping("/stayPage") + public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); + mav.addObject("page", "stay"); + mav.addObject("searchUrl", "/affairPlan/stayPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + planBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + planBoard.setWrtUserSeq(loginUser.getUserSeq()); + planBoard.setUserType("normalStayList"); + }else{ + planBoard.setUserType("managerStayList"); + } + }else{ + mav.addObject("userNm", loginUser.getUserNm()); + switch (apprvAuth){ + case "APC004": // 계장대행 + case "APC003": // 계장 // 결재대기 문서 조회 + planBoard.setPlanState("DST002"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 계장승인 문서 조회 + planBoard.setPlanState("DST004"); + break; + } + } + mav.addObject("accessAuth", accessAuth); + mav.addObject("apprvAuth", apprvAuth); + planBoard.setQueryInfo(); + mav.addObject("planList", planService.selectPlanBoardList(planBoard)); + planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); + planBoard.setPaginationInfo(); + mav.addObject("searchParams", planBoard); + return mav; + } + + @GetMapping("/commitPage") + public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ + ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); + mav.addObject("page", "commit"); + mav.addObject("searchUrl", "/affairPlan/commitPage"); + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); + switch (accessAuth){ + case "ACC001": // 조회 + case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 + planBoard.setWrtOrgan(loginUser.getOgCd()); + break; + case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 + planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + break; + } + //결재권한 확인 + String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); + if(apprvAuth==null) { + if(!accessAuth.equals("ACC003")){ + planBoard.setWrtUserSeq(loginUser.getUserSeq()); + planBoard.setUserType("normalCommitList"); + }else{ + planBoard.setUserType("managerCommitList"); + } + }else{ + switch (apprvAuth) { + case "APC004": // 계장대행 + case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 + planBoard.setUserType("sectionCommitList"); + break; + case "APC002": // 부장대행 + case "APC001": // 부장 // 부장반려, 부장승인 문서 조회 + planBoard.setUserType("headCommitList"); + break; + } + } mav.addObject("accessAuth", accessAuth); mav.addObject("apprvAuth", apprvAuth); planBoard.setQueryInfo(); @@ -77,12 +171,9 @@ public class FpiMgtController { // 첩보수집활동 planBoard = planService.selectPlanBoard(planBoard.getPlanKey()); mav.addObject("plan", planBoard); mav.addObject("userSeq",loginUser.getUserSeq()); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/fpiMgt/monthPlanPage"); //메뉴권한 확인 - mav.addObject("accessAuth", authMgtService.selectAccessConfigList(params).get(0).getAccessAuth()); - mav.addObject("approvalAuth", authMgtService.selectApprovalConfigList(params).get(0).getApprovalAuth()); + mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth()); + mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth()); return mav; } @@ -96,55 +187,6 @@ public class FpiMgtController { // 첩보수집활동 return planService.savePlanBoard(planBoard, planInfos, detailPlanInfos, deleteFileSeq); } - @GetMapping("/apprvStayPage") - public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ - ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/stayPlan"); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/fpiMgt/monthPlanPage"); - //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(params).get(0).getAccessAuth(); - switch (accessAuth){ - case "ACC001": // 조회 - case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 - planBoard.setWrtOrgan(loginUser.getOgCd()); - break; - case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 - planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); - mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); - break; - } - //결재권한 확인 - String apprvAuth = authMgtService.selectApprovalConfigList(params).get(0).getApprovalAuth(); - if(apprvAuth==null) { - if(!accessAuth.equals("ACC003")){ - planBoard.setWrtUserSeq(loginUser.getUserSeq()); - planBoard.setUserType("normalStayList"); - }else{ - planBoard.setUserType("managerStayList"); - } - }else{ - mav.addObject("userNm", loginUser.getUserNm()); - switch (apprvAuth){ - case "APC004": // 계장대행 - case "APC003": // 계장 // 결재대기 문서 조회 - planBoard.setPlanState("DST002"); - break; - case "APC002": // 부장대행 - case "APC001": // 부장 // 계장승인 문서 조회 - planBoard.setPlanState("DST004"); - break; - } - } - mav.addObject("accessAuth", accessAuth); - mav.addObject("apprvAuth", apprvAuth); - planBoard.setQueryInfo(); - mav.addObject("planList", planService.selectPlanBoardList(planBoard)); - planBoard.setContentCnt(planService.selectPlanBoardListCnt(planBoard)); - planBoard.setPaginationInfo(); - mav.addObject("searchParams", planBoard); - return mav; - } @PostMapping("/planStateChange") public Integer planStateChange(@AuthenticationPrincipal UserInfo loginUser, PlanApprv apprv){ @@ -153,53 +195,4 @@ public class FpiMgtController { // 첩보수집활동 apprv.setSaveDt(LocalDateTime.now()); return planService.planStateChange(apprv); } - - @GetMapping("/apprvCommitPage") - public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ - ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/commitPlan"); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/fpiMgt/monthPlanPage"); - //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(params).get(0).getAccessAuth(); - switch (accessAuth){ - case "ACC001": // 조회 - case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 - planBoard.setWrtOrgan(loginUser.getOgCd()); - break; - case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 - planBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); - mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); - break; - } - //결재권한 확인 - String apprvAuth = authMgtService.selectApprovalConfigList(params).get(0).getApprovalAuth(); - if(apprvAuth==null) { - if(!accessAuth.equals("ACC003")){ - planBoard.setWrtUserSeq(loginUser.getUserSeq()); - planBoard.setUserType("normalCommitList"); - }else{ - planBoard.setUserType("managerCommitList"); - } - }else{ - switch (apprvAuth) { - case "APC004": // 계장대행 - case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 - planBoard.setUserType("sectionCommitList"); - break; - case "APC002": // 부장대행 - case "APC001": // 부장 // 부장반려, 부장승인 문서 조회 - planBoard.setUserType("headCommitList"); - break; - } - } - mav.addObject("accessAuth", accessAuth); - mav.addObject("apprvAuth", apprvAuth); - planBoard.setQueryInfo(); - 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/monthPlan/mapper/PlanMapper.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/mapper/PlanMapper.java similarity index 68% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/PlanMapper.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/mapper/PlanMapper.java index f92efa29..9e0e414e 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/mapper/PlanMapper.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/mapper/PlanMapper.java @@ -1,6 +1,6 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.mapper; +package com.dbnt.faisp.fpiMgt.affairPlan.mapper; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; import org.apache.ibatis.annotations.Mapper; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanApprv.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanApprv.java similarity index 95% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanApprv.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanApprv.java index 9c7be594..88885a50 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanApprv.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanApprv.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.model; +package com.dbnt.faisp.fpiMgt.affairPlan.model; import lombok.*; import org.hibernate.annotations.DynamicInsert; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanBoard.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanBoard.java similarity index 97% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanBoard.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanBoard.java index 5bcd7de2..084c4612 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanBoard.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanBoard.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.model; +package com.dbnt.faisp.fpiMgt.affairPlan.model; import com.dbnt.faisp.config.BaseModel; import lombok.Getter; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanFile.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanFile.java similarity index 95% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanFile.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanFile.java index 6e0bc846..7d83834b 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanFile.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanFile.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.model; +package com.dbnt.faisp.fpiMgt.affairPlan.model; import com.dbnt.faisp.config.FileInfo; import lombok.*; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanMainInfo.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanMainInfo.java similarity index 94% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanMainInfo.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanMainInfo.java index 9467dda5..c003ebd9 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/model/PlanMainInfo.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/model/PlanMainInfo.java @@ -1,4 +1,4 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.model; +package com.dbnt.faisp.fpiMgt.affairPlan.model; import lombok.*; import org.hibernate.annotations.DynamicInsert; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanApprvRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanApprvRepository.java similarity index 75% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanApprvRepository.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanApprvRepository.java index 20f31bf8..ec760b8b 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanApprvRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanApprvRepository.java @@ -1,6 +1,6 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.repository; +package com.dbnt.faisp.fpiMgt.affairPlan.repository; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanApprv; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanBoardRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanBoardRepository.java similarity index 57% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanBoardRepository.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanBoardRepository.java index 145de070..7ea91124 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanBoardRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanBoardRepository.java @@ -1,6 +1,6 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.repository; +package com.dbnt.faisp.fpiMgt.affairPlan.repository; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanFileRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanFileRepository.java similarity index 75% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanFileRepository.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanFileRepository.java index 58bea35d..039fdf8f 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanFileRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanFileRepository.java @@ -1,6 +1,6 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.repository; +package com.dbnt.faisp.fpiMgt.affairPlan.repository; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanFile; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanFile; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanMainInfoRepository.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanMainInfoRepository.java similarity index 69% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanMainInfoRepository.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanMainInfoRepository.java index 7aeb5f5b..b3683e96 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/repository/PlanMainInfoRepository.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/repository/PlanMainInfoRepository.java @@ -1,6 +1,6 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.repository; +package com.dbnt.faisp.fpiMgt.affairPlan.repository; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanMainInfo; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanMainInfo; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; diff --git a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/PlanService.java b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/service/PlanService.java similarity index 87% rename from src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/PlanService.java rename to src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/service/PlanService.java index db09b80c..2a07ccab 100644 --- a/src/main/java/com/dbnt/faisp/fpiMgt/monthPlan/service/PlanService.java +++ b/src/main/java/com/dbnt/faisp/fpiMgt/affairPlan/service/PlanService.java @@ -1,17 +1,17 @@ -package com.dbnt.faisp.fpiMgt.monthPlan.service; +package com.dbnt.faisp.fpiMgt.affairPlan.service; import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.FileInfo; -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; -import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanMainInfo; -import com.dbnt.faisp.fpiMgt.monthPlan.repository.PlanApprvRepository; -import com.dbnt.faisp.fpiMgt.monthPlan.repository.PlanBoardRepository; -import com.dbnt.faisp.fpiMgt.monthPlan.repository.PlanFileRepository; -import com.dbnt.faisp.fpiMgt.monthPlan.repository.PlanMainInfoRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.mapper.PlanMapper; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanFile; +import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanMainInfo; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanApprvRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanBoardRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanFileRepository; +import com.dbnt.faisp.fpiMgt.affairPlan.repository.PlanMainInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/dbnt/faisp/translator/TranslatorController.java b/src/main/java/com/dbnt/faisp/translator/TranslatorController.java index e1daef67..d7d7201b 100644 --- a/src/main/java/com/dbnt/faisp/translator/TranslatorController.java +++ b/src/main/java/com/dbnt/faisp/translator/TranslatorController.java @@ -36,9 +36,6 @@ public class TranslatorController { @GetMapping("/info") public ModelAndView translatorInfo(@AuthenticationPrincipal UserInfo loginUser,Translator translator,HttpServletResponse response) { ModelAndView mav = new ModelAndView("translator/translator"); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/translator/info"); translator.setDownOrganCdList(loginUser.getDownOrganCdList()); //엑셀다운 if(translator.getExcel() != null && translator.getExcel().equals("Y")){ @@ -57,7 +54,7 @@ public class TranslatorController { return null; } //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(params).get(0).getAccessAuth(); + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("accessAuth", accessAuth); @@ -79,11 +76,8 @@ public class TranslatorController { @GetMapping("/translatorEditModal") public ModelAndView translatorEditModal(@AuthenticationPrincipal UserInfo loginUser,Translator translator){ ModelAndView mav = new ModelAndView("translator/translatorEditModal"); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/translator/info"); //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(params).get(0).getAccessAuth(); + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); mav.addObject("trInfo", translatorSevice.selectTranslatorView(translator)); mav.addObject("accessAuth", accessAuth); return mav; @@ -113,11 +107,8 @@ public class TranslatorController { @GetMapping("/careerView") public ModelAndView careerView(@AuthenticationPrincipal UserInfo loginUser,TranslatorCrr translatorCrr){ ModelAndView mav = new ModelAndView("translator/translatorCareerModal"); - Map params = new HashMap<>(); - params.put("userSeq", loginUser.getUserSeq()); - params.put("menuUrl", "/translator/info"); //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(params).get(0).getAccessAuth(); + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth(); mav.addObject("policeCrr", translatorSevice.selectMaritimePoliceCareer(translatorCrr)); mav.addObject("anotherCrr", translatorSevice.selectAnotherOrganizationCareer(translatorCrr)); mav.addObject("trKey", translatorCrr.getTranslatorKey()); diff --git a/src/main/resources/mybatisMapper/AffairMapper.xml b/src/main/resources/mybatisMapper/AffairMapper.xml index a58316f9..9ae6bb60 100644 --- a/src/main/resources/mybatisMapper/AffairMapper.xml +++ b/src/main/resources/mybatisMapper/AffairMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + and a.wrt_user_seq = #{wrtUserSeq} @@ -15,11 +15,11 @@ and a.wrt_organ = #{wrtOrgan} - - and a.content_title like '%'||#{contentTitle}||'%' + + and a.title like '%'||#{title}||'%' - - and a.affair_state = #{affairState} + + and a.affair_status = #{affairStatus} @@ -40,7 +40,7 @@ - select count(*) from affair_board a - + \ No newline at end of file diff --git a/src/main/resources/mybatisMapper/PlanMapper.xml b/src/main/resources/mybatisMapper/PlanMapper.xml index 035bcf30..e71eced7 100644 --- a/src/main/resources/mybatisMapper/PlanMapper.xml +++ b/src/main/resources/mybatisMapper/PlanMapper.xml @@ -3,7 +3,7 @@ - + diff --git a/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js new file mode 100644 index 00000000..244a5987 --- /dev/null +++ b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js @@ -0,0 +1,125 @@ +let files = []; + +$(function(){ + $("#dateSelectorDiv").datepicker({ + format: "yyyy-mm-dd", + language: "ko" + }); +}) +$(document).on('click', '#affairTab', function (){ + location.href = "/affair/affairMgt"; +}) +$(document).on('click', '#stayTab', function (){ + location.href = "/affair/stayPage"; +}) +$(document).on('click', '#commitTab', function (){ + location.href = "/affair/commitPage"; +}) +$(document).on('click', '.affairTr', function (){ + $(".trChkBox").prop("checked", false); + $(this).find(".trChkBox").prop("checked", true); + getAffairViewModal(Number($(this).find(".affairKey").val())); +}) +$(document).on('click', '#addAffairBtn', function (){ + getAffairEditModal(null) +}) +$(document).on('click', '#editAffairBtn', function (){ + $("#affairViewModal").modal('hide'); + getAffairEditModal(Number($("#affairViewBody").find("[name='affairKey']").val())); +}) + +$(document).on('click', '#saveAffairBtn', function (){ + saveAffair('DST002') +}) +$(document).on('click', '#saveTempBtn', function (){ + saveAffair('DST001') +}) + +function getAffairViewModal(affairKey){ + $.ajax({ + url: '/affair/affairViewModal', + data: {affairKey: affairKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#affairViewBody").empty().append(html) + $("#affairViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getAffairEditModal(affairKey){ + $.ajax({ + url: '/affair/affairEditModal', + data: {affairKey: affairKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#affairEditModalContent").empty().append(html) + $("#affairEditModal").modal('show'); + $("#content").summernote({ + lang:'ko-KR', + height: 120, + disableDragAndDrop: true, + toolbar: [ + ['style', ['style']], + ['font', ['bold', 'underline', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']] + ] + }); + setUploadDiv(); + }, + error:function(){ + + } + }); +} +function saveAffair(affairStatus){ + if(contentCheck()){ + if(confirm("저장하시겠습니까?")){ + $("#affairStatus").val(affairStatus); + contentFade("in"); + const formData = new FormData($("#affairEditForm")[0]); + 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 : "/affair/saveAffair", + processData: false, + contentType: false, + success : function(result) { + alert("저장되었습니다."); + contentFade("out"); + $("#affairEditModal").modal('hide'); + getAffairViewModal(result); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다.") + contentFade("out"); + } + }) + } + } +} + + +function contentCheck(){ + let flag = true; + if(!$("#title").val()){ + alert("제목을 입력해주세요.") + flag = false; + } + flag = fileCheck(flag, files); + return flag; +} \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/affairPlan.js b/src/main/resources/static/js/igActivities/fpiMgt/affairPlan.js deleted file mode 100644 index f0bf24e4..00000000 --- a/src/main/resources/static/js/igActivities/fpiMgt/affairPlan.js +++ /dev/null @@ -1,26 +0,0 @@ -$(document).on('click', '#monthPlanTab', function (){ - location.href = "/fpiMgt/monthPlanPage"; -}) -$(document).on('click', '#apprvStayTab', function (){ - location.href = "/fpiMgt/apprvStayPage"; -}) -$(document).on('click', '#apprvCommitTab', function (){ - location.href = "/fpiMgt/apprvCommitPage"; -}) - - -function getViewModal(planKey){ - $.ajax({ - url: '/fpiMgt/planViewModal', - data: {planKey: planKey}, - type: 'GET', - dataType:"html", - success: function(html){ - $("#planViewBody").empty().append(html) - $("#planViewModal").modal('show'); - }, - error:function(){ - - } - }); -} diff --git a/src/main/resources/static/js/igActivities/fpiMgt/commitPlan.js b/src/main/resources/static/js/igActivities/fpiMgt/commitPlan.js deleted file mode 100644 index 88f3a617..00000000 --- a/src/main/resources/static/js/igActivities/fpiMgt/commitPlan.js +++ /dev/null @@ -1,33 +0,0 @@ - -$(document).on('click', '.planTr', function (){ - $(".trChkBox").prop("checked", false); - $(this).find(".trChkBox").prop("checked", true); - getViewModal(Number($(this).find(".planKey").val())); -}) - -$(document).on('click', '.apprvBtn', function (){ - $("#apprvFormPlanKey").val($("#viewModalPlanKey").val()); - $("#viewModalApprvValue").val($(this).attr("data-planstate")); - if(confirm($(this).val()+"하시겠습니까?")){ - const formData = new FormData($("#apprvForm")[0]); - contentFade("in") - $.ajax({ - type : 'POST', - data : formData, - url : "/fpiMgt/planStateChange", - processData: false, - contentType: false, - beforeSend: function (xhr){ - xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); - }, - success : function(result) { - alert("저장되었습니다") - contentFade("out"); - }, - error : function(xhr, status) { - alert("저장에 실패하였습니다."); - contentFade("out"); - } - }) - } -}) \ No newline at end of file diff --git a/src/main/resources/static/js/igActivities/fpiMgt/monthPlan.js b/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js similarity index 64% rename from src/main/resources/static/js/igActivities/fpiMgt/monthPlan.js rename to src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js index 4a6589cd..3d4b75ed 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/monthPlan.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js @@ -7,17 +7,22 @@ $(function(){ }); }) -$(document).on('click', '.planTr', function (){ - $(".trChkBox").prop("checked", false); - $(this).find(".trChkBox").prop("checked", true); - getViewModal(Number($(this).find(".planKey").val())); +$(document).on('click', '#planTab', function (){ + location.href = "/affairPlan/planMgt"; }) +$(document).on('click', '#stayTab', function (){ + location.href = "/affairPlan/stayPage"; +}) +$(document).on('click', '#commitTab', function (){ + location.href = "/affairPlan/commitPage"; +}) + $(document).on('click', '#addPlanBtn', function (){ - getEditModal(null) + getPlanEditModal(null) }) $(document).on('click', '#editPlanBtn', function (){ $("#planViewModal").modal('hide'); - getEditModal(Number($("#planViewBody").find("[name='planKey']").val())); + getPlanEditModal(Number($("#planViewBody").find("[name='planKey']").val())); }) $(document).on('click', '#planAddBtn', function (){ @@ -45,13 +50,63 @@ $(document).on('click', '#detailPlanAddBtn', function (){ $(document).on('click', '#savePlanBtn', function (){ savePlan('DST002') }) + $(document).on('click', '#saveTempBtn', function (){ savePlan('DST001') }) -function getEditModal(planKey){ +$(document).on('click', '.planTr', function (){ + $(".trChkBox").prop("checked", false); + $(this).find(".trChkBox").prop("checked", true); + getPlanViewModal(Number($(this).find(".planKey").val())); +}) + +$(document).on('click', '.apprvBtn', function (){ + $("#apprvFormPlanKey").val($("#viewModalPlanKey").val()); + $("#viewModalApprvValue").val($(this).attr("data-planstate")); + if(confirm($(this).val()+"하시겠습니까?")){ + const formData = new FormData($("#apprvForm")[0]); + contentFade("in") + $.ajax({ + type : 'POST', + data : formData, + url : "/affairPlan/planStateChange", + processData: false, + contentType: false, + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(result) { + alert("저장되었습니다") + contentFade("out"); + }, + error : function(xhr, status) { + alert("저장에 실패하였습니다."); + contentFade("out"); + } + }) + } +}) + +function getPlanViewModal(planKey){ $.ajax({ - url: '/fpiMgt/planEditModal', + url: '/affairPlan/planViewModal', + data: {planKey: planKey}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#planViewBody").empty().append(html) + $("#planViewModal").modal('show'); + }, + error:function(){ + + } + }); +} + +function getPlanEditModal(planKey){ + $.ajax({ + url: '/affairPlan/planEditModal', data: {planKey: planKey}, type: 'GET', dataType:"html", @@ -97,14 +152,14 @@ function savePlan(planState){ $.ajax({ type : 'POST', data : formData, - url : "/fpiMgt/savePlan", + url : "/affairPlan/savePlan", processData: false, contentType: false, success : function(result) { alert("저장되었습니다."); contentFade("out"); $("#planEditModal").modal('hide'); - getViewModal(result); + getPlanViewModal(result); }, error : function(xhr, status) { alert("저장에 실패하였습니다.") diff --git a/src/main/resources/static/js/igActivities/fpiMgt/stayPlan.js b/src/main/resources/static/js/igActivities/fpiMgt/stayPlan.js deleted file mode 100644 index 88f3a617..00000000 --- a/src/main/resources/static/js/igActivities/fpiMgt/stayPlan.js +++ /dev/null @@ -1,33 +0,0 @@ - -$(document).on('click', '.planTr', function (){ - $(".trChkBox").prop("checked", false); - $(this).find(".trChkBox").prop("checked", true); - getViewModal(Number($(this).find(".planKey").val())); -}) - -$(document).on('click', '.apprvBtn', function (){ - $("#apprvFormPlanKey").val($("#viewModalPlanKey").val()); - $("#viewModalApprvValue").val($(this).attr("data-planstate")); - if(confirm($(this).val()+"하시겠습니까?")){ - const formData = new FormData($("#apprvForm")[0]); - contentFade("in") - $.ajax({ - type : 'POST', - data : formData, - url : "/fpiMgt/planStateChange", - processData: false, - contentType: false, - beforeSend: function (xhr){ - xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); - }, - success : function(result) { - alert("저장되었습니다") - contentFade("out"); - }, - error : function(xhr, status) { - alert("저장에 실패하였습니다."); - contentFade("out"); - } - }) - } -}) \ No newline at end of file diff --git a/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html b/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html new file mode 100644 index 00000000..f22b16d9 --- /dev/null +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/affairEditModal.html @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/igActivities/fpiMgt/affairPlan/commitPlan.html b/src/main/resources/templates/igActivities/fpiMgt/affair/affairMgt.html similarity index 68% rename from src/main/resources/templates/igActivities/fpiMgt/affairPlan/commitPlan.html rename to src/main/resources/templates/igActivities/fpiMgt/affair/affairMgt.html index 4c1d2c16..23d54559 100644 --- a/src/main/resources/templates/igActivities/fpiMgt/affairPlan/commitPlan.html +++ b/src/main/resources/templates/igActivities/fpiMgt/affair/affairMgt.html @@ -3,13 +3,12 @@ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/layout}"> - - +
-

첩보수집활동 > 외사경찰 견문관리 > 계획수립

-

계획수립

+

첩보수집활동 > 외사경찰 견문관리 > 견문관리

+

견문관리

@@ -17,17 +16,17 @@
-
-
+
+
@@ -50,26 +49,21 @@
- +
- - +
-
@@ -89,7 +83,6 @@ 제목 - 시행일자 관서 부서 작성자 @@ -99,26 +92,25 @@ - - + + - - + - + - + - - - - 임시저장 - 결재대기 - 계장반려 - 계장결재 - 부장반려 - 부장결재 + + + + 임시저장 + 결재대기 + 계장반려 + 계장결재 + 부장반려 + 부장결재 @@ -151,7 +143,7 @@
- +
@@ -164,9 +156,16 @@
-