견문 평가 작업중.

강석 최 2022-09-27 18:24:25 +09:00
parent a6f69d3e5c
commit 4b65f8d699
13 changed files with 252 additions and 85 deletions

View File

@ -2,6 +2,7 @@ package com.dbnt.faisp.fpiMgt.affair;
import com.dbnt.faisp.authMgt.service.AuthMgtService; import com.dbnt.faisp.authMgt.service.AuthMgtService;
import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard; import com.dbnt.faisp.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.fpiMgt.affair.model.AffairRating;
import com.dbnt.faisp.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.fpiMgt.affair.service.AffairService;
import com.dbnt.faisp.userInfo.model.UserInfo; import com.dbnt.faisp.userInfo.model.UserInfo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -186,11 +187,17 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
return affairService.saveAffairBoard(affairBoard, deleteFileSeq); return affairService.saveAffairBoard(affairBoard, deleteFileSeq);
} }
/*@PostMapping("/affairStateChange") @PostMapping("/affairStateChange")
public Integer affairStateChange(@AuthenticationPrincipal UserInfo loginUser, AffairApprv apprv){ public Integer affairStateChange(@AuthenticationPrincipal UserInfo loginUser, AffairRating rating){
apprv.setUserSeq(loginUser.getUserSeq()); String apprvType = "section";
apprv.setUserNm(loginUser.getUserNm()); if(rating.getHeadApprv() == null){
apprv.setSaveDt(LocalDateTime.now()); rating.setSectionNm(loginUser.getUserNm());
return affairService.affairStateChange(apprv); rating.setSectionApprvDt(LocalDateTime.now());
}*/ }else{
apprvType = "head";
rating.setHeadNm(loginUser.getUserNm());
rating.setHeadApprvDt(LocalDateTime.now());
}
return affairService.affairStateChange(apprvType, rating);
}
} }

View File

