FAISP/src/main/java/com/dbnt/faisp/fpiMgt/affairResult/ResultController.java

237 lines
11 KiB
Java

package com.dbnt.faisp.fpiMgt.affairResult;
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.service.AffairService;
import com.dbnt.faisp.fpiMgt.affairResult.model.ResultApprv;
import com.dbnt.faisp.fpiMgt.affairResult.model.ResultBoard;
import com.dbnt.faisp.fpiMgt.affairResult.model.ClearInfo;
import com.dbnt.faisp.fpiMgt.affairResult.model.ResultInfo;
import com.dbnt.faisp.fpiMgt.affairResult.service.ResultService;
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.List;
@RestController
@RequiredArgsConstructor
@RequestMapping("/affairResult")
public class ResultController { // 첩보수집활동 > 외사경찰 견문관리 > 계획수립
private final ResultService resultService;
private final AffairService affairService;
private final AuthMgtService authMgtService;
private final CodeMgtService codeMgtService;
@GetMapping("/resultMgt")
public ModelAndView resultMgtPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){
ModelAndView mav = null;
if(resultBoard.getDashboardFlag()){
mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgtDashboard");
resultBoard.setRowCnt(5);
}else{
mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgt");
}
mav.addObject("page", "main");
mav.addObject("searchUrl", "/affairResult/resultMgt");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth();
switch (accessAuth){
case "ACC001": // 조회
case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능
resultBoard.setWrtUserSeq(loginUser.getUserSeq());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth();
mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth);
resultBoard.setQueryInfo();
mav.addObject("resultList", resultService.selectResultBoardList(resultBoard));
resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard));
resultBoard.setContentCnt(0);
resultBoard.setPaginationInfo();
mav.addObject("searchParams", resultBoard);
return mav;
}
@GetMapping("/stayPage")
public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgt");
mav.addObject("page", "stay");
mav.addObject("searchUrl", "/affairResult/stayPage");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth();
switch (accessAuth){
case "ACC001": // 조회
case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능
resultBoard.setWrtOrgan(loginUser.getOgCd());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth();
if(apprvAuth==null) {
if(!accessAuth.equals("ACC003")){
resultBoard.setWrtUserSeq(loginUser.getUserSeq());
resultBoard.setUserType("normalStayList");
}else{
resultBoard.setUserType("managerStayList");
}
}else{
mav.addObject("userNm", loginUser.getUserNm());
switch (apprvAuth){
case "APC004": // 계장대행
case "APC003": // 계장 // 결재대기 문서 조회
resultBoard.setResultState("DST002");
break;
case "APC002": // 부장대행
case "APC001": // 부장 // 계장승인 문서 조회
resultBoard.setResultState("DST004");
break;
}
}
mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth);
resultBoard.setQueryInfo();
mav.addObject("resultList", resultService.selectResultBoardList(resultBoard));
resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard));
resultBoard.setPaginationInfo();
mav.addObject("searchParams", resultBoard);
return mav;
}
@GetMapping("/commitPage")
public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultMgt");
mav.addObject("page", "commit");
mav.addObject("searchUrl", "/affairResult/commitPage");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth();
switch (accessAuth){
case "ACC001": // 조회
case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능
resultBoard.setWrtOrgan(loginUser.getOgCd());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth();
if(apprvAuth==null) {
if(!accessAuth.equals("ACC003")){
resultBoard.setWrtUserSeq(loginUser.getUserSeq());
resultBoard.setUserType("normalCommitList");
}else{
resultBoard.setUserType("managerCommitList");
}
}else{
switch (apprvAuth) {
case "APC004": // 계장대행
case "APC003": // 계장 // 계장반려, 계장승인 문서 조회
resultBoard.setUserType("sectionCommitList");
break;
case "APC002": // 부장대행
case "APC001": // 부장 // 부장반려, 부장승인 문서 조회
resultBoard.setUserType("headCommitList");
break;
}
}
mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth);
resultBoard.setQueryInfo();
mav.addObject("resultList", resultService.selectResultBoardList(resultBoard));
resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard));
resultBoard.setPaginationInfo();
mav.addObject("searchParams", resultBoard);
return mav;
}
@GetMapping("/resultEditModal")
public ModelAndView resultEditModal(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultEditModal");
if(resultBoard.getResultKey()!=null){
resultBoard = resultService.selectResultBoard(resultBoard.getResultKey());
}else{
resultBoard.setWrtOrgan(loginUser.getOgCd());
resultBoard.setWrtPart(loginUser.getOfcCd());
resultBoard.setWrtUserSeq(loginUser.getUserSeq());
resultBoard.setWrtUserNm(loginUser.getUserNm());
resultBoard.setWrtDt(LocalDateTime.now());
}
mav.addObject("result", resultBoard);
mav.addObject("categoryList", codeMgtService.selectCodeMgtList("RIC"));
mav.addObject("codeList", codeMgtService.selectCodeMgtList("RID"));
return mav;
}
@GetMapping("/affairListModal")
public ModelAndView affairListModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affair){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/affairListModal");
affair.setWrtUserSeq(loginUser.getUserSeq());
affair.setRatingOrgan(loginUser.getOgCd());
affair.setFirstIndex(0);
affair.setRowCnt(9999);
mav.addObject("affairList", affairService.selectAffairBoardList(affair));
return mav;
}
@GetMapping("/resultViewModal")
public ModelAndView resultViewModal(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultViewModal");
resultBoard = resultService.selectResultBoard(resultBoard.getResultKey());
mav.addObject("result", resultBoard);
mav.addObject("userSeq",loginUser.getUserSeq());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth());
return mav;
}
@PostMapping("/saveResult")
public Integer saveResult(ResultBoard resultBoard,
MultipartHttpServletRequest request,
@RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){
resultBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
return resultService.saveResultBoard(resultBoard, deleteFileSeq);
}
@PostMapping("/resultStateChange")
public Integer resultStateChange(@AuthenticationPrincipal UserInfo loginUser, ResultApprv apprv){
apprv.setUserSeq(loginUser.getUserSeq());
apprv.setUserNm(loginUser.getUserNm());
apprv.setSaveDt(LocalDateTime.now());
return resultService.resultStateChange(apprv);
}
@GetMapping("/getClearInfoRow")
public ModelAndView getClearInfoRow(ClearInfo info){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/clearInfoRow");
mav.addObject("info", info);
mav.addObject("categoryList", codeMgtService.selectCodeMgtList("RIC"));
mav.addObject("codeList", codeMgtService.selectCodeMgtList("RID"));
return mav;
}
@GetMapping("/getResultInfoRow")
public ModelAndView getResultInfoRow(ResultInfo info){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/resultInfoRow");
mav.addObject("info", info);
return mav;
}
}