묶음인쇄 작업중.

청산보고서에서 연관보고서 링크 기능 추가.
프로젝트 일부 패키지 구조 변경.
master
강석 최 2023-03-22 19:16:10 +09:00
parent d473c1972d
commit c32ecb1be9
51 changed files with 659 additions and 296 deletions

View File

@ -41,6 +41,8 @@ public class BaseModel {
private Boolean dashboardFlag = false; private Boolean dashboardFlag = false;
@Transient @Transient
private Integer refDocKey; private Integer refDocKey;
@Transient
private String modalType;
public void setQueryInfo(){ public void setQueryInfo(){
setFirstIndex((getPageIndex()-1)*getRowCnt()); setFirstIndex((getPageIndex()-1)*getRowCnt());

View File

@ -159,8 +159,9 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
@GetMapping("/affairViewModal") @GetMapping("/affairViewModal")
public ModelAndView affairViewModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){ public ModelAndView affairViewModal(@AuthenticationPrincipal UserInfo loginUser, AffairBoard affairBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairViewModal"); ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairViewModal");
mav.addObject("modalType", affairBoard.getModalType());
affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey());
affairBoard.setAffairStatus(getAffairRating(affairBoard, loginUser.getOgCd()).getAffairStatus()); affairBoard.setAffairStatus(affairService.getAffairRating(affairBoard, loginUser.getOgCd()).getAffairStatus());
mav.addObject("affair", affairBoard); mav.addObject("affair", affairBoard);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
@ -177,40 +178,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
public AffairBoard affairBoardJson(AffairBoard affair, HttpSession session){ public AffairBoard affairBoardJson(AffairBoard affair, HttpSession session){
Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode"); Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode");
affair = affairService.selectAffairBoard(affair.getAffairKey()); affair = affairService.selectAffairBoard(affair.getAffairKey());
affair.setWrtPart(Utils.searchCodeValue(affair.getWrtPart(), codeMap.get(affair.getWrtOrgan()))); affair = affairService.getPrintTypeAffairBoard(affair, codeMap);
affair.setWrtUserGrd(Utils.searchCodeValue(affair.getWrtUserGrd(), codeMap.get("JT")));
affair.setAffairType1(Utils.searchCodeValue(affair.getAffairType1(), codeMap.get("DC01")));
affair.setAffairType2(Utils.searchCodeValue(affair.getAffairType2(), codeMap.get("DC02")));
affair.setAffairType3(Utils.searchCodeValue(affair.getAffairType3(), codeMap.get("DC03")));
affair.setAffairType4(Utils.searchCodeValue(affair.getAffairType4(), codeMap.get("DC04")));
AffairRating rating = getAffairRating(affair, affair.getWrtOrgan());
affair.setSectionNm(rating.getSectionNm());
affair.setHeadNm(rating.getHeadNm());
affair.setOrganUp(rating.getOrganUp().equals("T")?"O":"");
affair.setLastEtc(Utils.isEmpty(rating.getSectionEtc())?rating.getHeadEtc():rating.getSectionEtc());
affair.setReference(rating.getRatingOrgan().equals("OG027")?"경비작전과장":"정보외사과장");
if(rating.getRatingOrgan().equals("OG001")){
affair.setReception("해양경찰청장");
}else if(rating.getRatingOrgan().equals("OG027")){
affair.setReception("서해5도특별경비단장");
}else{
String organNm = Utils.searchCodeValue(rating.getRatingOrgan(), codeMap.get("OG"));
if(organNm.endsWith("청")){
affair.setReception(organNm.substring(0, organNm.length()-1)+"지방청장");
}else{
affair.setReception(organNm.substring(0, organNm.length()-1)+"경찰서장");
}
}
switch (rating.getAffairRate()){
case "AAR001": affair.setAffairRate1("O");break;
case "AAR003": affair.setAffairRate2("O");break;
case "AAR004": affair.setAffairRate3("O");break;
case "AAR006": affair.setAffairRate4("O");break;
case "AAR008": affair.setAffairRate5("O");break;
}
for(AffairFile file: affair.getFileList()){
file.setOrigNm(file.getOrigNm()+"."+file.getFileExtn());
}
return affair; return affair;
} }
@ -236,7 +204,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
ModelAndView mav = new ModelAndView("print/affair"); ModelAndView mav = new ModelAndView("print/affair");
affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey()); affairBoard = affairService.selectAffairBoard(affairBoard.getAffairKey());
mav.addObject("affair", affairBoard); mav.addObject("affair", affairBoard);
mav.addObject("affairRating", getAffairRating(affairBoard, affairBoard.getWrtOrgan())); mav.addObject("affairRating", affairService.getAffairRating(affairBoard, affairBoard.getWrtOrgan()));
return mav; return mav;
} }
@ -339,25 +307,5 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
} }
private AffairRating getAffairRating(AffairBoard affairBoard, String ogCd){
AffairRating affairRating = null;
for(AffairRating rating: affairBoard.getRateList()){
if(rating.getRatingOrgan().equals(ogCd)){
affairRating = rating;
//affairBoard.setAffairStatus(rating.getAffairStatus());
break;
}
}
if(affairRating==null){
for(AffairRating rating: affairBoard.getRateList()){
if(rating.getOrganUp()==null || !rating.getOrganUp().equals("T")){
affairRating = rating;
//affairBoard.setAffairStatus(rating.getAffairStatus());
break;
}
}
}
return affairRating;
}
} }

View File

@ -3,6 +3,7 @@ package com.dbnt.faisp.main.fpiMgt.affair.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.fpiMgt.affair.mapper.AffairMapper; import com.dbnt.faisp.main.fpiMgt.affair.mapper.AffairMapper;
import com.dbnt.faisp.main.fpiMgt.affair.model.*; import com.dbnt.faisp.main.fpiMgt.affair.model.*;
@ -327,4 +328,63 @@ public class AffairService extends BaseService { // 견문보고
public List<TypeStatistics> selectArrCntList(TypeStatistics typeStatistics) { public List<TypeStatistics> selectArrCntList(TypeStatistics typeStatistics) {
return affairMapper.selectArrCntList(typeStatistics); return affairMapper.selectArrCntList(typeStatistics);
} }
public AffairBoard getPrintTypeAffairBoard(AffairBoard affair, Map<String, List<CodeMgt>> codeMap) {
affair.setWrtPart(Utils.searchCodeValue(affair.getWrtPart(), codeMap.get(affair.getWrtOrgan())));
affair.setWrtUserGrd(Utils.searchCodeValue(affair.getWrtUserGrd(), codeMap.get("JT")));
affair.setAffairType1(Utils.searchCodeValue(affair.getAffairType1(), codeMap.get("DC01")));
affair.setAffairType2(Utils.searchCodeValue(affair.getAffairType2(), codeMap.get("DC02")));
affair.setAffairType3(Utils.searchCodeValue(affair.getAffairType3(), codeMap.get("DC03")));
affair.setAffairType4(Utils.searchCodeValue(affair.getAffairType4(), codeMap.get("DC04")));
AffairRating rating = getAffairRating(affair, affair.getWrtOrgan());
affair.setSectionNm(rating.getSectionNm());
affair.setHeadNm(rating.getHeadNm());
affair.setOrganUp(rating.getOrganUp().equals("T")?"O":"");
affair.setLastEtc(Utils.isEmpty(rating.getSectionEtc())?rating.getHeadEtc():rating.getSectionEtc());
affair.setReference(rating.getRatingOrgan().equals("OG027")?"경비작전과장":"정보외사과장");
if(rating.getRatingOrgan().equals("OG001")){
affair.setReception("해양경찰청장");
}else if(rating.getRatingOrgan().equals("OG027")){
affair.setReception("서해5도특별경비단장");
}else{
String organNm = Utils.searchCodeValue(rating.getRatingOrgan(), codeMap.get("OG"));
if(organNm.endsWith("청")){
affair.setReception(organNm.substring(0, organNm.length()-1)+"지방청장");
}else{
affair.setReception(organNm.substring(0, organNm.length()-1)+"경찰서장");
}
}
switch (rating.getAffairRate()){
case "AAR001": affair.setAffairRate1("O");break;
case "AAR003": affair.setAffairRate2("O");break;
case "AAR004": affair.setAffairRate3("O");break;
case "AAR006": affair.setAffairRate4("O");break;
case "AAR008": affair.setAffairRate5("O");break;
}
for(AffairFile file: affair.getFileList()){
file.setOrigNm(file.getOrigNm()+"."+file.getFileExtn());
}
return affair;
}
public AffairRating getAffairRating(AffairBoard affairBoard, String ogCd){
AffairRating affairRating = null;
for(AffairRating rating: affairBoard.getRateList()){
if(rating.getRatingOrgan().equals(ogCd)){
affairRating = rating;
//affairBoard.setAffairStatus(rating.getAffairStatus());
break;
}
}
if(affairRating==null){
for(AffairRating rating: affairBoard.getRateList()){
if(rating.getOrganUp()==null || !rating.getOrganUp().equals("T")){
affairRating = rating;
//affairBoard.setAffairStatus(rating.getAffairStatus());
break;
}
}
}
return affairRating;
}
} }