@ -56,6 +56,11 @@ public class AffairBoard extends BaseModel {
@Column(name = "report_dt") @Column(name = "report_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate reportDt; private LocalDate reportDt;
@Column(name = "auto_delete")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate autoDelete;
@Column(name = "view_status")
private String viewStatus;
@Transient @Transient

View File

@ -6,6 +6,7 @@ import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@ -24,12 +25,16 @@ public class AffairRating{
private String ratingOrgan; private String ratingOrgan;
@Column(name = "section_nm") @Column(name = "section_nm")
private String sectionNm; private String sectionNm;
@Column(name = "section_apprv_dt")
private LocalDateTime sectionApprvDt;
@Column(name = "section_apprv") @Column(name = "section_apprv")
private String sectionApprv; private String sectionApprv;
@Column(name = "section_etc") @Column(name = "section_etc")
private String sectionEtc; private String sectionEtc;
@Column(name = "head_nm") @Column(name = "head_nm")
private String headNm; private String headNm;
@Column(name = "head_apprv_dt")
private LocalDateTime headApprvDt;
@Column(name = "head_apprv") @Column(name = "head_apprv")
private String headApprv; private String headApprv;
@Column(name = "head_etc") @Column(name = "head_etc")

View File

@ -5,8 +5,7 @@ import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.fpiMgt.affair.mapper.AffairMapper; import com.dbnt.faisp.fpiMgt.affair.mapper.AffairMapper;
import com.dbnt.faisp.fpiMgt.affair.model.*; import com.dbnt.faisp.fpiMgt.affair.model.*;
import com.dbnt.faisp.fpiMgt.affair.repository.*; import com.dbnt.faisp.fpiMgt.affair.repository.*;
import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanApprv; import com.dbnt.faisp.userInfo.model.UserInfo;
import com.dbnt.faisp.fpiMgt.affairPlan.model.PlanBoard;
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;
@ -45,6 +44,15 @@ public class AffairService extends BaseService { // 견문보고
@Transactional @Transactional
public Integer saveAffairBoard(AffairBoard affair, List<Integer> deleteFileSeq){ public Integer saveAffairBoard(AffairBoard affair, List<Integer> deleteFileSeq){
Integer affairKey = affairBoardRepository.save(affair).getAffairKey(); Integer affairKey = affairBoardRepository.save(affair).getAffairKey();
if(affair.getAffairStatus().equals("DST002")){
AffairRating rating = affairRatingRepository.findById(new AffairRating.AffairRatingId(affairKey,affair.getWrtOrgan())).orElse(null);
if(rating == null){
rating = new AffairRating();
rating.setAffairKey(affairKey);
rating.setRatingOrgan(affair.getWrtOrgan());
affairRatingRepository.save(rating);
}
}
String[] hashTagAry = affair.getHashTags().split(" "); String[] hashTagAry = affair.getHashTags().split(" ");
if(hashTagAry.length>0){ if(hashTagAry.length>0){
saveHashTagLink(affairKey, hashTagAry); saveHashTagLink(affairKey, hashTagAry);
@ -106,4 +114,23 @@ public class AffairService extends BaseService { // 견문보고
affairFileRepository.save(fileInfo); affairFileRepository.save(fileInfo);
} }
} }
public Integer affairStateChange(String apprvType, AffairRating rating) {
AffairRating savedRating = affairRatingRepository.findById(new AffairRating.AffairRatingId(rating.getAffairKey(), rating.getRatingOrgan())).orElse(null);
if(savedRating != null){
if(apprvType.equals("section")){
savedRating.setSectionNm(rating.getSectionNm());
savedRating.setSectionApprvDt(rating.getSectionApprvDt());
savedRating.setSectionApprv(rating.getSectionApprv());
savedRating.setSectionEtc(rating.getSectionEtc());
}else{
savedRating.setHeadNm(rating.getHeadNm());
savedRating.setHeadApprvDt(rating.getHeadApprvDt());
savedRating.setHeadApprv(rating.getHeadApprv());
savedRating.setHeadEtc(rating.getHeadEtc());
}
affairRatingRepository.save(savedRating);
}
return rating.getAffairKey();
}
} }

View File

@ -21,7 +21,7 @@ spring.datasource.username=dbnt0031
spring.datasource.password=dbnt0928! spring.datasource.password=dbnt0928!
#jpa #jpa
spring.jpa.show-sql=true spring.jpa.show-sql=false
spring.jpa.generate-ddl=false spring.jpa.generate-ddl=false
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

View File

@ -21,13 +21,11 @@
<if test='affairStatus != null and affairStatus != ""'> <if test='affairStatus != null and affairStatus != ""'>
and a.affair_status = #{affairStatus} and a.affair_status = #{affairStatus}
</if> </if>
<if test='dateSelector == "wrtDt"'> <if test='startDate != null and startDate != ""'>
<if test='startDate != null and startDate != ""'> and a.wrt_dt >= #{startDate}::date
and a.wrt_dt >= #{startDate}::date </if>
</if> <if test='endDate != null and endDate != ""'>
<if test='endDate != null and endDate != ""'> and a.wrt_dt &lt;= #{endDate}::date+1
and a.wrt_dt &lt;= #{endDate}::date
</if>
</if> </if>
<if test="downOrganCdList != null"> <if test="downOrganCdList != null">
and a.wrt_organ in and a.wrt_organ in
@ -35,6 +33,26 @@
#{organCd} #{organCd}
</foreach> </foreach>
</if> </if>
<if test='userType != null and userType != ""'>
<if test='userType == "normalStayList"'>
and a.affair_status in ('DST002', 'DST004')
</if>
<if test='userType == "normalCommitList"'>
and a.affair_status in ('DST003', 'DST005', 'DST006')
</if>
<if test='userType == "sectionCommitList"'>
and a.affair_status in ('DST003', 'DST004', 'DST005', 'DST006')
</if>
<if test='userType == "headCommitList"'>
and a.affair_status in ('DST003', 'DST005', 'DST006')
</if>
<if test='userType == "managerStayList"'>
and a.affair_status in ('DST002', 'DST004')
</if>
<if test='userType == "managerCommitList"'>
and a.affair_status in ('DST003', 'DST005', 'DST006')
</if>
</if>
</where> </where>
</sql> </sql>
<select id="selectAffairBoardList" resultType="AffairBoard" parameterType="AffairBoard"> <select id="selectAffairBoardList" resultType="AffairBoard" parameterType="AffairBoard">

View File

@ -26,7 +26,7 @@
and a.plan_dt >= #{startDate}::date and a.plan_dt >= #{startDate}::date
</if> </if>
<if test='endDate != null and endDate != ""'> <if test='endDate != null and endDate != ""'>
and a.plan_dt &lt;= #{endDate}::date and a.plan_dt &lt;= #{endDate}::date+1
</if> </if>
</if> </if>
<if test='dateSelector == "wrtDt"'> <if test='dateSelector == "wrtDt"'>
@ -34,7 +34,7 @@
and a.wrt_dt >= #{startDate}::date and a.wrt_dt >= #{startDate}::date
</if> </if>
<if test='endDate != null and endDate != ""'> <if test='endDate != null and endDate != ""'>
and a.wrt_dt &lt;= #{endDate}::date and a.wrt_dt &lt;= #{endDate}::date+1
</if> </if>
</if> </if>
<if test="downOrganCdList != null"> <if test="downOrganCdList != null">

View File

@ -13,7 +13,7 @@
and a.wrt_dt >= #{startDate}::date and a.wrt_dt >= #{startDate}::date
</if> </if>
<if test='endDate != null and endDate != ""'> <if test='endDate != null and endDate != ""'>
and a.wrt_dt &lt;= #{endDate}::date and a.wrt_dt &lt;= #{endDate}::date+1
</if> </if>
and a.public_key in ( and a.public_key in (
<if test="downOrganCdList != null"> <if test="downOrganCdList != null">

View File

@ -30,3 +30,7 @@
border-left: 1px solid; border-left: 1px solid;
border-right: 1px solid; border-right: 1px solid;
} }
.modal-xxl{
--bs-modal-width : 1440px;
}

View File

@ -28,6 +28,18 @@ $(document).on('click', '#editAffairBtn', function (){
getAffairEditModal(Number($("#affairViewBody").find("[name='affairKey']").val())); getAffairEditModal(Number($("#affairViewBody").find("[name='affairKey']").val()));
}) })
$(document).on('change', '#autoDeleteSelector', function (){
let deleteDt = "";
if(this.value !== ""){
const nowDt = new Date();
nowDt.setMonth(nowDt.getMonth()+Number(this.value));
deleteDt = nowDt.getFullYear()
+"-"+("0"+(nowDt.getMonth()+1)).slice(-2)
+"-"+("0"+nowDt.getDate()).slice(-2);
}
$("#autoDelete").val(deleteDt);
})
$(document).on('click', '#saveAffairBtn', function (){ $(document).on('click', '#saveAffairBtn', function (){
saveAffair('DST002') saveAffair('DST002')
}) })
@ -64,9 +76,13 @@ function getAffairEditModal(affairKey){
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko"
}); });
$("#autoDelete").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#content").summernote({ $("#content").summernote({
lang:'ko-KR', lang:'ko-KR',
height: 300, height: 270,
disableDragAndDrop: true, disableDragAndDrop: true,
toolbar: [ toolbar: [
['style', ['style']], ['style', ['style']],
@ -124,6 +140,30 @@ function contentCheck(){
alert("제목을 입력해주세요.") alert("제목을 입력해주세요.")
flag = false; flag = false;
} }
if(!$("#affairType1").val()){
alert("분야1을 입력해주세요.")
flag = false;
}
if(!$("#affairType2").val()){
alert("분야2을 입력해주세요.")
flag = false;
}
if(!$("#affairType3").val()){
alert("분야3을 입력해주세요.")
flag = false;
}
if(!$("#affairType4").val()){
alert("분야4을 입력해주세요.")
flag = false;
}
if(!$("#viewStatus").val()){
alert("공개여부를 입력해주세요.")
flag = false;
}
if(!$("#hashTags").val()){
alert("해시태그를 입력해주세요.")
flag = false;
}
flag = fileCheck(flag, files); flag = fileCheck(flag, files);
return flag; return flag;
} }

