운영계획 페이지 작업중.

강석 최 2022-09-08 14:28:20 +09:00
parent 199697a3c5
commit f825579952
8 changed files with 165 additions and 81 deletions

View File

@ -22,9 +22,10 @@ public class FpiMgtController { // 외사경찰견문관리
public ModelAndView monthPlanPage(@AuthenticationPrincipal UserInfo loginUser, BoardPlan boardPlan){
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/monthPlan/monthPlan");
mav.addObject("loginUser", loginUser);
boardPlan.setWrtNm(loginUser.getUserNm());
boardPlan.setQueryInfo();
mav.addObject("monthPlanList", null);
boardPlan.setContentCnt(0);
mav.addObject("planList", monthPlanService.selectBoardPlanList(boardPlan));
boardPlan.setContentCnt(monthPlanService.selectBoardPlanListCnt(boardPlan));
boardPlan.setPaginationInfo();
mav.addObject("searchParams", boardPlan);
return mav;

View File

@ -1,6 +1,7 @@
package com.dbnt.faisp.fpiMgt.monthPlan;
import com.dbnt.faisp.fpiMgt.monthPlan.mapper.MonthPlanMapper;
import com.dbnt.faisp.fpiMgt.monthPlan.model.BoardPlan;
import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanFile;
import com.dbnt.faisp.fpiMgt.monthPlan.model.PlanMainInfo;
@ -20,6 +21,7 @@ public class MonthPlanService {
private final BoardPlanRepository boardPlanRepository;
private final PlanFileRepository planFileRepository;
private final PlanMainInfoRepository planMainInfoRepository;
private final MonthPlanMapper monthPlanMapper;
public BoardPlan selectBoardPlan(Integer planKey) {
BoardPlan savedPlan = boardPlanRepository.findById(planKey).orElse(null);
@ -47,4 +49,12 @@ public class MonthPlanService {
}
return planSeq;
}
public List<BoardPlan> selectBoardPlanList(BoardPlan boardPlan) {
return monthPlanMapper.selectBoardPlanList(boardPlan);
}
public Integer selectBoardPlanListCnt(BoardPlan boardPlan) {
return monthPlanMapper.selectBoardPlanListCnt(boardPlan);
}
}

View File

@ -0,0 +1,14 @@
package com.dbnt.faisp.fpiMgt.monthPlan.mapper;
import com.dbnt.faisp.fpiMgt.monthPlan.model.BoardPlan;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface MonthPlanMapper {
List<BoardPlan> selectBoardPlanList(BoardPlan boardPlan);
Integer selectBoardPlanListCnt(BoardPlan boardPlan);
}

View File

@ -1,16 +0,0 @@
package com.dbnt.faisp.fpiMgt.monthPlan.mapper;
import com.dbnt.faisp.menuMgt.model.MenuMgt;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface fpiMgtMapper {
List<MenuMgt> selectMenuMgtList(MenuMgt menuMgt);
Integer selectMenuMgtListCnt(MenuMgt menuMgt);
List<MenuMgt> selectAccessMenuListWhereUserSeq(Integer userSeq);
}

View File

@ -49,7 +49,7 @@ public class BoardPlan extends BaseModel {
@Column(name = "wrt_nm")
private String wrtNm;
@Column(name = "wrt_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime wrtDt;
@Transient

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dbnt.faisp.fpiMgt.monthPlan.mapper.MonthPlanMapper">
<select id="selectBoardPlanList" resultType="BoardPlan" parameterType="BoardPlan">
select a.plan_key,
a.content_title,
a.plan_state,
a.plan_dt,
a.section_apprv,
a.head_apprv,
a.wrt_organ,
a.wrt_nm,
a.wrt_dt,
b.file_seq
from board_plan a
left outer join (select plan_key,
max(file_seq) as file_seq
from plan_file
group by plan_key) b
on a.plan_key = b.plan_key
<where>
<if test='wrtNm != null and wrtNm != ""'>
and a.wrt_nm = #{wrtNm}
</if>
</where>
order by plan_key desc
limit #{rowCnt} offset #{firstIndex}
</select>
<select id="selectBoardPlanListCnt" resultType="int" parameterType="BoardPlan">
select count(*)
from board_plan a
<where>
<if test='wrtNm != null and wrtNm != ""'>
and a.wrt_nm = #{wrtNm}
</if>
</where>
</select>
</mapper>

View File

@ -13,6 +13,18 @@
<div class="row mx-0">
<div class="col-12 card text-center">
<div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="monthPlanTab" data-bs-toggle="tab" data-bs-target="#monthPlanPanel" type="button" role="tab" aria-controls="monthPlanPanel" aria-selected="true">내 월간 계획</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="apprvStayTab" data-bs-toggle="tab" data-bs-target="#apprvStayPanel" type="button" role="tab" aria-controls="apprvStayPanel" aria-selected="false">결재대기목록</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="apprvCommitTab" data-bs-toggle="tab" data-bs-target="#apprvCommitPanel" type="button" role="tab" aria-controls="apprvCommitPanel" aria-selected="false">결재처리목록</button>
</li>
</ul>
<div class="tab-content border border-top-0 p-2" id="planContent">
<form method="get" th:action="@{/menuMgt/menuMgtPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
@ -38,13 +50,33 @@
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-striped">
<table class="table table-hover">
<thead>
<tr>
<th><input type="checkbox" class="allChk"></th>
<th></th>
<th>제목</th>
<th>시행일자</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>상태</th>
</tr>
</thead>
<tbody>
<tr th:each="plan:${planList}">
<td><input type="checkbox"></td>
<td th:text="${plan.contentTitle}"></td>
<td th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>
<td th:text="${plan.wrtNm}"></td>
<td th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td></td>
<td th:if="${plan.sectionApprv eq 'T'}">계장결재</td>
<td th:if="${plan.sectionApprv eq 'F'}">계장반려</td>
<td th:if="${plan.headApprv eq 'T'}">부장결재</td>
<td th:if="${plan.headApprv eq 'F'}">부장반려</td>
<td th:if="${plan.planState eq 'T'}">임시저장</td>
<td th:if="${#strings.isEmpty(plan.sectionApprv) and #strings.isEmpty(plan.headApprv) and plan.planState eq 'S'}">결재대기</td>
</tr>
</tbody>
</table>
</div>
@ -86,6 +118,7 @@
</div>
</div>
</div>
</div>
</main>
<div class="modal fade" id="planEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="planEditModalLabel" aria-hidden="true">

View File

@ -4,15 +4,16 @@
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="planKey" th:value="${plan.planKey}">
<input type="hidden" name="wrtOrgan" th:value="${plan.wrtOrgan}">
<input type="hidden" name="planState" id="planState" th:value="${plan.planState}">
<div class="mb-3 row">
<label for="wrtNm" class="col-sm-2 col-form-label text-center">작성자</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="wrtNm" name="wrtNm" th:value="${plan.wrtNm}" readonly>
</div>
<label for="wrdDt" class="col-sm-2 col-form-label text-center">작성일</label>
<label for="wrtDt" class="col-sm-2 col-form-label text-center">작성일</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="wrdDt" name="wrdDt" th:value="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
<input type="text" class="form-control" id="wrtDt" name="wrtDt" th:value="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
</div>
<label for="planDt" class="col-sm-2 col-form-label text-center">시행일자</label>
<div class="col-sm-2">