외사경찰견문관리 결제 동작 수정

외사경찰견문관리 > 계획수립, 청산보고서 페이지 관리자 전용 탭 추가.
대시보드 결재대기함 쿼리 수정.
master
강석 최 2023-05-16 18:27:55 +09:00
parent f86d519354
commit 6d52907a87
14 changed files with 246 additions and 315 deletions

View File

@ -6,4 +6,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
public interface ApprovalConfigRepository extends JpaRepository<ApprovalConfig, ApprovalConfig.ApprovalConfigId> { public interface ApprovalConfigRepository extends JpaRepository<ApprovalConfig, ApprovalConfig.ApprovalConfigId> {
void deleteByMenuKey(Integer menuKey);
} }

View File

@ -32,6 +32,9 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser, public ModelAndView affairMgtPage(@AuthenticationPrincipal UserInfo loginUser,
@PathVariable("tab") String tab, AffairBoard affairBoard){ @PathVariable("tab") String tab, AffairBoard affairBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt"); ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairMgt");
if(Utils.isEmpty(affairBoard.getAffairCategory())){
return new ModelAndView("redirect:/");
}
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList String accessAuth = authMgtService.selectAccessConfigList
(loginUser.getUserSeq(), "/affair/affairMgt/myReport?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth(); (loginUser.getUserSeq(), "/affair/affairMgt/myReport?affairCategory="+affairBoard.getAffairCategory()).get(0).getAccessAuth();
@ -53,6 +56,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
switch (apprvAuth) { switch (apprvAuth) {
case "APC004APC001": // 계장대행+부장 case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행 case "APC003APC002": // 계장+부장대행
case "APC004APC002": // 계장대행+부장대행
affairBoard.setQueryType("normalStayList"); affairBoard.setQueryType("normalStayList");
break; break;
case "APC004": // 계장대행 case "APC004": // 계장대행
@ -102,6 +106,8 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
if(accessAuth.equals("ACC003")){ if(accessAuth.equals("ACC003")){
affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); affairBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
}else{
return new ModelAndView("redirect:/affair/affairMgt/myReport?affairCategory="+affairBoard.getAffairCategory());
} }
break; break;
} }

View File

@ -25,46 +25,21 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
private final PlanService planService; private final PlanService planService;
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
@GetMapping("/planMgt") @GetMapping("/planMgt/{tab}")
public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser,
@PathVariable("tab") String tab, PlanBoard planBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt"); ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planMgt");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt/myReport").get(0).getAccessAuth();
switch (accessAuth){ //결재권한 확인
case "ACC001": // 조회 String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt/myReport").get(0).getApprovalAuth();
case "ACC002": // 작성 // 자신이 작성한 문서만 열람가능 switch (tab){
case "myReport":
planBoard.setWrtUserSeq(loginUser.getUserSeq()); planBoard.setWrtUserSeq(loginUser.getUserSeq());
break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능
planBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
break;
}
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth();
mav.addObject("page", "main");
mav.addObject("searchUrl", "/affairPlan/planMgt");
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();
planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtOrgan(loginUser.getOgCd());
//결재권한 확인 break;
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth(); case "stayReport":
planBoard.setWrtOrgan(loginUser.getOgCd());
if(Utils.isEmpty(apprvAuth)) { if(Utils.isEmpty(apprvAuth)) {
planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtOrgan(loginUser.getOgCd());
planBoard.setWrtUserSeq(loginUser.getUserSeq()); planBoard.setWrtUserSeq(loginUser.getUserSeq());
@ -73,6 +48,7 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
switch (apprvAuth){ switch (apprvAuth){
case "APC004APC001": // 계장대행+부장 case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행 case "APC003APC002": // 계장+부장대행
case "APC004APC002": // 계장대행+부장대행
planBoard.setUserType("normalStayList"); planBoard.setUserType("normalStayList");
break; break;
case "APC004": // 계장대행 case "APC004": // 계장대행
@ -85,26 +61,9 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
break; break;
} }
} }
mav.addObject("accessAuth", accessAuth); break;
mav.addObject("apprvAuth", apprvAuth); case "commitReport":
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();
planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtOrgan(loginUser.getOgCd());
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth();
if(Utils.isEmpty(apprvAuth)) { if(Utils.isEmpty(apprvAuth)) {
planBoard.setWrtOrgan(loginUser.getOgCd()); planBoard.setWrtOrgan(loginUser.getOgCd());
planBoard.setWrtUserSeq(loginUser.getUserSeq()); planBoard.setWrtUserSeq(loginUser.getUserSeq());
@ -113,6 +72,7 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
switch (apprvAuth) { switch (apprvAuth) {
case "APC004APC001": // 계장대행+부장 case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행 case "APC003APC002": // 계장+부장대행
case "APC004APC002": // 계장대행+부장대행
planBoard.setUserType("normalCommitList"); planBoard.setUserType("normalCommitList");
break; break;
case "APC004": // 계장대행 case "APC004": // 계장대행
@ -125,6 +85,19 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
break; break;
} }
} }
break;
case "allReport":
if(accessAuth.equals("ACC003")){
planBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
}else{
return new ModelAndView("redirect:/affairPlan/planMgt/myReport");
}
break;
}
mav.addObject("page", tab);
mav.addObject("searchUrl", "/affairPlan/planMgt/"+tab);
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth); mav.addObject("apprvAuth", apprvAuth);
planBoard.setQueryInfo(); planBoard.setQueryInfo();
@ -162,8 +135,8 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
mav.addObject("viewOrgan",loginUser.getOgCd()); mav.addObject("viewOrgan",loginUser.getOgCd());
mav.addObject("lineSeparator", '\n'); mav.addObject("lineSeparator", '\n');
//메뉴권한 확인 //메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getAccessAuth()); mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt/myReport").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth()); mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt/myReport").get(0).getApprovalAuth());
return mav; return mav;
} }