View File

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"> <html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="affairEditModalLabel" th:text="${affair.affairKey eq null?'월간 계획 작성':'월간 계획 수정'}"></h5> <h5 class="modal-title" id="affairEditModalLabel" th:text="${affair.affairKey eq null?'견문 작성':'견문 수정'}"></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="affairEditBody"> <div class="modal-body" id="affairEditBody">
@ -14,21 +14,36 @@
<input type="hidden" name="wrtUserSeq" th:value="${affair.wrtUserSeq}"> <input type="hidden" name="wrtUserSeq" th:value="${affair.wrtUserSeq}">
<input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}"> <input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}">
<div class="mb-3 row"> <div class="mb-3 row">
<label for="wrtUserNm" class="col-sm-1 col-form-label text-center">작성자</label> <label for="wrtUserNm" class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control" id="wrtUserNm" name="wrtUserNm" th:value="${affair.wrtUserNm}" readonly> <input type="text" class="form-control form-control-sm" id="wrtUserNm" name="wrtUserNm" th:value="${affair.wrtUserNm}" readonly>
</div> </div>
<label for="wrtDt" class="col-sm-1 col-form-label text-center">작성일시</label> <label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">작성일시</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control" id="wrtDt" name="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly> <input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
</div>
<label for="reportDt" class="col-sm-1 col-form-label text-center">보고일자</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="reportDt" name="reportDt" th:value="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}" readonly>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="affairType1" class="col-sm-1 col-form-label text-center">분야1</label> <label for="reportDt" class="col-sm-1 col-form-label col-form-label-sm text-center">보고일자</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="reportDt" name="reportDt" th:value="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}" readonly>
</div>
<label for="autoDelete" class="col-sm-1 col-form-label col-form-label-sm text-center">자동삭제</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="autoDelete" name="autoDelete" th:value="${affair.autoDelete}" readonly>
</div>
<label for="viewStatus" class="col-sm-1 col-form-label col-form-label-sm text-center">공개여부</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="viewStatus" name="viewStatus">
<option value="">선택</option>
<th:block th:each="code:${session.commonCode.get('AVS')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq affair.viewStatus}"></option>
</th:block>
</select>
</div>
</div>
<div class="mb-3 row">
<label for="affairType1" class="col-sm-1 col-form-label col-form-label-sm text-center">분야1</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="affairType1" name="affairType1"> <select class="form-select form-select-sm" id="affairType1" name="affairType1">
<option value="">선택</option> <option value="">선택</option>
@ -37,7 +52,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="affairType2" class="col-sm-1 col-form-label text-center">분야2</label> <label for="affairType2" class="col-sm-1 col-form-label col-form-label-sm text-center">분야2</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="affairType2" name="affairType2"> <select class="form-select form-select-sm" id="affairType2" name="affairType2">
<option value="">선택</option> <option value="">선택</option>
@ -46,7 +61,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="affairType3" class="col-sm-1 col-form-label text-center">분야3</label> <label for="affairType3" class="col-sm-1 col-form-label col-form-label-sm text-center">분야3</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="affairType3" name="affairType3"> <select class="form-select form-select-sm" id="affairType3" name="affairType3">
<option value="">선택</option> <option value="">선택</option>
@ -55,7 +70,7 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="affairType4" class="col-sm-1 col-form-label text-center">분야4</label> <label for="affairType4" class="col-sm-1 col-form-label col-form-label-sm text-center">분야4</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="affairType4" name="affairType4"> <select class="form-select form-select-sm" id="affairType4" name="affairType4">
<option value="">선택</option> <option value="">선택</option>
@ -66,32 +81,32 @@
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="title" class="col-sm-1 col-form-label text-center">제목</label> <label for="title" class="col-sm-1 col-form-label col-form-label-sm text-center">제목</label>
<div class="col-sm-11"> <div class="col-sm-11">
<input type="text" class="form-control" id="title" name="title" th:value="${affair.title}"> <input type="text" class="form-control form-control-sm" id="title" name="title" th:value="${affair.title}">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="hashTags" class="col-sm-1 col-form-label text-center">해시태그</label> <label for="title" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
<div class="col-sm-11">
<input type="text" class="form-control" id="hashTags" name="hashTags" th:value="${affair.hashTags}"
placeholder="띄어쓰기로 각 태그를 구분합니다. 한 태그 내에서는 띄어쓰기 없이 입력해주세요. ex)태그1 태그2">
</div>
</div>
<div class="mb-3 row">
<label for="title" class="col-sm-1 col-form-label text-center">내용</label>
<div class="col-sm-11"> <div class="col-sm-11">
<textarea id="content" name="content" th:utext="${affair.content}"></textarea> <textarea id="content" name="content" th:utext="${affair.content}"></textarea>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="etc" class="col-sm-1 col-form-label text-center">비고</label> <label for="hashTags" class="col-sm-1 col-form-label col-form-label-sm text-center">해시태그</label>
<div class="col-sm-11"> <div class="col-sm-11">
<input type="text" class="form-control" id="etc" name="etc" th:value="${affair.title}"> <input type="text" class="form-control form-control-sm" id="hashTags" name="hashTags" th:value="${affair.hashTags}"
placeholder="띄어쓰기로 각 태그를 구분합니다. 한 태그 내에서는 띄어쓰기 없이 입력해주세요. ex)태그1 태그2">
</div>
</div>
<div class="mb-3 row">
<label for="etc" class="col-sm-1 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-11">
<input type="text" class="form-control form-control-sm" id="etc" name="etc" th:value="${affair.title}">
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<label for="fileInputer" class="col-sm-1 col-form-label text-center">업로드<br>자료</label> <label for="fileInputer" class="col-sm-1 col-form-label col-form-label-sm text-center">업로드<br>자료</label>
<div class="col-sm-11" style="min-height: 70px;"> <div class="col-sm-11" 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(affair.fileList)}"> <th:block th:if="${#arrays.isEmpty(affair.fileList)}">

View File

@ -11,55 +11,71 @@
<input type="hidden" name="wrtOrgan" th:value="${affair.wrtOrgan}"> <input type="hidden" name="wrtOrgan" th:value="${affair.wrtOrgan}">
<input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}"> <input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}">
<div class="mb-3 row"> <div class="mb-3 row">
<label for="wrtUserNm" class="col-sm-1 col-form-label text-center">작성자</label> <label for="wrtUserNm" class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control border-0" id="wrtUserNm" name="wrtUserNm" th:value="${affair.wrtUserNm}" readonly> <input type="text" class="form-control form-control-sm border-0" id="wrtUserNm" name="wrtUserNm" th:value="${affair.wrtUserNm}" readonly>
</div> </div>
<label for="wrtDt" class="col-sm-1 col-form-label text-center">작성일시</label> <label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">작성일시</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control border-0" id="wrtDt" name="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly> <input type="text" class="form-control form-control-sm border-0" id="wrtDt" name="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
</div> </div>
<label for="reportDt" class="col-sm-1 col-form-label text-center">보고일자</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center"></label>
<div class="col-sm-2"> <div class="col-sm-2"></div>
<input type="text" class="form-control border-0" id="reportDt" name="reportDt" th:value="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}" readonly> <label for="affairStatus" class="col-sm-1 col-form-label col-form-label-sm text-center">상태</label>
</div>
<label for="affairStatus" class="col-sm-1 col-form-label text-center">상태</label>
<div class="col-sm-2"> <div class="col-sm-2">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<input type="text" class="form-control border-0" th:if="${commonCode.itemCd eq affair.affairStatus}" th:value="${commonCode.itemValue}" readonly> <input type="text" class="form-control form-control-sm border-0" th:if="${commonCode.itemCd eq affair.affairStatus}" th:value="${commonCode.itemValue}" readonly>
</th:block> </th:block>
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="affairType1" class="col-sm-1 col-form-label text-center">분야1</label> <label for="reportDt" class="col-sm-1 col-form-label col-form-label-sm text-center">보고일자</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm border-0" id="reportDt" name="reportDt" th:value="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}" readonly>
</div>
<label for="autoDelete" class="col-sm-1 col-form-label col-form-label-sm text-center">자동삭제</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm border-0" id="autoDelete" name="autoDelete" th:value="${#temporals.format(affair.autoDelete, 'yyyy-MM-dd')}" readonly>
</div>
<label for="viewStatus" class="col-sm-1 col-form-label col-form-label-sm text-center">공개여부</label>
<div class="col-sm-2">
<th:block th:each="code:${session.commonCode.get('AVS')}">
<th:block th:if="${code.itemCd eq affair.viewStatus}">
<input type="text" class="form-control form-control-sm border-0" id="viewStatus" th:value="${code.itemValue}">
</th:block>
</th:block>
</div>
</div>
<div class="mb-3 row">
<label for="affairType1" class="col-sm-1 col-form-label col-form-label-sm text-center">분야1</label>
<div class="col-sm-2"> <div class="col-sm-2">
<th:block th:each="code:${session.commonCode.get('DC01')}"> <th:block th:each="code:${session.commonCode.get('DC01')}">
<th:block th:if="${code.itemCd eq affair.affairType1}"> <th:block th:if="${code.itemCd eq affair.affairType1}">
<input type="text" class="form-control border-0" id="affairType1" th:value="${code.itemValue}"> <input type="text" class="form-control form-control-sm border-0" id="affairType1" th:value="${code.itemValue}">
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
<label for="affairType2" class="col-sm-1 col-form-label text-center">분야2</label> <label for="affairType2" class="col-sm-1 col-form-label col-form-label-sm text-center">분야2</label>
<div class="col-sm-2"> <div class="col-sm-2">
<th:block th:each="code:${session.commonCode.get('DC02')}"> <th:block th:each="code:${session.commonCode.get('DC02')}">
<th:block th:if="${code.itemCd eq affair.affairType2}"> <th:block th:if="${code.itemCd eq affair.affairType2}">
<input type="text" class="form-control border-0" id="affairType2" th:value="${code.itemValue}"> <input type="text" class="form-control form-control-sm border-0" id="affairType2" th:value="${code.itemValue}">
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
<label for="affairType3" class="col-sm-1 col-form-label text-center">분야3</label> <label for="affairType3" class="col-sm-1 col-form-label col-form-label-sm text-center">분야3</label>
<div class="col-sm-2"> <div class="col-sm-2">
<th:block th:each="code:${session.commonCode.get('DC03')}"> <th:block th:each="code:${session.commonCode.get('DC03')}">
<th:block th:if="${code.itemCd eq affair.affairType3}"> <th:block th:if="${code.itemCd eq affair.affairType3}">
<input type="text" class="form-control border-0" id="affairType3" th:value="${code.itemValue}"> <input type="text" class="form-control form-control-sm border-0" id="affairType3" th:value="${code.itemValue}">
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
<label for="affairType4" class="col-sm-1 col-form-label text-center">분야4</label> <label for="affairType4" class="col-sm-1 col-form-label col-form-label-sm text-center">분야4</label>
<div class="col-sm-2"> <div class="col-sm-2">
<th:block th:each="code:${session.commonCode.get('DC04')}"> <th:block th:each="code:${session.commonCode.get('DC04')}">
<th:block th:if="${code.itemCd eq affair.affairType4}"> <th:block th:if="${code.itemCd eq affair.affairType4}">
<input type="text" class="form-control border-0" id="affairType4" th:value="${code.itemValue}"> <input type="text" class="form-control form-control-sm border-0" id="affairType4" th:value="${code.itemValue}">
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
@ -70,13 +86,7 @@
<div class="row"> <div class="row">
<label for="title" class="col-sm-2 col-form-label text-center">제목</label> <label for="title" class="col-sm-2 col-form-label text-center">제목</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control border-0" id="title" name="title" th:value="${affair.title}" readonly> <input type="text" class="form-control form-control-sm border-0" id="title" name="title" th:value="${affair.title}" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="hashTags" class="col-sm-2 col-form-label text-center">해시태그</label>
<div class="col-sm-10">
<input type="text" class="form-control border-0" id="hashTags" name="hashTags" th:value="${affair.hashTags}" readonly>
</div> </div>
</div> </div>
<hr> <hr>
@ -86,10 +96,17 @@
<div th:utext="${affair.content}"></div> <div th:utext="${affair.content}"></div>
</div> </div>
</div> </div>
<hr>
<div class="mb-3 row">
<label for="hashTags" class="col-sm-2 col-form-label text-center">해시태그</label>
<div class="col-sm-10">
<input type="text" class="form-control form-control-sm border-0" id="hashTags" name="hashTags" th:value="${affair.hashTags}" readonly>
</div>
</div>
<div class="mb-3 row"> <div class="mb-3 row">
<label for="etc" class="col-sm-2 col-form-label text-center">비고</label> <label for="etc" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control border-0" id="etc" name="etc" th:value="${affair.etc}" readonly> <input type="text" class="form-control form-control-sm border-0" id="etc" name="etc" th:value="${affair.etc}" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -120,25 +137,54 @@
</table> </table>
</div> </div>
</div> </div>
<!--<th:block th:unless="${#lists.isEmpty(affair.apprvList)}"> <th:block th:unless="${#lists.isEmpty(affair.rateList)}">
<hr> <hr>
<th:block th:each="apprv,cnt:${affair.apprvList}"> <th:block th:each="rate:${affair.rateList}">
<div class="row justify-content-between py-1"> <div class="row py-1">
<div class="col-auto"> <div class="col-auto">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <input type="hidden" class="ratingOrganCd" th:value="${rate.ratingOrgan}">
<span th:if="${commonCode.itemCd eq apprv.state}" th:text="|결재결과: ${commonCode.itemValue}|"></span> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<p th:if="${commonCode.itemCd eq rate.ratingOrgan}" th:text="${commonCode.itemValue}"></p>
</th:block> </th:block>
<span th:text="|결재자: ${apprv.userNm}|"></span>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<span th:text="|결재일시: ${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}|"></span> <div class="row" th:if="${rate.sectionApprv eq null}">
</div> <div class="col-auto">
<div class="col-12"> <p>결재정보가 없습니다.</p>
<span th:text="|기타의견: ${apprv.etc}|"></span> </div>
</div>
<div class="row" th:if="${rate.sectionApprv ne null}">
<div class="col-auto">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<span th:if="${commonCode.itemCd eq rate.sectionApprv}" th:text="|결재결과: ${commonCode.itemValue}|"></span>
</th:block>
<span th:text="|결재자: ${rate.sectionNm}|"></span>
</div>
<div class="col-auto">
<span th:text="|결재일시: ${#temporals.format(rate.sectionApprvDt, 'yyyy-MM-dd HH:mm:ss')}|"></span>
</div>
<div class="col-12">
<span th:text="|기타의견: ${rate.sectionEtc}|"></span>
</div>
</div>
<div class="row" th:if="${rate.headApprv ne null}">
<div class="col-auto">
<th:block th:each="commonCode:${session.commonCode.get('AAR')}">
<span th:if="${commonCode.itemCd eq rate.affairRate}" th:text="|견문평가: ${commonCode.itemValue} ${rate.organ_up eq 'T'?'(상보)':''}|"></span>
</th:block>
<span th:text="|결재자: ${rate.headNm}|"></span>
</div>
<div class="col-auto">
<span th:text="|결재일시: ${#temporals.format(rate.headApprvDt, 'yyyy-MM-dd HH:mm:ss')}|"></span>
</div>
<div class="col-12">
<span th:text="|기타의견: ${rate.headEtc}|"></span>
</div>
</div>
</div> </div>
</div> </div>
</th:block> </th:block>
</th:block>--> </th:block>
</div> </div>
<div class="col-12" th:if="${apprvAuth ne null}"> <div class="col-12" th:if="${apprvAuth ne null}">
<form action="#" method="post" id="apprvForm"> <form action="#" method="post" id="apprvForm">

View File

@ -16,7 +16,7 @@
<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" th:classappend="${page eq 'main'?' active':''}" id="planTab" 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" th:classappend="${page eq 'stay'?' active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">결재대기목록</button>