FAISP/src/main/java/com/dbnt/faisp/fpiMgt/FpiMgtController.java

204 lines
8.9 KiB
Java
Raw Normal View History

package com.dbnt.faisp.fpiMgt;
2022-09-05 09:02:09 +00:00
import com.dbnt.faisp.authMgt.service.AuthMgtService;
import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanApprv;
import com.dbnt.faisp.fpiMgt.monthPlan.service.MonthPlanService;
import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanBoard;
2022-09-05 09:02:09 +00:00
import com.dbnt.faisp.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
2022-09-06 09:10:03 +00:00
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartHttpServletRequest;
2022-09-05 09:02:09 +00:00
import org.springframework.web.servlet.ModelAndView;
2022-09-06 09:10:03 +00:00
import java.time.LocalDateTime;
import java.util.HashMap;
2022-09-06 09:10:03 +00:00
import java.util.List;
import java.util.Map;
2022-09-06 09:10:03 +00:00
2022-09-05 09:02:09 +00:00
@RestController
@RequiredArgsConstructor
@RequestMapping("/fpiMgt")
public class FpiMgtController { // 외사경찰견문관리
private final MonthPlanService monthPlanService;
private final AuthMgtService authMgtService;
2022-09-05 09:02:09 +00:00
@GetMapping("/monthPlanPage")
public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/monthPlan");
Map<String, Object> 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.setWrtUserSeq(loginUser.getUserSeq());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
2022-09-20 05:09:20 +00:00
planBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(params).get(0).getApprovalAuth();
mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth);
planBoard.setQueryInfo();
mav.addObject("planList", monthPlanService.selectPlanBoardList(planBoard));
planBoard.setContentCnt(monthPlanService.selectPlanBoardListCnt(planBoard));
planBoard.setPaginationInfo();
mav.addObject("searchParams", planBoard);
2022-09-05 09:02:09 +00:00
return mav;
}
2022-09-06 09:10:03 +00:00
@GetMapping("/planEditModal")
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());
2022-09-06 09:10:03 +00:00
}else{
planBoard.setWrtOrgan(loginUser.getOgCd());
planBoard.setWrtPart(loginUser.getOfcCd());
planBoard.setWrtUserSeq(loginUser.getUserSeq());
planBoard.setWrtUserNm(loginUser.getUserNm());
planBoard.setWrtDt(LocalDateTime.now());
2022-09-06 09:10:03 +00:00
}
mav.addObject("plan", planBoard);
2022-09-06 09:10:03 +00:00
return mav;
}
@GetMapping("/planViewModal")
public ModelAndView planViewModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planViewModal");
planBoard = monthPlanService.selectPlanBoard(planBoard.getPlanKey());
mav.addObject("plan", planBoard);
mav.addObject("userSeq",loginUser.getUserSeq());
Map<String, Object> 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());
return mav;
}
2022-09-06 09:10:03 +00:00
@PostMapping("/savePlan")
public Integer savePlan(PlanBoard planBoard,
2022-09-06 09:10:03 +00:00
@RequestParam(value = "planInfos", required = false) List<String> planInfos,
@RequestParam(value = "detailPlanInfos", required = false)List<String> detailPlanInfos,
MultipartHttpServletRequest request,
@RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){
planBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
return monthPlanService.savePlanBoard(planBoard, planInfos, detailPlanInfos, deleteFileSeq);
2022-09-06 09:10:03 +00:00
}
@GetMapping("/apprvStayPage")
public ModelAndView apprvStayPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/stayPlan");
Map<String, Object> 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": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
2022-09-20 05:09:20 +00:00
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", monthPlanService.selectPlanBoardList(planBoard));
planBoard.setContentCnt(monthPlanService.selectPlanBoardListCnt(planBoard));
planBoard.setPaginationInfo();
mav.addObject("searchParams", planBoard);
return mav;
}
@PostMapping("/planStateChange")
public Integer planStateChange(@AuthenticationPrincipal UserInfo loginUser, PlanApprv apprv){
apprv.setUserSeq(loginUser.getUserSeq());
apprv.setUserNm(loginUser.getUserNm());
apprv.setSaveDt(LocalDateTime.now());
return monthPlanService.planStateChange(apprv);
}
@GetMapping("/apprvCommitPage")
public ModelAndView apprvCommitPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/commitPlan");
Map<String, Object> 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": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
2022-09-20 05:09:20 +00:00
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", monthPlanService.selectPlanBoardList(planBoard));
planBoard.setContentCnt(monthPlanService.selectPlanBoardListCnt(planBoard));
planBoard.setPaginationInfo();
mav.addObject("searchParams", planBoard);
return mav;
}
2022-09-05 09:02:09 +00:00
}