View File

@ -34,71 +34,32 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
private final CodeMgtService codeMgtService; private final CodeMgtService codeMgtService;
@GetMapping("/resultMgt") @GetMapping("/resultMgt/{tab}")
public ModelAndView resultMgtPage(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ public ModelAndView resultMgtPage(@AuthenticationPrincipal UserInfo loginUser,
ModelAndView mav = null; @PathVariable("tab") String tab, ResultBoard resultBoard){
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"); 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(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt/myReport").get(0).getAccessAuth();
switch (accessAuth){ //결재권한 확인
case "ACC001": // 조회 String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt/myReport").get(0).getApprovalAuth();
case "ACC002": // 작성 // 자신의 관서 내에서 작성한 문서만 열람가능 switch (tab){
case "myReport":
resultBoard.setWrtUserSeq(loginUser.getUserSeq());
resultBoard.setWrtOrgan(loginUser.getOgCd()); resultBoard.setWrtOrgan(loginUser.getOgCd());
break; break;
case "ACC003": // 관리 // 자신 외 하위 기관에서 작성한 문서 열람가능 case "stayReport":
resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList()); resultBoard.setWrtOrgan(loginUser.getOgCd());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); if(Utils.isEmpty(apprvAuth)){
break;
}
//결재권한 확인
String apprvAuth = authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth();
if(apprvAuth==null) {
if(!accessAuth.equals("ACC003")){
resultBoard.setWrtUserSeq(loginUser.getUserSeq()); resultBoard.setWrtUserSeq(loginUser.getUserSeq());
resultBoard.setWrtOrgan(loginUser.getOgCd());
resultBoard.setUserType("normalStayList"); resultBoard.setUserType("normalStayList");
}else{ }else{
resultBoard.setUserType("managerStayList");
}
}else{
mav.addObject("userNm", loginUser.getUserNm());
switch (apprvAuth){ switch (apprvAuth){
case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행
case "APC004APC002": // 계장대행+부장대행
resultBoard.setUserType("normalStayList");
break;
case "APC004": // 계장대행 case "APC004": // 계장대행
case "APC003": // 계장 // 결재대기 문서 조회 case "APC003": // 계장 // 결재대기 문서 조회
resultBoard.setResultState("DST002"); resultBoard.setResultState("DST002");
@ -109,44 +70,20 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
break; break;
} }
} }
mav.addObject("accessAuth", accessAuth); break;
mav.addObject("apprvAuth", apprvAuth); case "commitReport":
resultBoard.setQueryInfo(); resultBoard.setWrtOrgan(loginUser.getOgCd());
mav.addObject("resultList", resultService.selectResultBoardList(resultBoard)); if(Utils.isEmpty(apprvAuth)) {
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()); 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.setWrtUserSeq(loginUser.getUserSeq());
resultBoard.setUserType("normalCommitList"); resultBoard.setUserType("normalCommitList");
}else{
resultBoard.setUserType("managerCommitList");
}
}else{ }else{
switch (apprvAuth) { switch (apprvAuth) {
case "APC004APC001": // 계장대행+부장
case "APC003APC002": // 계장+부장대행
case "APC004APC002": // 계장대행+부장대행
resultBoard.setUserType("normalCommitList");
break;
case "APC004": // 계장대행 case "APC004": // 계장대행
case "APC003": // 계장 // 계장반려, 계장승인 문서 조회 case "APC003": // 계장 // 계장반려, 계장승인 문서 조회
resultBoard.setUserType("sectionCommitList"); resultBoard.setUserType("sectionCommitList");
@ -157,11 +94,25 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
break; break;
} }
} }
break;
case "allReport":
if(accessAuth.equals("ACC003")){
resultBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
}else{
return new ModelAndView("redirect:/affairResult/resultMgt/myReport");
}
break;
}
mav.addObject("page", tab);
mav.addObject("searchUrl", "/affairResult/resultMgt/"+tab);
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth); mav.addObject("apprvAuth", apprvAuth);
resultBoard.setQueryInfo(); resultBoard.setQueryInfo();
mav.addObject("resultList", resultService.selectResultBoardList(resultBoard)); mav.addObject("resultList", resultService.selectResultBoardList(resultBoard));
resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard)); resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard));
resultBoard.setContentCnt(0);
resultBoard.setPaginationInfo(); resultBoard.setPaginationInfo();
mav.addObject("searchParams", resultBoard); mav.addObject("searchParams", resultBoard);
return mav; return mav;
@ -224,8 +175,8 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("viewOrgan",loginUser.getOgCd()); mav.addObject("viewOrgan",loginUser.getOgCd());
//메뉴권한 확인 //메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getAccessAuth()); mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt/myReport").get(0).getAccessAuth());
mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth()); mav.addObject("apprvAuth", authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt/myReport").get(0).getApprovalAuth());
return mav; return mav;
} }