View File

@ -177,6 +177,7 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
@GetMapping("/planViewModal") @GetMapping("/planViewModal")
public ModelAndView planViewModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){ public ModelAndView planViewModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard planBoard){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planViewModal"); ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairPlan/planViewModal");
mav.addObject("modalType", planBoard.getModalType());
planBoard = planService.selectPlanBoard(planBoard.getPlanKey()); planBoard = planService.selectPlanBoard(planBoard.getPlanKey());
mav.addObject("plan", planBoard); mav.addObject("plan", planBoard);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
@ -209,11 +210,9 @@ public class PlanController { // 첩보수집활동 > 외사경찰 견문관리
@GetMapping("/planBoardJson") @GetMapping("/planBoardJson")
public PlanBoard planBoardJson(PlanBoard planBoard, HttpSession session){ public PlanBoard planBoardJson(PlanBoard planBoard, HttpSession session){
planBoard = planService.selectPlanBoard(planBoard.getPlanKey());
Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode"); Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode");
planBoard.setWrtPart(Utils.searchCodeValue(planBoard.getWrtPart(), codeMap.get(planBoard.getWrtOrgan()))); planBoard = planService.selectPlanBoard(planBoard.getPlanKey());
planBoard.setWrtOrgan(Utils.searchCodeValue(planBoard.getWrtOrgan(), codeMap.get("OG"))); planBoard = planService.getPrintTypePlanBoard(planBoard, codeMap);
planBoard.setWrtUserGrd(Utils.searchCodeValue(planBoard.getWrtUserGrd(), codeMap.get("JT")));
return planBoard; return planBoard;
} }
} }

View File

@ -4,6 +4,7 @@ package com.dbnt.faisp.main.fpiMgt.affairPlan.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.fpiMgt.affairPlan.mapper.PlanMapper; import com.dbnt.faisp.main.fpiMgt.affairPlan.mapper.PlanMapper;
import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanApprv; import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanApprv;
import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanBoard; import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanBoard;
@ -15,6 +16,7 @@ import com.dbnt.faisp.main.fpiMgt.affairPlan.repository.PlanFileRepository;
import com.dbnt.faisp.main.fpiMgt.affairPlan.repository.PlanMainInfoRepository; import com.dbnt.faisp.main.fpiMgt.affairPlan.repository.PlanMainInfoRepository;
import com.dbnt.faisp.main.userInfo.model.UserAlarm; import com.dbnt.faisp.main.userInfo.model.UserAlarm;
import com.dbnt.faisp.main.userInfo.service.UserAlarmService; import com.dbnt.faisp.main.userInfo.service.UserAlarmService;
import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -24,6 +26,7 @@ import java.io.File;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
@Service @Service
@ -147,4 +150,11 @@ public class PlanService extends BaseService { // 월간계획
} }
} }
} }
public PlanBoard getPrintTypePlanBoard(PlanBoard planBoard, Map<String, List<CodeMgt>> codeMap) {
planBoard.setWrtPart(Utils.searchCodeValue(planBoard.getWrtPart(), codeMap.get(planBoard.getWrtOrgan())));
planBoard.setWrtOrgan(Utils.searchCodeValue(planBoard.getWrtOrgan(), codeMap.get("OG")));
planBoard.setWrtUserGrd(Utils.searchCodeValue(planBoard.getWrtUserGrd(), codeMap.get("JT")));
return planBoard;
}
} }

View File

@ -5,6 +5,8 @@ import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard; import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanBoard;
import com.dbnt.faisp.main.fpiMgt.affairPlan.service.PlanService;
import com.dbnt.faisp.main.fpiMgt.affairResult.model.*; import com.dbnt.faisp.main.fpiMgt.affairResult.model.*;
import com.dbnt.faisp.main.fpiMgt.affairResult.service.ResultService; import com.dbnt.faisp.main.fpiMgt.affairResult.service.ResultService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
@ -17,6 +19,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -26,6 +30,7 @@ import java.util.Map;
public class ResultController { // 첩보수집활동 > 외사경찰 견문관리 > 계획수립 public class ResultController { // 첩보수집활동 > 외사경찰 견문관리 > 계획수립
private final ResultService resultService; private final ResultService resultService;
private final AffairService affairService; private final AffairService affairService;
private final PlanService planService;
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
private final CodeMgtService codeMgtService; private final CodeMgtService codeMgtService;
@ -195,6 +200,21 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
mav.addObject("affairList", affairService.selectAffairBoardList(affair)); mav.addObject("affairList", affairService.selectAffairBoardList(affair));
return mav; return mav;
} }
@GetMapping("/planListModal")
public ModelAndView planListModal(@AuthenticationPrincipal UserInfo loginUser, PlanBoard plan){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affairResult/planListModal");
if(plan.getWrtUserSeq() == null) {
plan.setWrtUserSeq(loginUser.getUserSeq());
}
if(plan.getWrtOrgan() == null) {
plan.setWrtOrgan(loginUser.getOgCd());
}
plan.setFirstIndex(0);
plan.setRowCnt(9999);
plan.setDateSelector("planDt");
mav.addObject("planList", planService.selectPlanBoardList(plan));
return mav;
}
@GetMapping("/resultViewModal") @GetMapping("/resultViewModal")
public ModelAndView resultViewModal(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){ public ModelAndView resultViewModal(@AuthenticationPrincipal UserInfo loginUser, ResultBoard resultBoard){
@ -244,26 +264,32 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
public ResultBoard resultBoardJson(ResultBoard resultBoard, HttpSession session){ public ResultBoard resultBoardJson(ResultBoard resultBoard, HttpSession session){
Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode"); Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode");
resultBoard = resultService.selectResultBoard(resultBoard.getResultKey()); resultBoard = resultService.selectResultBoard(resultBoard.getResultKey());
resultBoard.setWrtPart(Utils.searchCodeValue(resultBoard.getWrtPart(), codeMap.get(resultBoard.getWrtOrgan()))); return resultService.getPrintTypeResultBoard(resultBoard, codeMap);
resultBoard.setWrtOrgan(Utils.searchCodeValue(resultBoard.getWrtOrgan(), codeMap.get("OG")));
resultBoard.setWrtUserGrd(Utils.searchCodeValue(resultBoard.getWrtUserGrd(), codeMap.get("JT")));
for(ClearInfo info: resultBoard.getClearInfoList()){
info.setUseCatg(Utils.searchCodeValue(info.getUseCatg(), codeMap.get("RIC")));
info.setUseDetail(Utils.searchCodeValue(info.getUseDetail(), codeMap.get("RID")));
} }
for(ResultApprv apprv: resultBoard.getApprvList()){
if(apprv.getState().equals("DST004")){ @GetMapping("/resultBundleJson")
resultBoard.setSectionApprv(apprv.getUserNm()); public Map<String, Object> resultBundleJson(ResultBoard resultBoard, HttpSession session){
}else if(apprv.getState().equals("DST006")){ Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode");
resultBoard.setHeadApprv(apprv.getUserNm()); resultBoard = resultService.selectResultBoard(resultBoard.getResultKey());
Map<String, Object> bundleMap = new HashMap<>();
List<PlanBoard> planBoardList = new ArrayList<>();
for(ResultToPlan resultToPlan: resultBoard.getPlanList()){
PlanBoard planBoard = planService.selectPlanBoard(resultToPlan.getPlanKey());
planBoard = planService.getPrintTypePlanBoard(planBoard, codeMap);
planBoardList.add(planBoard);
} }
List<AffairBoard> affairBoardList = new ArrayList<>();
for(ResultToAffair resultToAffair: resultBoard.getAffairList()){
AffairBoard affairBoard = affairService.selectAffairBoard(resultToAffair.getAffairKey());
affairBoard = affairService.getPrintTypeAffairBoard(affairBoard, codeMap);
affairBoardList.add(affairBoard);
} }
for(AffairBoard affair: resultBoard.getAffairBoardList()){ bundleMap.put("planBoard", planBoardList);
affair.setAffairRate(Utils.searchCodeValue(affair.getAffairRate(), codeMap.get("AAR"))+(affair.getOrganUp().equals("T")?"(상보)":"")); bundleMap.put("affairBoard", affairBoardList);
} bundleMap.put("resultBoard", resultService.getPrintTypeResultBoard(resultBoard, codeMap));
for(ResultFile file: resultBoard.getFileList()){ return bundleMap;
file.setOrigNm(file.getOrigNm()+"."+file.getFileExtn());
}
return resultBoard;
} }
} }

View File

@ -1,6 +1,7 @@
package com.dbnt.faisp.main.fpiMgt.affairResult.mapper; package com.dbnt.faisp.main.fpiMgt.affairResult.mapper;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard; import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanBoard;
import com.dbnt.faisp.main.fpiMgt.affairResult.model.ResultBoard; import com.dbnt.faisp.main.fpiMgt.affairResult.model.ResultBoard;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -14,4 +15,6 @@ public interface ResultMapper {
Integer selectResultBoardListCnt(ResultBoard resultBoard); Integer selectResultBoardListCnt(ResultBoard resultBoard);
List<AffairBoard> selectAffairToResultKey(Integer resultKey); List<AffairBoard> selectAffairToResultKey(Integer resultKey);
List<PlanBoard> selectPlanToResultKey(Integer resultKey);
} }

View File

@ -2,6 +2,7 @@ package com.dbnt.faisp.main.fpiMgt.affairResult.model;
import com.dbnt.faisp.config.BaseModel; import com.dbnt.faisp.config.BaseModel;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard; import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.affairPlan.model.PlanBoard;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
@ -87,7 +88,11 @@ public class ResultBoard extends BaseModel {
@Transient @Transient
private List<ResultToAffair> affairList; private List<ResultToAffair> affairList;
@Transient @Transient
private List<ResultToPlan> planList;
@Transient
private List<AffairBoard> affairBoardList; private List<AffairBoard> affairBoardList;
@Transient
private List<PlanBoard> planBoardList;
@Transient @Transient
private String sectionApprv; private String sectionApprv;

View File

@ -3,7 +3,12 @@ package com.dbnt.faisp.main.fpiMgt.affairResult.repository;
import com.dbnt.faisp.main.fpiMgt.affairResult.model.ResultToPlan; import com.dbnt.faisp.main.fpiMgt.affairResult.model.ResultToPlan;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ResultToPlanRepository extends JpaRepository<ResultToPlan, ResultToPlan.ResultToPlanId> { public interface ResultToPlanRepository extends JpaRepository<ResultToPlan, ResultToPlan.ResultToPlanId> {
void deleteByResultKey(Integer resultKey);
List<ResultToPlan> findByResultKey(Integer resultKey);
} }

View File

@ -3,11 +3,14 @@ package com.dbnt.faisp.main.fpiMgt.affairResult.service;
import com.dbnt.faisp.config.BaseService; import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo; import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.affairResult.mapper.ResultMapper; import com.dbnt.faisp.main.fpiMgt.affairResult.mapper.ResultMapper;
import com.dbnt.faisp.main.fpiMgt.affairResult.model.*; import com.dbnt.faisp.main.fpiMgt.affairResult.model.*;
import com.dbnt.faisp.main.fpiMgt.affairResult.repository.*; import com.dbnt.faisp.main.fpiMgt.affairResult.repository.*;
import com.dbnt.faisp.main.userInfo.model.UserAlarm; import com.dbnt.faisp.main.userInfo.model.UserAlarm;
import com.dbnt.faisp.main.userInfo.service.UserAlarmService; import com.dbnt.faisp.main.userInfo.service.UserAlarmService;
import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -15,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
@Service @Service
@ -45,7 +49,10 @@ public class ResultService extends BaseService { // 월간계획
savedResult.setApprvList(resultApprvRepository.findByResultKey(resultKey)); savedResult.setApprvList(resultApprvRepository.findByResultKey(resultKey));
savedResult.setClearInfoList(clearInfoRepository.findByResultKey(resultKey)); savedResult.setClearInfoList(clearInfoRepository.findByResultKey(resultKey));
savedResult.setResultInfoList(resultInfoRepository.findByResultKey(resultKey)); savedResult.setResultInfoList(resultInfoRepository.findByResultKey(resultKey));
savedResult.setAffairList(resultToAffairRepository.findByResultKey(resultKey));
savedResult.setPlanList(resultToPlanRepository.findByResultKey(resultKey));
savedResult.setAffairBoardList(resultMapper.selectAffairToResultKey(resultKey)); savedResult.setAffairBoardList(resultMapper.selectAffairToResultKey(resultKey));
savedResult.setPlanBoardList(resultMapper.selectPlanToResultKey(resultKey));
} }
return savedResult; return savedResult;
} }
@ -68,6 +75,9 @@ public class ResultService extends BaseService { // 월간계획
if (resultBoard.getAffairList() != null){ if (resultBoard.getAffairList() != null){
saveResultToAffair(resultKey, resultBoard.getAffairList()); saveResultToAffair(resultKey, resultBoard.getAffairList());
} }
if (resultBoard.getPlanList() != null){
saveResultToPlan(resultKey, resultBoard.getPlanList());
}
if(resultBoard.getResultState().equals("DST002")){ if(resultBoard.getResultState().equals("DST002")){
//작성완료일 때 계장 결재 사용자에게 알림 발송. //작성완료일 때 계장 결재 사용자에게 알림 발송.
userAlarmService.sendAlarmToApprvUser(resultKey, resultBoard.getWrtOrgan(), "APC003", 31, "청산보고서에 결재대기 문서가 있습니다."); userAlarmService.sendAlarmToApprvUser(resultKey, resultBoard.getWrtOrgan(), "APC003", 31, "청산보고서에 결재대기 문서가 있습니다.");
@ -107,6 +117,30 @@ public class ResultService extends BaseService { // 월간계획
return apprv.getApprvSeq(); return apprv.getApprvSeq();
} }
public ResultBoard getPrintTypeResultBoard(ResultBoard resultBoard, Map<String, List<CodeMgt>> codeMap) {
resultBoard.setWrtPart(Utils.searchCodeValue(resultBoard.getWrtPart(), codeMap.get(resultBoard.getWrtOrgan())));
resultBoard.setWrtOrgan(Utils.searchCodeValue(resultBoard.getWrtOrgan(), codeMap.get("OG")));
resultBoard.setWrtUserGrd(Utils.searchCodeValue(resultBoard.getWrtUserGrd(), codeMap.get("JT")));
for(ClearInfo info: resultBoard.getClearInfoList()){
info.setUseCatg(Utils.searchCodeValue(info.getUseCatg(), codeMap.get("RIC")));
info.setUseDetail(Utils.searchCodeValue(info.getUseDetail(), codeMap.get("RID")));
}
for(ResultApprv apprv: resultBoard.getApprvList()){
if(apprv.getState().equals("DST004")){
resultBoard.setSectionApprv(apprv.getUserNm());
}else if(apprv.getState().equals("DST006")){
resultBoard.setHeadApprv(apprv.getUserNm());
}
}
for(AffairBoard affair: resultBoard.getAffairBoardList()){
affair.setAffairRate(Utils.searchCodeValue(affair.getAffairRate(), codeMap.get("AAR"))+(affair.getOrganUp().equals("T")?"(상보)":""));
}
for(ResultFile file: resultBoard.getFileList()){
file.setOrigNm(file.getOrigNm()+"."+file.getFileExtn());
}
return resultBoard;
}
private void saveUploadFiles(Integer resultKey, List<MultipartFile> multipartFileList){ private void saveUploadFiles(Integer resultKey, List<MultipartFile> multipartFileList){
ResultFile lastFileInfo = resultFileRepository.findTopByResultKeyOrderByFileSeqDesc(resultKey).orElse(null); ResultFile lastFileInfo = resultFileRepository.findTopByResultKeyOrderByFileSeqDesc(resultKey).orElse(null);
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
@ -163,4 +197,12 @@ public class ResultService extends BaseService { // 월간계획
} }
resultToAffairRepository.saveAll(resultToAffairList); resultToAffairRepository.saveAll(resultToAffairList);
} }
private void saveResultToPlan(Integer resultKey, List<ResultToPlan> resultToPlanList){
resultToPlanRepository.deleteByResultKey(resultKey);
for(ResultToPlan relation: resultToPlanList){
relation.setResultKey(resultKey);
}
resultToPlanRepository.saveAll(resultToPlanList);
}
} }