View File

@ -115,7 +115,7 @@ public class ResultService extends BaseService { // 월간계획
userAlarmService.sendAlarmToWrtUser(savedResult.getResultKey(), savedResult.getWrtUserSeq(), 31, savedResult.getResultTitle()+" 문서가 승인되었습니다."); userAlarmService.sendAlarmToWrtUser(savedResult.getResultKey(), savedResult.getWrtUserSeq(), 31, savedResult.getResultTitle()+" 문서가 승인되었습니다.");
break; break;
} }
return apprv.getApprvSeq(); return apprv.getResultKey();
} }
public ResultBoard getPrintTypeResultBoard(ResultBoard resultBoard, Map<String, List<CodeMgt>> codeMap) { public ResultBoard getPrintTypeResultBoard(ResultBoard resultBoard, Map<String, List<CodeMgt>> codeMap) {
@ -130,9 +130,14 @@ public class ResultService extends BaseService { // 월간계획
if(apprv.getState().equals("DST004")){ if(apprv.getState().equals("DST004")){
resultBoard.setSectionApprv(apprv.getUserNm()); resultBoard.setSectionApprv(apprv.getUserNm());
}else if(apprv.getState().equals("DST006")){ }else if(apprv.getState().equals("DST006")){
resultBoard.setHeadApprv(apprv.getUserNm()); resultBoard.setHeadApprv(apprv.getUserNm());
} }
} }
if(Utils.isEmpty(resultBoard.getSectionApprv())){
resultBoard.setSectionApprv(resultBoard.getHeadApprv());
resultBoard.setHeadApprv("전결");
}
for(AffairBoard affair: resultBoard.getAffairBoardList()){ for(AffairBoard affair: resultBoard.getAffairBoardList()){
affair.setAffairRate(Utils.searchCodeValue(affair.getAffairRate(), codeMap.get("AAR"))+(affair.getOrganUp().equals("T")?"(상보)":"")); affair.setAffairRate(Utils.searchCodeValue(affair.getAffairRate(), codeMap.get("AAR"))+(affair.getOrganUp().equals("T")?"(상보)":""));
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.faisp.main.menuMgt.service; package com.dbnt.faisp.main.menuMgt.service;
import com.dbnt.faisp.main.authMgt.repository.AccessConfigRepository; import com.dbnt.faisp.main.authMgt.repository.AccessConfigRepository;
import com.dbnt.faisp.main.authMgt.repository.ApprovalConfigRepository;
import com.dbnt.faisp.main.menuMgt.mapper.MenuMgtMapper; import com.dbnt.faisp.main.menuMgt.mapper.MenuMgtMapper;
import com.dbnt.faisp.main.menuMgt.model.MenuMgt; import com.dbnt.faisp.main.menuMgt.model.MenuMgt;
import com.dbnt.faisp.main.menuMgt.repository.MenuMgtRepository; import com.dbnt.faisp.main.menuMgt.repository.MenuMgtRepository;
@ -16,6 +17,7 @@ public class MenuMgtService {
private final MenuMgtRepository menuMgtRepository; private final MenuMgtRepository menuMgtRepository;
private final AccessConfigRepository accessConfigRepository; private final AccessConfigRepository accessConfigRepository;
private final ApprovalConfigRepository approvalConfigRepository;
private final MenuMgtMapper menuMgtMapper; private final MenuMgtMapper menuMgtMapper;
public List<MenuMgt> selectMenuMgtList(MenuMgt menuMgt){ public List<MenuMgt> selectMenuMgtList(MenuMgt menuMgt){
@ -54,6 +56,10 @@ public class MenuMgtService {
@Transactional @Transactional
public void deleteMenuMgt(List<MenuMgt> menuList) { public void deleteMenuMgt(List<MenuMgt> menuList) {
for(MenuMgt menu: menuList){
accessConfigRepository.deleteByMenuKey(menu.getMenuKey());
approvalConfigRepository.deleteByMenuKey(menu.getMenuKey());
}
menuMgtRepository.deleteAll(menuList); menuMgtRepository.deleteAll(menuList);
} }

View File

@ -298,7 +298,7 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} (a.wrt_user_seq = #{userSeq} and a.plan_state in ('DST002', 'DST004'))
or ( or (
a.plan_state = 'DST002' and a.plan_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
@ -323,8 +323,8 @@
inner join affair_rating b on a.affair_key = b.affair_key and b.rating_organ = #{ogCd} inner join affair_rating b on a.affair_key = b.affair_key and b.rating_organ = #{ogCd}
where a.affair_category = 'CAT215' where a.affair_category = 'CAT215'
and ( and (
a.wrt_user_seq = #{userSeq} or (a.wrt_user_seq = #{userSeq} and b.affair_status in ('DST002', 'DST004'))
( or (
b.affair_status = 'DST002' and b.affair_status = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa from menu_mgt aa
@ -347,7 +347,8 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} or ( (a.wrt_user_seq = #{userSeq} and a.result_state in ('DST002', 'DST004'))
or (
a.result_state = 'DST002' and a.result_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa from menu_mgt aa
@ -370,7 +371,7 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} (a.wrt_user_seq = #{userSeq} and a.op_state in ('DST002', 'DST004'))
or ( or (
a.op_state = 'DST002' and a.op_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
@ -395,7 +396,8 @@
inner join affair_rating b on a.affair_key = b.affair_key and b.rating_organ = #{ogCd} inner join affair_rating b on a.affair_key = b.affair_key and b.rating_organ = #{ogCd}
where a.affair_category = 'CAT216' where a.affair_category = 'CAT216'
and ( and (
a.wrt_user_seq = #{userSeq} or ( (a.wrt_user_seq = #{userSeq} and b.affair_status in ('DST002', 'DST004'))
or (
b.affair_status = 'DST002' and b.affair_status = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
from menu_mgt aa from menu_mgt aa
@ -418,7 +420,7 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} (a.wrt_user_seq = #{userSeq} and a.ia_state in ('DST002', 'DST004'))
or ( or (
a.ia_state = 'DST002' and a.ia_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
@ -443,7 +445,7 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} (a.wrt_user_seq = #{userSeq} and a.fer_state in ('DST002', 'DST004'))
or ( or (
a.fer_state = 'DST002' and a.fer_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
@ -467,7 +469,7 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} (a.wrt_user_seq = #{userSeq} and a.md_state in ('DST002', 'DST004'))
or ( or (
a.md_state = 'DST002' and a.md_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
@ -491,7 +493,7 @@
where where
a.wrt_organ = #{ogCd} a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} (a.wrt_user_seq = #{userSeq} and a.mr_state in ('DST002', 'DST004'))
or ( or (
a.mr_state = 'DST002' and a.mr_state = 'DST002' and
( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004' ( select ab.approval_auth ~ 'APC003' or ab.approval_auth ~ 'APC004'
@ -514,7 +516,8 @@
from activity_case a from activity_case a
inner join activity_case_info b on a.receipt_key = b.receipt_key inner join activity_case_info b on a.receipt_key = b.receipt_key
where where
a.wrt_organ = #{ogCd} b.status = 'DST007'
and a.wrt_organ = #{ogCd}
and ( and (
a.wrt_user_seq = #{userSeq} a.wrt_user_seq = #{userSeq}
or b.case_key in ( or b.case_key in (

View File

@ -16,14 +16,8 @@ $(function(){
}); });
}) })
$(document).on('click', '#planTab', function (){ $(document).on('click', '.pageTab', function (){
location.href = "/affairPlan/planMgt"; location.href = "/affairPlan/planMgt/"+this.id;
})
$(document).on('click', '#stayTab', function (){
location.href = "/affairPlan/stayPage";
})
$(document).on('click', '#commitTab', function (){
location.href = "/affairPlan/commitPage";
}) })
$(document).on('click', '#addPlanBtn', function (){ $(document).on('click', '#addPlanBtn', function (){

View File

@ -16,14 +16,8 @@ $(function(){
}); });
}) })
$(document).on('click', '#resultTab', function (){ $(document).on('click', '.pageTab', function (){
location.href = "/affairResult/resultMgt"; location.href = "/affairResult/resultMgt/"+this.id;
})
$(document).on('click', '#stayTab', function (){
location.href = "/affairResult/stayPage";
})
$(document).on('click', '#commitTab', function (){
location.href = "/affairResult/commitPage";
}) })
$(document).on('click', '#addResultBtn', function (){ $(document).on('click', '#addResultBtn', function (){

View File

@ -25,9 +25,9 @@
<div class="card-body"> <div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link reportTypeTab" th:classappend="${page eq 'myReport'?' active':''}" data-reporttype="myReport" id="myTab" data-bs-toggle="tab" type="button" role="tab">보고서</button> <button class="nav-link reportTypeTab" th:classappend="${page eq 'myReport'?' active':''}" data-reporttype="myReport" id="myTab" data-bs-toggle="tab" type="button" role="tab">작성 목록</button>
</li> </li>
<li class="nav-item" role="presentation" th:if="${apprvAuth ne null or accessAuth eq 'ACC003'}"> <li class="nav-item" role="presentation">
<button class="nav-link reportTypeTab" th:classappend="${page eq 'stayReport'?' active':''}" data-reporttype="stayReport" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button> <button class="nav-link reportTypeTab" th:classappend="${page eq 'stayReport'?' active':''}" data-reporttype="stayReport" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">

View File

@ -23,13 +23,16 @@
<div class="card-body"> <div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${page eq 'main'?' active':''}" id="planTab" data-bs-toggle="tab" type="button" role="tab">전체 목록</button> <button class="nav-link pageTab" th:classappend="${page eq 'myReport'?' active':''}" id="myReport" data-bs-toggle="tab" type="button" role="tab">내 작성 목록</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${page eq 'stay'?' active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button> <button class="nav-link pageTab" th:classappend="${page eq 'stayReport'?' active':''}" id="stayReport" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${page eq 'commit'?' active':''}" id="commitTab" data-bs-toggle="tab" type="button" role="tab">결재처리목록</button> <button class="nav-link pageTab" th:classappend="${page eq 'commitReport'?' active':''}" id="commitReport" data-bs-toggle="tab" type="button" role="tab">결재처리목록</button>
</li>
<li class="nav-item" role="presentation" th:if="${accessAuth eq 'ACC003'}">
<button class="nav-link pageTab" th:classappend="${page eq 'allReport'?' active':''}" id="allReport" data-bs-toggle="tab" type="button" role="tab">전체목록(관리자)</button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-2" id="planContent"> <div class="tab-content bg-white border border-top-0 p-2" id="planContent">
@ -46,7 +49,7 @@
<div class="col-8"> <div class="col-8">
<div class="row"> <div class="row">
<div class="col-11"> <div class="col-11">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003' and page eq 'main'}"> <div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003' and page eq 'allReport'}">
<div class="col-2"> <div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan"> <select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option> <option value="">관서 선택</option>

View File

@ -94,37 +94,19 @@
</table> </table>
</div> </div>
</div> </div>
<th:block th:unless="${#lists.isEmpty(plan.apprvList)}"> <th:block th:unless="${#lists.isEmpty(plan.apprvList)}">
<hr> <hr>
<th:block th:each="apprv,cnt:${plan.apprvList}"> <th:block th:each="apprv,cnt:${plan.apprvList}">
<div > <div>
<!-- <label class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${code.itemCd eq rate.ratingOrgan}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>-->
<div class="col-12 text-center row border-top-0 border-secondary"> <div class="col-12 text-center row border-top-0 border-secondary">
<th:block th:each="code:${session.commonCode.get('DST')}"> <th:block th:each="code:${session.commonCode.get('DST')}">
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center" <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center" th:if="${code.itemCd eq apprv.state}">결재결과:</span>
th:if="${code.itemCd eq apprv.state}">결재결과:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-start" th:if="${code.itemCd eq apprv.state}" th:text="${#strings.substring(code.itemValue, 2, 4)}"></span>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-start"
th:if="${code.itemCd eq apprv.state}" th:text="${#strings.substring(code.itemValue, 2, 4)}"></span>
</th:block> </th:block>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center">결재자:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center">결재자:</span>
<span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" <span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" th:text="${apprv.userNm}"></span>
th:text="${apprv.userNm}"></span>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center">결재일시:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center">결재일시:</span>
<span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" <span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" th:text="${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}"></span>
th:text="${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}"></span>
<div class="col-12 text-center row border-top-0 border-secondary"> <div class="col-12 text-center row border-top-0 border-secondary">
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center" >기타의견:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center" >기타의견:</span>
<span class="col-sm-7 border-end border-secondary col-form-label col-form-label-sm text-start" th:text="${apprv.etc}"></span> <span class="col-sm-7 border-end border-secondary col-form-label col-form-label-sm text-start" th:text="${apprv.etc}"></span>
@ -133,8 +115,6 @@
</div> </div>
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
<div class="col-12" th:unless="${apprvAuth eq null}"> <div class="col-12" th:unless="${apprvAuth eq null}">
<th:block th:if="${viewOrgan eq plan.wrtOrgan}"> <th:block th:if="${viewOrgan eq plan.wrtOrgan}">

View File

@ -23,13 +23,16 @@
<div class="card-body"> <div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${page eq 'main'?' active':''}" id="resultTab" data-bs-toggle="tab" type="button" role="tab">전체 목록</button> <button class="nav-link pageTab" th:classappend="${page eq 'myReport'?' active':''}" id="myReport" data-bs-toggle="tab" type="button" role="tab">내 작성 목록</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${page eq 'stay'?' active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button> <button class="nav-link pageTab" th:classappend="${page eq 'stayReport'?' active':''}" id="stayReport" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${page eq 'commit'?' active':''}" id="commitTab" data-bs-toggle="tab" type="button" role="tab">결재처리목록</button> <button class="nav-link pageTab" th:classappend="${page eq 'commitReport'?' active':''}" id="commitReport" data-bs-toggle="tab" type="button" role="tab">결재처리목록</button>
</li>
<li class="nav-item" role="presentation" th:if="${accessAuth eq 'ACC003'}">
<button class="nav-link pageTab" th:classappend="${page eq 'allReport'?' active':''}" id="allReport" data-bs-toggle="tab" type="button" role="tab">전체목록(관리자)</button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-2"> <div class="tab-content bg-white border border-top-0 p-2">
@ -46,13 +49,13 @@
<div class="col-8"> <div class="col-8">
<div class="row"> <div class="row">
<div class="col-11"> <div class="col-11">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}"> <div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003' and page eq 'allReport'}">
<div class="col-2"> <div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan"> <select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option> <option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <th:block th:if="${#lists.contains(mgtOrganList, code.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.wrtOrgan}"></option>
</th:block> </th:block>
</th:block> </th:block>
</select> </select>

View File

@ -34,8 +34,8 @@
</div> </div>
<label for="resultState" class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">상태</label> <label for="resultState" class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">상태</label>
<div class="col-sm-4 border-end border-secondary col-form-label col-form-label-sm text-start"> <div class="col-sm-4 border-end border-secondary col-form-label col-form-label-sm text-start">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="code:${session.commonCode.get('DST')}">
<input type="text" class="form-control border-0" th:if="${commonCode.itemCd eq result.resultState}" th:value="${commonCode.itemValue}" readonly> <input type="text" class="form-control border-0" th:if="${code.itemCd eq result.resultState}" th:value="${code.itemValue}" readonly>
</th:block> </th:block>
</div> </div>
</div> </div>
@ -243,24 +243,16 @@
</div> </div>
<th:block th:unless="${#lists.isEmpty(result.apprvList)}"> <th:block th:unless="${#lists.isEmpty(result.apprvList)}">
<th:block th:each="apprv,cnt:${result.apprvList}"> <th:block th:each="apprv,cnt:${result.apprvList}">
<div class="ms-2 mt-2"> <div class="ms-2 mt-2">
<div class="col-12 text-center row border-top-0 border-secondary"> <div class="col-12 text-center row border-top-0 border-secondary">
<th:block th:each="code:${session.commonCode.get('DST')}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold" th:if="${code.itemCd eq apprv.state}">결재결과:</span>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold" <span class="col-sm-1 border-end borde0r-secondary col-form-label col-form-label-sm text-start" th:if="${code.itemCd eq apprv.state}" th:text="${#strings.substring(code.itemValue, 2, 4)}"></span>
th:if="${commonCode.itemCd eq apprv.state}">결재결과:</span>
<span class="col-sm-1 border-end borde0r-secondary col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq apprv.state}" th:text=" ${commonCode.itemValue}"></span>
</th:block> </th:block>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">결재자:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">결재자:</span>
<span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" <span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" th:text="${apprv.userNm}"></span>
th:text="${apprv.userNm}"></span>
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">결재일시:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold">결재일시:</span>
<span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" <span class="col-sm-2 border-end border-secondary col-form-label col-form-label-sm text-start" th:text="${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}"></span>
th:text="${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}"></span>
</div> </div>
<div class="col-12 text-center row border-top-0 border-secondary"> <div class="col-12 text-center row border-top-0 border-secondary">
<span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold" >기타의견:</span> <span class="col-sm-1 border-end border-secondary col-form-label col-form-label-sm text-center fw-bold" >기타의견:</span>
@ -281,16 +273,36 @@
<input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입"> <input type="text" class="form-control form-control-sm" name="etc" placeholder="추가의견, 반려사유 기입">
<input type="text" class="d-none" id="submitPrevention"> <input type="text" class="d-none" id="submitPrevention">
</div> </div>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and result.resultState eq 'DST002'}">
<!--계장, 계장대행, 결재대기-->
<th:block th:if="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행-->
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" <input type="button" class="btn btn-sm btn-success apprvBtn" data-resultstate="DST006" value="승인">
th:data-resultstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and result.resultState eq 'DST002'?'DST004':'DST006'}" value="승인">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" <input type="button" class="btn btn-sm btn-danger apprvBtn" data-resultstate="DST005" value="반려">
th:data-resultstate="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004'))
and result.resultState eq 'DST002'?'DST003':'DST005'}" value="반려">
</div> </div>
</th:block>
<th:block th:unless="${#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')}">
<!--과장, 과장대행 X-->
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" data-resultstate="DST004" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-resultstate="DST003" value="반려">
</div>
</th:block>
</th:block>
<th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and result.resultState eq 'DST004'}">
<!--과장, 과장대행 계장승인-->
<div class="col-auto">
<input type="button" class="btn btn-sm btn-success apprvBtn" data-resultstate="DST006" value="승인">
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-resultstate="DST005" value="반려">
</div>
</th:block>
</div> </div>
</form> </form>
</th:block> </th:block>