View File

@ -28,7 +28,7 @@ public class IntelligenceNetworkController {
@GetMapping("/operationPlanList/{type}") @GetMapping("/operationPlanList/{type}")
public ModelAndView operationPlanList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, OperationPlan op){ public ModelAndView operationPlanList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, OperationPlan op){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/operationPlanList"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanList");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/operationPlanList/all").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/operationPlanList/all").get(0).getAccessAuth();
@ -111,7 +111,7 @@ public class IntelligenceNetworkController {
@GetMapping("/operationPlanEditModal") @GetMapping("/operationPlanEditModal")
public ModelAndView operationPlanEditModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){ public ModelAndView operationPlanEditModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/operationPlanEditModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanEditModal");
if(op.getOpKey()!=null){ if(op.getOpKey()!=null){
op = intelligenceNetworkService.selectOperationPlan(op.getOpKey()); op = intelligenceNetworkService.selectOperationPlan(op.getOpKey());
} }
@ -137,7 +137,7 @@ public class IntelligenceNetworkController {
@GetMapping("/operationPlanViewModal") @GetMapping("/operationPlanViewModal")
public ModelAndView operationPlanViewModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){ public ModelAndView operationPlanViewModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/operationPlanViewModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanViewModal");
op = intelligenceNetworkService.selectOperationPlan(op.getOpKey()); op = intelligenceNetworkService.selectOperationPlan(op.getOpKey());
mav.addObject("op", op); mav.addObject("op", op);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
@ -159,7 +159,7 @@ public class IntelligenceNetworkController {
@GetMapping("/intelligenceAnalyzeList/{type}") @GetMapping("/intelligenceAnalyzeList/{type}")
public ModelAndView intelligenceAnalyzeList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, IntelligenceAnalyze ia){ public ModelAndView intelligenceAnalyzeList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, IntelligenceAnalyze ia){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/analyzeList"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/analyzeList");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/intelligenceAnalyzeList/all").get(0).getAccessAuth();
@ -242,7 +242,7 @@ public class IntelligenceNetworkController {
@GetMapping("/intelligenceAnalyzeEditModal") @GetMapping("/intelligenceAnalyzeEditModal")
public ModelAndView intelligenceAnalyzeEditModal(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyze ia){ public ModelAndView intelligenceAnalyzeEditModal(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyze ia){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeEditModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/intelligenceAnalyzeEditModal");
if(ia.getIaKey()!=null){ if(ia.getIaKey()!=null){
ia = intelligenceNetworkService.selectIntelligenceAnalyze(ia); ia = intelligenceNetworkService.selectIntelligenceAnalyze(ia);
ia.setAffairList(intelligenceNetworkService.selectIntelligenceAnalyzeAffairKey(ia)); ia.setAffairList(intelligenceNetworkService.selectIntelligenceAnalyzeAffairKey(ia));
@ -281,7 +281,7 @@ public class IntelligenceNetworkController {
@GetMapping("/intelligenceAnalyzeViewModal") @GetMapping("/intelligenceAnalyzeViewModal")
public ModelAndView intelligenceAnalyzeViewModal(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyze ia){ public ModelAndView intelligenceAnalyzeViewModal(@AuthenticationPrincipal UserInfo loginUser, IntelligenceAnalyze ia){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/intelligenceAnalyzeViewModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/intelligenceAnalyzeViewModal");
ia = intelligenceNetworkService.selectIntelligenceAnalyze(ia); ia = intelligenceNetworkService.selectIntelligenceAnalyze(ia);
ia.setApprvList(intelligenceNetworkService.selectIntelligenceAnalyzeApprv(ia)); ia.setApprvList(intelligenceNetworkService.selectIntelligenceAnalyzeApprv(ia));
mav.addObject("ia", ia); mav.addObject("ia", ia);
@ -304,7 +304,7 @@ public class IntelligenceNetworkController {
@GetMapping("/fireExtensionReportList/{type}") @GetMapping("/fireExtensionReportList/{type}")
public ModelAndView fireExtensionReportList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, FireExtensionReport fer){ public ModelAndView fireExtensionReportList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, FireExtensionReport fer){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/fireExtensionReportList"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/fireExtensionReportList");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/fireExtensionReportList/all").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/intelligenceNetwork/fireExtensionReportList/all").get(0).getAccessAuth();
@ -387,7 +387,7 @@ public class IntelligenceNetworkController {
@GetMapping("/fireExtensionReportEditModal") @GetMapping("/fireExtensionReportEditModal")
public ModelAndView fireExtensionReportEditModal(@AuthenticationPrincipal UserInfo loginUser, FireExtensionReport fer){ public ModelAndView fireExtensionReportEditModal(@AuthenticationPrincipal UserInfo loginUser, FireExtensionReport fer){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/fireExtensionReportEditModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/fireExtensionReportEditModal");
if(fer.getFerKey()!=null){ if(fer.getFerKey()!=null){
fer = intelligenceNetworkService.selectFireExtensionReportInfo(fer); fer = intelligenceNetworkService.selectFireExtensionReportInfo(fer);
} }
@ -398,7 +398,7 @@ public class IntelligenceNetworkController {
@GetMapping("/operationPlanListModal") @GetMapping("/operationPlanListModal")
public ModelAndView operationPlanListModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){ public ModelAndView operationPlanListModal(@AuthenticationPrincipal UserInfo loginUser, OperationPlan op){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/operationPlanListModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanListModal");
op.setFirstIndex(0); op.setFirstIndex(0);
op.setRowCnt(9999); op.setRowCnt(9999);
mav.addObject("operationPlanList", intelligenceNetworkService.selectOperationPlanList(op)); mav.addObject("operationPlanList", intelligenceNetworkService.selectOperationPlanList(op));
@ -427,7 +427,7 @@ public class IntelligenceNetworkController {
@GetMapping("/fireExtensionReportViewModal") @GetMapping("/fireExtensionReportViewModal")
public ModelAndView fireExtensionReportViewModal(@AuthenticationPrincipal UserInfo loginUser, FireExtensionReport fer){ public ModelAndView fireExtensionReportViewModal(@AuthenticationPrincipal UserInfo loginUser, FireExtensionReport fer){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/intelligenceNetwork/fireExtensionReportViewModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/fireExtensionReportViewModal");
fer = intelligenceNetworkService.selectFireExtensionReportInfo(fer); fer = intelligenceNetworkService.selectFireExtensionReportInfo(fer);
mav.addObject("fer", fer); mav.addObject("fer", fer);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());

View File

@ -30,7 +30,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/designationList/{type}") @GetMapping("/designationList/{type}")
public ModelAndView designationList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, MonitoringDesignation md){ public ModelAndView designationList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, MonitoringDesignation md){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/designationList"); ModelAndView mav = new ModelAndView("igActivities/monitoring/designationList");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/monitoring/designationList/all").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/monitoring/designationList/all").get(0).getAccessAuth();
@ -115,7 +115,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/designationEditModal") @GetMapping("/designationEditModal")
public ModelAndView designationEditModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){ public ModelAndView designationEditModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/designationEditModal"); ModelAndView mav = new ModelAndView("igActivities/monitoring/designationEditModal");
if(md.getMdKey()!=null){ if(md.getMdKey()!=null){
md = monitoringService.selectDesignation(md.getMdKey()); md = monitoringService.selectDesignation(md.getMdKey());
} }
@ -141,7 +141,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/designationViewModal") @GetMapping("/designationViewModal")
public ModelAndView designationViewModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){ public ModelAndView designationViewModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/designationViewModal"); ModelAndView mav = new ModelAndView("igActivities/monitoring/designationViewModal");
md = monitoringService.selectDesignation(md.getMdKey()); md = monitoringService.selectDesignation(md.getMdKey());
mav.addObject("md", md); mav.addObject("md", md);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());
@ -162,7 +162,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/resultList/{type}") @GetMapping("/resultList/{type}")
public ModelAndView resultList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, MonitoringResult mr){ public ModelAndView resultList(@AuthenticationPrincipal UserInfo loginUser,@PathVariable("type") String type, MonitoringResult mr){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/resultList"); ModelAndView mav = new ModelAndView("igActivities/monitoring/resultList");
//메뉴권한 확인 //메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/monitoring/resultList/all").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/monitoring/resultList/all").get(0).getAccessAuth();
@ -247,7 +247,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/resultEditModal") @GetMapping("/resultEditModal")
public ModelAndView resultEditModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringResult mr){ public ModelAndView resultEditModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringResult mr){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/resultEditModal"); ModelAndView mav = new ModelAndView("igActivities/monitoring/resultEditModal");
if(mr.getMrKey()!=null){ if(mr.getMrKey()!=null){
mr = monitoringService.selectResult(mr.getMrKey()); mr = monitoringService.selectResult(mr.getMrKey());
} }
@ -260,7 +260,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/designationListModal") @GetMapping("/designationListModal")
public ModelAndView designationListModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){ public ModelAndView designationListModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringDesignation md){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/designationListModal"); ModelAndView mav = new ModelAndView("igActivities/monitoring/designationListModal");
md.setFirstIndex(0); md.setFirstIndex(0);
md.setRowCnt(9999); md.setRowCnt(9999);
mav.addObject("designationList", monitoringService.selectDesignationList(md)); mav.addObject("designationList", monitoringService.selectDesignationList(md));
@ -284,7 +284,7 @@ public class MonitoringController { // 첩보수집활동 > 해양외사모니
@GetMapping("/resultViewModal") @GetMapping("/resultViewModal")
public ModelAndView resultViewModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringResult mr){ public ModelAndView resultViewModal(@AuthenticationPrincipal UserInfo loginUser, MonitoringResult mr){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monitoring/resultViewModal"); ModelAndView mav = new ModelAndView("igActivities/monitoring/resultViewModal");
mr = monitoringService.selectResult(mr.getMrKey()); mr = monitoringService.selectResult(mr.getMrKey());
mav.addObject("mr", mr); mav.addObject("mr", mr);
mav.addObject("userSeq",loginUser.getUserSeq()); mav.addObject("userSeq",loginUser.getUserSeq());

View File

@ -105,4 +105,14 @@
on a.affair_key = c.affair_key on a.affair_key = c.affair_key
where c.result_key = #{resultKey} where c.result_key = #{resultKey}
</select> </select>
<select id="selectPlanToResultKey" resultType="PlanBoard" parameterType="int">
select a.plan_key,
a.content_title,
a.plan_dt,
a.plan_state
from plan_board a
inner join result_to_plan b
on a.plan_key = b.plan_key
where b.result_key = #{resultKey}
</select>
</mapper> </mapper>

View File

@ -225,32 +225,6 @@ $(document).on('click', '#fileDownBtn', function (){
} }
}) })
$(document).on('click', '#printBtn', function (){
// window.open(location.origin+"/affair/print?affairKey="+$(this).attr("data-affairkey"));
$.ajax({
url: '/affair/affairBoardJson',
type: 'GET',
data: {affairKey: $(this).attr('data-affairkey')},
dataType:"json",
success: function(data){
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "견문 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "affairBoard";
form.json.value = JSON.stringify(data);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
function getAffairViewModal(affairKey){ function getAffairViewModal(affairKey){
$.ajax({ $.ajax({
url: '/affair/affairViewModal', url: '/affair/affairViewModal',

View File

@ -102,71 +102,6 @@ $(document).on('click', '.apprvBtn', function (){
} }
}) })
$(document).on('click', '#printBtn', function (){
$.ajax({
url: '/affairPlan/planBoardJson',
type: 'GET',
data: {planKey: $(this).attr('data-plankey')},
dataType:"json",
success: function(data){
const plan = {};
plan.contentTitle = data.contentTitle;
plan.planDt = data.planDt;
plan.wrtOrgan = data.wrtOrgan;
plan.wrtPart = data.wrtPart;
plan.wrtUserGrd = data.wrtUserGrd;
plan.wrtUserNm = data.wrtUserNm;
for(let i=0; i<data.apprvList.length; i++){
const apprv = data.apprvList[i];
switch (apprv.state) {
case "DST004":
plan.sectionApprv = apprv.userNm
break;
case "DST006":
plan.headApprv = apprv.userNm
break;
}
}
if(plan.sectionApprv === plan.headApprv){
plan.sectionApprv = "전결"
}
const planInfoSummery = [];
const planInfoDetail = [];
for(let i=0; i<data.mainInfoList.length; i++){
const info = data.mainInfoList[i];
if(info.planType === "S"){
planInfoSummery.push({planInfo: info.planInfo})
}else if(info.planType === "D"){
planInfoDetail.push({planInfo: info.planInfo})
}
}
plan.planInfoSummery = planInfoSummery;
plan.planInfoDetail = planInfoDetail;
const fileList = [];
for(let i=0; i<data.fileList.length; i++){
fileList.push({origNm: data.fileList[i].origNm+"."+data.fileList[i].fileExtn});
}
plan.fileList = fileList;
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "계획 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "planBoard";
form.json.value = JSON.stringify(plan);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
function getPlanViewModal(planKey){ function getPlanViewModal(planKey){
$.ajax({ $.ajax({
url: '/affairPlan/planViewModal', url: '/affairPlan/planViewModal',

View File

@ -0,0 +1,175 @@
$(document).on('click', '#printBtn', function (){
$.ajax({
url: '/affairPlan/planBoardJson',
type: 'GET',
data: {planKey: $(this).attr('data-plankey')},
dataType:"json",
success: function(data){
const plan = {};
plan.contentTitle = data.contentTitle;
plan.planDt = data.planDt;
plan.wrtOrgan = data.wrtOrgan;
plan.wrtPart = data.wrtPart;
plan.wrtUserGrd = data.wrtUserGrd;
plan.wrtUserNm = data.wrtUserNm;
for(let i=0; i<data.apprvList.length; i++){
const apprv = data.apprvList[i];
switch (apprv.state) {
case "DST004":
plan.sectionApprv = apprv.userNm
break;
case "DST006":
plan.headApprv = apprv.userNm
break;
}
}
if(plan.sectionApprv === plan.headApprv){
plan.sectionApprv = "전결"
}
const planInfoSummery = [];
const planInfoDetail = [];
for(let i=0; i<data.mainInfoList.length; i++){
const info = data.mainInfoList[i];
if(info.planType === "S"){
planInfoSummery.push({planInfo: info.planInfo})
}else if(info.planType === "D"){
planInfoDetail.push({planInfo: info.planInfo})
}
}
plan.planInfoSummery = planInfoSummery;
plan.planInfoDetail = planInfoDetail;
const fileList = [];
for(let i=0; i<data.fileList.length; i++){
fileList.push({origNm: data.fileList[i].origNm+"."+data.fileList[i].fileExtn});
}
plan.fileList = fileList;
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "계획 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "planBoard";
form.json.value = JSON.stringify(plan);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
$(document).on('click', '#printBtn', function (){
// window.open(location.origin+"/affair/print?affairKey="+$(this).attr("data-affairkey"));
$.ajax({
url: '/affair/affairBoardJson',
type: 'GET',
data: {affairKey: $(this).attr('data-affairkey')},
dataType:"json",
success: function(data){
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "견문 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "affairBoard";
form.json.value = JSON.stringify(data);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
$(document).on('click', '#printBtn', function (){
$.ajax({
url: '/affairResult/resultBoardJson',
type: 'GET',
data: {resultKey: $(this).attr('data-resultkey')},
dataType:"json",
success: function(data){
data.planPrice = priceNumberToKorean(data.planPrice);
data.usePrice = priceNumberToKorean(data.usePrice);
for(let i=0; i<data.clearInfoList.length; i++){
data.clearInfoList[i].price = "₩ "+data.clearInfoList[i].price.toLocaleString('ko-KR')
}
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "청산 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "resultBoard";
form.json.value = JSON.stringify(data);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
$(document).on('click', '#printBundleBtn', function (){
$.ajax({
url: '/affairResult/resultBundleJson',
type: 'GET',
data: {resultKey: $(this).attr('data-resultkey')},
dataType:"json",
success: function(data){
/*data.planPrice = priceNumberToKorean(data.planPrice);
data.usePrice = priceNumberToKorean(data.usePrice);
for(let i=0; i<data.clearInfoList.length; i++){
data.clearInfoList[i].price = "₩ "+data.clearInfoList[i].price.toLocaleString('ko-KR')
}*/
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "청산 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "bundle";
form.json.value = JSON.stringify(data);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
function priceNumberToKorean(price){
const koreanNumber = ['', '일','이','삼','사','오','육','칠','팔','구'];
const tenThousandUnit = ['', '만', '억', '조'];
const tenUnit = ['', '십', '백', '천'];
var answer = '';
var unit = 10000;
var index = 0;
var division = Math.pow(unit, index);
while (Math.floor(price / division) > 0) {
const mod = Math.floor(price % (division * unit) / division);
if(mod) {
const modToArray = mod.toString().split('');
const modLength = modToArray.length - 1;
const toKorean = modToArray.reduce((a, v, i) => {
a+= `${koreanNumber[v*1]}${tenUnit[modLength - i]}`;
return a;
}, '');
answer = `${toKorean}${tenThousandUnit[index]} `+ answer;
}
division = Math.pow(unit, ++index);
}
return "壹金 "+answer+"원 整 (₩ "+price.toLocaleString('ko-KR')+")";
}

View File

@ -77,9 +77,34 @@ $(document).on('click', '#affairModalBtn', function (){
}); });
} }
}) })
$(document).on('click', '#planModalBtn', function (){
const workStartDt = $("#workStartDt").val()
const workEndDt = $("#workEndDt").val()
if(!workStartDt||!workEndDt){
alert("청산보고서의 사업기간을 입력해주세요.");
}else{
$.ajax({
url: '/affairResult/planListModal',
data: {
startDate: workStartDt,
endDate: workEndDt
},
type: 'GET',
dataType:"html",
success: function(html){
$("#planListModalContent").empty().append(html)
$("#planListModal").modal('show');
},
error:function(e){
ajaxErrorAction(e);
}
});
}
})
$(document).on('click', '#getAffairBtn', function (){ $(document).on('click', '#getAffairBtn', function (){
let affairListTbody = ""; let affairListTbody = "";
$.each($(".rowChkBox:checked"), function (idx, chkBox){ $.each($("#affairListBody").find(".rowChkBox:checked"), function (idx, chkBox){
const affairTr = $(chkBox).parents(".affairTr") const affairTr = $(chkBox).parents(".affairTr")
affairListTbody += "<tr>"; affairListTbody += "<tr>";
affairListTbody += "<input type='hidden' name='affairList["+idx+"].affairKey' value='"+chkBox.value+"'>"; affairListTbody += "<input type='hidden' name='affairList["+idx+"].affairKey' value='"+chkBox.value+"'>";
@ -95,6 +120,19 @@ $(document).on('click', '#getAffairBtn', function (){
$("#affairListTbody").empty().append(affairListTbody); $("#affairListTbody").empty().append(affairListTbody);
$("#affairListModal").modal("hide"); $("#affairListModal").modal("hide");
}) })
$(document).on('click', '#getPlanBtn', function (){
let planListTbody = "";
$.each($("#planListBody").find(".rowChkBox:checked"), function (idx, chkBox){
const planTr = $(chkBox).parents(".planTr")
planListTbody += "<tr>";
planListTbody += "<input type='hidden' name='planList["+idx+"].planKey' value='"+chkBox.value+"'>";
planListTbody += "<td>"+planTr.find(".planDt")[0].innerText+"</td>";
planListTbody += "<td>"+planTr.find(".title")[0].innerText+"</td>";
planListTbody += "</tr>";
})
$("#planListTbody").empty().append(planListTbody);
$("#planListModal").modal("hide");
})
$(document).on('click', '.rowDeleteBtn', function (){ $(document).on('click', '.rowDeleteBtn', function (){
const isClearInfo = $(this).parents("#clearInfoRow").length !== 0; const isClearInfo = $(this).parents("#clearInfoRow").length !== 0;
@ -195,62 +233,48 @@ $(document).on('click', '.apprvBtn', function (){
}) })
} }
}) })
$(document).on('click', '.planTr', function (event){
$(document).on('click', '#printBtn', function (){ const target = event.target;
if(!(target.className === "rowChkBox")){
$.ajax({ $.ajax({
url: '/affairResult/resultBoardJson', url: '/affairPlan/planViewModal',
data: {
planKey: $(this).find(".planKey").val(),
modalType: "viewOnly"
},
type: 'GET', type: 'GET',
data: {resultKey: $(this).attr('data-resultkey')}, dataType:"html",
dataType:"json", success: function(html){
success: function(data){ $("#relationReportContent").empty().append(html)
data.planPrice = priceNumberToKorean(data.planPrice); $("#relationReportModal").modal('show');
data.usePrice = priceNumberToKorean(data.usePrice);
for(let i=0; i<data.clearInfoList.length; i++){
data.clearInfoList[i].price = "₩ "+data.clearInfoList[i].price.toLocaleString('ko-KR')
}
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "청산 보고서 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "resultBoard";
form.json.value = JSON.stringify(data);
form.method = "post";
form.submit();
}, },
error:function(e){ error:function(e){
ajaxErrorAction(e); ajaxErrorAction(e);
} }
}); });
}
}) })
$(document).on('click', '.affairTr', function (event){
function priceNumberToKorean(price){ const target = event.target;
const koreanNumber = ['', '일','이','삼','사','오','육','칠','팔','구']; if(!(target.className === "rowChkBox")){
const tenThousandUnit = ['', '만', '억', '조']; $.ajax({
const tenUnit = ['', '십', '백', '천']; url: '/affair/affairViewModal',
var answer = ''; data: {
var unit = 10000; affairKey: $(this).find(".affairKey").val(),
var index = 0; modalType: "viewOnly"
var division = Math.pow(unit, index); },
type: 'GET',
while (Math.floor(price / division) > 0) { dataType: "html",
const mod = Math.floor(price % (division * unit) / division); success: function (html) {
if(mod) { $("#relationReportContent").empty().append(html)
const modToArray = mod.toString().split(''); $("#relationReportModal").modal('show');
const modLength = modToArray.length - 1; },
const toKorean = modToArray.reduce((a, v, i) => { error: function (e) {
a+= `${koreanNumber[v*1]}${tenUnit[modLength - i]}`; ajaxErrorAction(e);
return a;
}, '');
answer = `${toKorean}${tenThousandUnit[index]} `+ answer;
} }
division = Math.pow(unit, ++index); });
} }
return "壹金 "+answer+"원 整 (₩ "+price.toLocaleString('ko-KR')+")"; })
}
function getResultViewModal(resultKey){ function getResultViewModal(resultKey){
$.ajax({ $.ajax({
url: '/affairResult/resultViewModal', url: '/affairResult/resultViewModal',

View File

@ -3,7 +3,8 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affair/affairMgt.js}"></script> <script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affairMgt.js}"></script>
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/print.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>

View File

@ -332,7 +332,8 @@
</th:block> </th:block>
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <th:block th:if="${modalType ne 'viewOnly'}">
<div class="modal-footer bg-light">
<th:block th:if="${affair.affairStatus eq 'DST006'}"> <th:block th:if="${affair.affairStatus eq 'DST006'}">
<button type="button" class="btn btn-secondary" id="printBtn" th:data-affairkey="${affair.affairKey}">인쇄</button> <button type="button" class="btn btn-secondary" id="printBtn" th:data-affairkey="${affair.affairKey}">인쇄</button>
</th:block> </th:block>
@ -351,4 +352,5 @@
</th:block> </th:block>
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
</th:block>

View File

@ -3,7 +3,8 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/plan/planMgt.js}"></script> <script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/planMgt.js}"></script>
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/print.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>

View File

@ -163,6 +163,7 @@
</div> </div>
</div> </div>
</div> </div>
<th:block th:if="${modalType ne 'viewOnly'}">
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<th:block th:if="${plan.planState eq 'DST006'}"> <th:block th:if="${plan.planState eq 'DST006'}">
<button type="button" class="btn btn-secondary" id="printBtn" th:data-plankey="${plan.planKey}">인쇄</button> <button type="button" class="btn btn-secondary" id="printBtn" th:data-plankey="${plan.planKey}">인쇄</button>
@ -174,3 +175,4 @@
</th:block> </th:block>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>--> <!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div> </div>
</th:block>

View File

@ -23,6 +23,7 @@
</thead> </thead>
<tbody> <tbody>
<tr class="affairTr" th:each="affair:${affairList}"> <tr class="affairTr" th:each="affair:${affairList}">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<td><input type="checkbox" class="rowChkBox" th:value="${affair.affairKey}"></td> <td><input type="checkbox" class="rowChkBox" th:value="${affair.affairKey}"></td>
<th:block th:each="commonCode:${session.commonCode.get('DC01')}"> <th:block th:each="commonCode:${session.commonCode.get('DC01')}">
<td th:if="${affair.affairType1 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${affair.affairType1 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>

View File

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header bg-dark">
<h5 class="modal-title text-white" id="affairListModalLabel">계획목록</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="planListBody">
<table class="table table-sm table-hover">
<thead>
<tr>
<th><input type="checkbox" class="allChk"></th>
<th>제목</th>
<th>시행일자</th>
<th>작성일</th>
<th>첨부파일</th>
<th>상태</th>
</tr>
</thead>
<tbody>
<tr class="planTr" th:each="plan:${planList}">
<input type="hidden" class="planKey" th:value="${plan.planKey}">
<td><input type="checkbox" class="rowChkBox" th:value="${plan.planKey}"></td>
<td class="title" th:text="${plan.contentTitle}"></td>
<td class="planDt" th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>
<td class="wrtDt" th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${plan.fileCnt eq null?'파일 없음':#strings.concat(plan.fileCnt,' 건')}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('DST')}">
<th:block th:if="${plan.planState eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer bg-light">
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
<button type="button" class="btn btn-primary" id="getPlanBtn">불러오기</button>
</div>

View File

@ -22,7 +22,7 @@
<button class="nav-link" id="resultReportTab" data-bs-toggle="tab" data-bs-target="#resultReportTabPanel" type="button" role="tab" aria-controls="resultReportTabPanel" aria-selected="false">결과보고서</button> <button class="nav-link" id="resultReportTab" data-bs-toggle="tab" data-bs-target="#resultReportTabPanel" type="button" role="tab" aria-controls="resultReportTabPanel" aria-selected="false">결과보고서</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" id="affairListTab" data-bs-toggle="tab" data-bs-target="#affairListTabPanel" type="button" role="tab" aria-controls="affairListTabPanel" aria-selected="false">견문목록&증빙자료</button> <button class="nav-link" id="reportListTab" data-bs-toggle="tab" data-bs-target="#reportListTabPanel" type="button" role="tab" aria-controls="reportListTabPanel" aria-selected="false">연관보고서&증빙자료</button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0" id="configInfo"> <div class="tab-content bg-white border border-top-0" id="configInfo">
@ -242,7 +242,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="tab-pane fade p-2" id="affairListTabPanel" role="tabpanel" aria-labelledby="affairListTab" tabindex="0"> <div class="tab-pane fade p-2" id="reportListTabPanel" role="tabpanel" aria-labelledby="reportListTab" tabindex="0">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">활동기간</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">활동기간</label>
<div class="col-sm-4"> <div class="col-sm-4">
@ -251,13 +251,58 @@
<input type="text" class="form-control form-control-sm workEndDtCopy" th:value="${#temporals.format(result.workEndDt, 'yyyy-MM-dd')}" readonly> <input type="text" class="form-control form-control-sm workEndDtCopy" th:value="${#temporals.format(result.workEndDt, 'yyyy-MM-dd')}" readonly>
</div> </div>
</div> </div>
</div>
<div class="row mb-1 justify-content-center">
<div class="col-12">
<div class="row">
<div class="col-auto align-middle">
<h5 class="my-1"><i class="bi bi-square-fill"></i>계획목록</h5>
</div>
<div class="col-auto">
<input type="button" class="btn btn-sm btn-outline-primary" id="planModalBtn" value="불러오기">
</div>
</div>
</div>
<div class="col-12" id="planListDiv">
<table class="table table-sm table-hover">
<colgroup>
<col style="width: 15%">
<col style="width: 85%">
</colgroup>
<thead>
<tr>
<th>시행일자</th>
<th>제목</th>
</tr>
</thead>
<tbody id="planListTbody">
<tr class="planTr" th:each="plan:${result.planBoardList}">
<input type="hidden" class="planKey" th:value="${plan.planKey}">
<td th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>
<td th:text="${plan.contentTitle}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row mb-1 justify-content-center">
<div class="col-12">
<div class="row">
<div class="col-auto align-middle">
<h5 class="my-1"><i class="bi bi-square-fill"></i>견문목록</h5>
</div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-sm btn-outline-primary" id="affairModalBtn" value="불러오기"> <input type="button" class="btn btn-sm btn-outline-primary" id="affairModalBtn" value="불러오기">
</div> </div>
</div> </div>
<div class="row mb-1 justify-content-center"> </div>
<div class="col-11" id="affairListDiv"> <div class="col-12" id="affairListDiv">
<table class="table table-sm table-hover"> <table class="table table-sm table-hover">
<colgroup>
<col style="width: 15%">
<col style="width: 70%">
<col style="width: 15%">
</colgroup>
<thead> <thead>
<tr> <tr>
<th>작성일자</th> <th>작성일자</th>
@ -266,7 +311,7 @@
</tr> </tr>
</thead> </thead>
<tbody id="affairListTbody"> <tbody id="affairListTbody">
<tr class="affairViewTr" th:each="affair:${result.affairBoardList}"> <tr class="affairTr" th:each="affair:${result.affairBoardList}">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}"> <input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd')}"></td> <td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd')}"></td>
<td th:text="${affair.title}"></td> <td th:text="${affair.title}"></td>
@ -280,7 +325,7 @@
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="fileInputer" class="col-sm-2 col-form-label col-form-label-sm text-center">증빙자료</label> <label for="fileInputer" class="col-sm-2 col-form-label col-form-label-sm text-center">증빙자료</label>
<div class="col-sm-9" style="min-height: 70px;"> <div class="col-sm-10" style="min-height: 70px;">
<div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv"> <div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv">
<th:block th:if="${#arrays.isEmpty(result.fileList)}"> <th:block th:if="${#arrays.isEmpty(result.fileList)}">
<br>파일을 업로드 해주세요. <br>파일을 업로드 해주세요.

View File

@ -3,7 +3,8 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/result/resultMgt.js}"></script> <script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/resultMgt.js}"></script>
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/print.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
@ -191,6 +192,13 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="planListModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="planListModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="planListModalContent">
</div>
</div>
</div>
<div class="modal fade" id="resultViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="resultViewModalLabel" aria-hidden="true"> <div class="modal fade" id="resultViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="resultViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable"> <div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="resultViewBody"> <div class="modal-content" id="resultViewBody">
@ -198,6 +206,14 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="relationReportModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="relationReportModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="relationReportContent">
</div>
</div>
</div>
<div class="d-none"> <div class="d-none">
<form id="printForm"> <form id="printForm">
<input type="hidden" name="crfName"> <input type="hidden" name="crfName">

View File

@ -153,7 +153,41 @@
<div class="tab-pane fade p-2" id="affairListViewTabPanel" role="tabpanel" aria-labelledby="affairListViewTab" tabindex="0"> <div class="tab-pane fade p-2" id="affairListViewTabPanel" role="tabpanel" aria-labelledby="affairListViewTab" tabindex="0">
<div class="row"> <div class="row">
<div class="col-8"> <div class="col-8">
<div class="row">
<div class="col-12">
<h5 class="my-1"><i class="bi bi-square-fill"></i>계획목록</h5>
</div>
<div class="col-12">
<table class="table table-sm table-hover"> <table class="table table-sm table-hover">
<colgroup>
<col style="width: 15%">
<col style="width: 85%">
</colgroup>
<thead>
<tr>
<th>시행일자</th>
<th>제목</th>
</tr>
</thead>
<tbody>
<tr class="planTr" th:each="plan:${result.planBoardList}">
<input type="hidden" class="planKey" th:value="${plan.planKey}">
<td th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>
<td th:text="${plan.contentTitle}"></td>
</tr>
</tbody>
</table>
</div>
<div class="col-12">
<h5 class="my-1"><i class="bi bi-square-fill"></i>견문목록</h5>
</div>
<div class="col-12">
<table class="table table-sm table-hover">
<colgroup>
<col style="width: 15%">
<col style="width: 70%">
<col style="width: 15%">
</colgroup>
<thead> <thead>
<tr> <tr>
<th>작성일자</th> <th>작성일자</th>
@ -162,17 +196,21 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="affairViewTr" th:each="affair:${result.affairBoardList}"> <tr class="affairTr" th:each="affair:${result.affairBoardList}">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}"> <input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd')}"></td> <td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd')}"></td>
<td th:text="${affair.title}"></td> <td th:text="${affair.title}"></td>
<td>
<th:block th:each="ratingCode:${session.commonCode.get('AAR')}"> <th:block th:each="ratingCode:${session.commonCode.get('AAR')}">
<td class="affairRate" th:if="${ratingCode.itemCd eq affair.affairRate}" th:text="${#strings.concat(ratingCode.itemValue, (affair.organUp eq 'T'?'(상보)':''))}"></td> <th:block class="affairRate" th:if="${ratingCode.itemCd eq affair.affairRate}" th:text="${#strings.concat(ratingCode.itemValue, (affair.organUp eq 'T'?'(상보)':''))}"></th:block>
</th:block> </th:block>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
<div class="col-4"> <div class="col-4">
<table class="table"> <table class="table">
<thead> <thead>

View File

@ -3,7 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/sri/sri.js}"></script> <script type="text/javascript" th:src="@{/js/faRpt/sri.js}"></script>
<script type="text/javascript" th:src="@{/js/modal/userModal.js}"></script> <script type="text/javascript" th:src="@{/js/modal/userModal.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">