강석 최 2023-01-28 14:27:45 +09:00
commit 1496759310
35 changed files with 227 additions and 134 deletions

View File

@ -251,7 +251,7 @@ public class EquipController {
if(cellPhone.getPhoneKey() != null) { if(cellPhone.getPhoneKey() != null) {
cellPhone = equipService.selectCellPhoneInfo(cellPhone.getPhoneKey()); cellPhone = equipService.selectCellPhoneInfo(cellPhone.getPhoneKey());
ParamMap param = new ParamMap(); ParamMap param = new ParamMap();
param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(cellPhone.getMgtOrgan())); param.put("opCd", cellPhone.getMgtOrgan());
mav.addObject("managerList", userInfoService.selectManagerList(param)); mav.addObject("managerList", userInfoService.selectManagerList(param));
mav.addObject("userSeq", loginUser.getUserSeq()); mav.addObject("userSeq", loginUser.getUserSeq());
} }
@ -276,7 +276,7 @@ public class EquipController {
public ModelAndView cellPhoneSelecBox(String ogCd) { public ModelAndView cellPhoneSelecBox(String ogCd) {
ModelAndView mav = new ModelAndView("equip/cellPhoneSelecBox"); ModelAndView mav = new ModelAndView("equip/cellPhoneSelecBox");
ParamMap param = new ParamMap(); ParamMap param = new ParamMap();
param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); param.put("ogCd", ogCd);
mav.addObject("managerList", userInfoService.selectManagerList(param)); mav.addObject("managerList", userInfoService.selectManagerList(param));
return mav; return mav;
} }

View File

@ -63,19 +63,20 @@ public class FipTargetController {
String[] headerNames2 = null; String[] headerNames2 = null;
if(header != null) { if(header != null) {
headerNames2 = new String[] { "", "", "", "상주 "+header.getString("mp_sangju")+"개소 "+header.getString("mp_sangju_total")+"명" headerNames2 = new String[] { "", "", "", "상주 "+header.getString("mp_sangju")+"개소 "+header.getString("mp_sangju_total")+"명"
,"비상주 "+header.getString("mp_bsangju")+"개소 "+header.getString("mp_bsangju_total")+"명" ,"비상주 "+header.getString("mp_bsangju")+"개소"
,"폐쇄 "+header.getString("mp_closure")+"개소 "+header.getString("mp_closure_total")+"명" ,"폐쇄 "+header.getString("mp_closure")+"개소"
,"상주 "+header.getString("pl_sangju")+"개소 "+header.getString("pl_sangju_total")+"명" ,"상주 "+header.getString("pl_sangju")+"개소 "+header.getString("pl_sangju_total")+"명"
,"비상주 "+header.getString("pl_bsangju")+"개소 "+header.getString("pl_bsangju_total")+"명" ,"비상주 "+header.getString("pl_bsangju")+"개소"
,"폐쇄 "+header.getString("pl_closure")+"개소 "+header.getString("pl_closure_total")+"명" ,"폐쇄 "+header.getString("pl_closure")+"개소"
, "", "", "", "" }; , "", "", "", "" };
}else { }else {
headerNames2 = new String[] { "", "","", "상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명","상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명", "", "", "", "" }; headerNames2 = new String[] { "", "","", "상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명","상주 0개소 0명","비상주 0개소 0명","폐쇄 0개소 0명", "", "", "", "" };
} }
String[] headerNames3 = { "", "","", "근무방법", "명", "비고", "근무방법", "명", "비고", "담당자", "임차료", "공공요금", "최종수정일" }; String[] headerNames3 = { "", "","", "근무방법",Integer.parseInt(header.getString("mp_sangju_total"))+Integer.parseInt(header.getString("mp_bsangju_total"))+Integer.parseInt(header.getString("mp_closure_total"))+"명", "비고", "근무방법",Integer.parseInt(header.getString("pl_sangju_total"))+Integer.parseInt(header.getString("pl_bsangju_total"))+Integer.parseInt(header.getString("pl_closure_total"))+"명", "비고", "담당자", "임차료", "공공요금", "최종수정일" };
String[] columnType = { "String", "String","String", "String", "int", "String", "String", "int", "String", "String", "String","String", "String"}; String[] columnType = { "String", "String","String", "String", "int", "String", "String", "int", "String", "String", "String","String", "String"};
String sheetName = "외사 분실 현황"; String sheetName = "외사 분실 현황";
String excelFileName = "외사 분실 현황"; String excelFileName = "외사 분실 현황";
partInfo.setPiState("DST007");
List<PartInfo> partInfoList= fipTargetService.selectPartInfoList(partInfo); List<PartInfo> partInfoList= fipTargetService.selectPartInfoList(partInfo);
try { try {
@ -94,6 +95,7 @@ public class FipTargetController {
partInfo.setContentCnt(fipTargetService.selectPartInfoListCnt(partInfo)); partInfo.setContentCnt(fipTargetService.selectPartInfoListCnt(partInfo));
partInfo.setPaginationInfo(); partInfo.setPaginationInfo();
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
mav.addObject("loginUser", loginUser.getUserSeq());
mav.addObject("searchParams", partInfo); mav.addObject("searchParams", partInfo);
return mav; return mav;
} }
@ -114,7 +116,7 @@ public class FipTargetController {
public ModelAndView equipTypeSelecBox(String ogCd) { public ModelAndView equipTypeSelecBox(String ogCd) {
ModelAndView mav = new ModelAndView("fipTarget/partInfoSelecBox"); ModelAndView mav = new ModelAndView("fipTarget/partInfoSelecBox");
ParamMap param = new ParamMap(); ParamMap param = new ParamMap();
param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(ogCd)); param.put("ogCd", ogCd);
mav.addObject("managerList", userInfoService.selectManagerList(param)); mav.addObject("managerList", userInfoService.selectManagerList(param));
return mav; return mav;
} }
@ -137,7 +139,7 @@ public class FipTargetController {
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
PartInfo partInfoView = fipTargetService.selectPartInfo(partInfo); PartInfo partInfoView = fipTargetService.selectPartInfo(partInfo);
ParamMap param = new ParamMap(); ParamMap param = new ParamMap();
param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(partInfoView.getMgtOrgan())); param.put("ogCd", partInfoView.getMgtOrgan());
mav.addObject("managerList", userInfoService.selectManagerList(param)); mav.addObject("managerList", userInfoService.selectManagerList(param));
partInfoView.setFileList(fipTargetService.selectPartInfoFile(partInfo)); partInfoView.setFileList(fipTargetService.selectPartInfoFile(partInfo));
mav.addObject("partInfo", partInfoView); mav.addObject("partInfo", partInfoView);
@ -180,7 +182,7 @@ public class FipTargetController {
mav.addObject("partInfo", partInfoHistory); mav.addObject("partInfo", partInfoHistory);
ParamMap param = new ParamMap(); ParamMap param = new ParamMap();
param.put("downOrganCdList", organConfigService.selectDownOrganListWhereUserOgCd(partInfoHistory.getMgtOrgan())); param.put("ogCd", partInfoHistory.getMgtOrgan());
mav.addObject("managerList", userInfoService.selectManagerList(param)); mav.addObject("managerList", userInfoService.selectManagerList(param));
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/target/partInfoList").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);

View File

@ -75,6 +75,8 @@ public class PartInfo extends BaseModel implements Serializable{
@Column(name = "wrt_dt") @Column(name = "wrt_dt")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime wrtDt; private LocalDateTime wrtDt;
@Column(name = "pi_state")
private String piState;
@Transient @Transient
private List<MultipartFile> multipartFileList; private List<MultipartFile> multipartFileList;

View File

@ -147,6 +147,7 @@ public class FipTargetService extends BaseService {
partTmp.setWrtOrgan(partInfo.getWrtOrgan()); partTmp.setWrtOrgan(partInfo.getWrtOrgan());
partTmp.setWrtTitle(partInfo.getWrtTitle()); partTmp.setWrtTitle(partInfo.getWrtTitle());
partTmp.setWrtDt(partInfo.getWrtDt()); partTmp.setWrtDt(partInfo.getWrtDt());
partTmp.setPiState(partInfo.getPiState());
partInfoRepository.save(partTmp); partInfoRepository.save(partTmp);
//업데이트하는 버전 파일조회 //업데이트하는 버전 파일조회
List<PartInfoFile> fileList = partInfoFileRepository.findByPiSeqAndVersionNoOrderByFileSeqAsc(partInfo.getPiSeq(),partInfo.getVersionNo()); List<PartInfoFile> fileList = partInfoFileRepository.findByPiSeqAndVersionNoOrderByFileSeqAsc(partInfo.getPiSeq(),partInfo.getVersionNo());

View File

@ -22,12 +22,17 @@
rent_price, rent_price,
utility_type, utility_type,
utility_price, utility_price,
wrt_dt wrt_user_seq,
wrt_dt,
pi_state
from part_info pi, from part_info pi,
(select pi_seq,max(version_no) as lastVer (select pi_seq,max(version_no) as lastVer
from part_info group by pi_seq) b from part_info group by pi_seq) b
where pi.pi_seq = b.pi_seq where pi.pi_seq = b.pi_seq
and pi.version_no = b.lastVer and pi.version_no = b.lastVer
<if test='piState != null and piState != ""'>
and pi_state = #{piState}
</if>
and mgt_organ in and mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")"> <foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item} #{item}
@ -172,7 +177,8 @@
from part_info pi, from part_info pi,
(select pi_seq,max(version_no) as lastVer (select pi_seq,max(version_no) as lastVer
from part_info group by pi_seq) b from part_info group by pi_seq) b
where pi.pi_seq = b.pi_seq where pi.pi_state = 'DST007'
and pi.pi_seq = b.pi_seq
and pi.version_no = b.lastVer and pi.version_no = b.lastVer
and mgt_organ in and mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")"> <foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
@ -218,7 +224,8 @@
rent_price, rent_price,
utility_type, utility_type,
utility_price, utility_price,
wrt_dt wrt_dt,
pi_state
from part_info pi, from part_info pi,
(select pi_seq,max(version_no) as lastVer (select pi_seq,max(version_no) as lastVer
from part_info group by pi_seq) b from part_info group by pi_seq) b
@ -271,6 +278,7 @@
from part_info group by pi_seq) b from part_info group by pi_seq) b
where pi.pi_seq = b.pi_seq where pi.pi_seq = b.pi_seq
and pi.version_no = b.lastVer and pi.version_no = b.lastVer
and pi.pi_state = 'DST007'
and mgt_organ in and mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")"> <foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item} #{item}

View File

@ -72,10 +72,8 @@
(select item_value from code_mgt where item_cd = title_cd) as title_cd, (select item_value from code_mgt where item_cd = title_cd) as title_cd,
user_nm user_nm
from user_info from user_info
where og_cd in where og_cd = #{ogCd}
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")"> and user_status = 'USC003'
#{item}
</foreach>
order by user_nm asc order by user_nm asc
</select> </select>

View File

@ -67,6 +67,14 @@
content: url("/img/bootstrap-icons-1.9.1/caret-down.svg"); content: url("/img/bootstrap-icons-1.9.1/caret-down.svg");
} }
.btn-toggle3::before {
content: url("/img/bootstrap-icons-1.9.1/chevron-right.svg");
filter: invert(100%);
}
.btn-toggle3[aria-expanded="true"]::before {
content: url("/img/bootstrap-icons-1.9.1/chevron-down.svg");
}
.f-invert{ .f-invert{
filter: invert(100%); filter: invert(100%);
} }
@ -214,3 +222,7 @@
top: 0px; top: 0px;
} }
.titleLeft {
text-align: left !important;
}

View File

@ -145,6 +145,18 @@ $(document).on('click', '#savePartInfo', function (){
} }
} }
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
savePartInfo('DST007');
}
})
$(document).on('click', '#saveTempBtn', function (){
if(confirm("임시저장 하시겠습니까?")){
savePartInfo('DST001');
}
})
function savePartInfo(piState){
$("#piState").val(piState);
document.getElementById("mgtOrgan").disabled = false; document.getElementById("mgtOrgan").disabled = false;
contentFade("in"); contentFade("in");
const formData = new FormData($("#partInfoSave")[0]); const formData = new FormData($("#partInfoSave")[0]);
@ -168,8 +180,7 @@ $(document).on('click', '#savePartInfo', function (){
contentFade("out"); contentFade("out");
} }
}) })
} }
})
$(document).on('click', '.partInfoTr', function (){ $(document).on('click', '.partInfoTr', function (){
const piSeq = (Number($(this).find(".piSeq").val())); const piSeq = (Number($(this).find(".piSeq").val()));
@ -238,9 +249,9 @@ $(document).on('change', '#mUtilityType', function (){
}); });
$(document).on('click', '#updatePartInfo', function (){ $(document).on('click', '#updatePartInfo', function (){
if($('#mgtOrgan').val() == ''){ if($('#mMgtOrgan').val() == ''){
alert('해경서를 선택해주세요'); alert('해경서를 선택해주세요');
$('#mgtOrgan').focus(); $('#mMgtOrgan').focus();
return false; return false;
} }
if($('#mPiUserSeq').val() == ''){ if($('#mPiUserSeq').val() == ''){
@ -282,7 +293,20 @@ $(document).on('click', '#updatePartInfo', function (){
} }
} }
if(confirm("수정하시겠습니까?")){ if(confirm("수정하시겠습니까?")){
document.getElementById("mgtOrgan").disabled = false; updatePartInfo('DST007');
}
})
$(document).on('click', '#mSaveTempBtn', function (){
if(confirm("임시저장 하시겠습니까?")){
updatePartInfo('DST001');
}
})
function updatePartInfo(piState){
document.getElementById("mMgtOrgan").disabled = false;
document.getElementById("mPiUserSeq").disabled = false;
$("#mPiState").val(piState);
contentFade("in"); contentFade("in");
const formData = new FormData($("#partInfoUpdate")[0]); const formData = new FormData($("#partInfoUpdate")[0]);
for(const file of files) { for(const file of files) {
@ -308,8 +332,7 @@ $(document).on('click', '#updatePartInfo', function (){
contentFade("out"); contentFade("out");
} }
}) })
} }
})
function showHistory(piSeq){ function showHistory(piSeq){
$.ajax({ $.ajax({

View File

@ -87,43 +87,46 @@
<table class="table table-sm table-bordered table-hover"> <table class="table table-sm table-bordered table-hover">
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th></th> <th>순번</th>
<th th:if="${searchParams.status ne 'receive'}">상태</th> <th>관서</th>
<th>분류</th> <th>분류</th>
<th>제목</th> <th>제목</th>
<th>관서</th> <th>첨부파일</th>
<th>열람수</th>
<th>부서</th> <th>부서</th>
<th>작성자</th> <th>작성자</th>
<th>작성일시</th> <th>작성일시</th>
<th>첨부파일</th> <th th:if="${searchParams.status ne 'receive'}">상태</th>
<th>열람수</th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider">
<tr class="faRptTr" th:each="faRpt:${faRptList}"> <tr class="faRptTr" th:each="faRpt,cnt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}"> <input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
<!--
<td><input type="checkbox" class="trChkBox"></td> <td><input type="checkbox" class="trChkBox"></td>
<td th:if="${faRpt.status ne 'receive'}"> -->
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <td th:text="${cnt.count}"></td>
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${faRpt.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
</td>
<td> <td>
<th:block th:each="commonCode:${session.commonCode.get('FRC')}"> <th:block th:each="commonCode:${session.commonCode.get('FRC')}">
<th:text th:if="${commonCode.itemCd eq faRpt.faRptType}" th:text="${commonCode.itemValue}"></th:text> <th:text th:if="${commonCode.itemCd eq faRpt.faRptType}" th:text="${commonCode.itemValue}"></th:text>
</th:block> </th:block>
</td> </td>
<td th:text="${faRpt.title}"></td> <td class="titleLeft" th:text="${faRpt.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:if="${faRpt.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}"> <th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${faRpt.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${faRpt.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
<td th:text="${faRpt.wrtUserNm}"></td> <td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td> <td th:if="${faRpt.status ne 'receive'}">
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -200,7 +203,9 @@
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<button type="button" class="btn btn-primary" id="getMenuBtn">추가</button> <button type="button" class="btn btn-primary" id="getMenuBtn">추가</button>
<!--
<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>
</div> </div>
</div> </div>

View File

@ -123,7 +123,9 @@
</form> </form>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<!--
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
-->
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button> <button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
<button type="button" class="btn btn-primary" id="saveFaRptBtn">송신</button> <button type="button" class="btn btn-primary" id="saveFaRptBtn">송신</button>
</div> </div>

View File

@ -119,5 +119,7 @@
<th:block th:if="${userSeq ne faRpt.wrtUserSeq}"> <th:block th:if="${userSeq ne faRpt.wrtUserSeq}">
<button type="button" class="btn btn-success" id="reSendBtn" th:data-farptkey="${faRpt.faRptKey}">회신</button> <button type="button" class="btn btn-success" id="reSendBtn" th:data-farptkey="${faRpt.faRptKey}">회신</button>
</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>

View File

@ -89,6 +89,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap" id="asfCovTable"> <table class="table table-sm table-hover table-bordered text-nowrap" id="asfCovTable">
<thead class="align-middle"> <thead class="align-middle">
<tr class="table-secondary"> <tr class="table-secondary">
<th rowspan="4">순번</th>
<th rowspan="4">사건번호</th> <th rowspan="4">사건번호</th>
<th rowspan="4">나포일시</th> <th rowspan="4">나포일시</th>
<th rowspan="4">선명</th> <th rowspan="4">선명</th>
@ -123,7 +124,8 @@
</thead> </thead>
<tbody class="table-group-divider align-middle"> <tbody class="table-group-divider align-middle">
<tr class="tr" th:each="asfcov:${asfCovList}" th:data-key="${asfcov.asfCovKey}"> <tr class="tr" th:each="asfcov,cnt:${asfCovList}" th:data-key="${asfcov.asfCovKey}">
<td th:text="${cnt.count}"></td>
<td th:text="${asfcov.caseNum}"></td> <td th:text="${asfcov.caseNum}"></td>
<td th:text="${asfcov.napoDt}"></td> <td th:text="${asfcov.napoDt}"></td>
<th:block th:if="${asfcov.pressurizedN eq 'A'}"> <th:block th:if="${asfcov.pressurizedN eq 'A'}">

View File

@ -338,7 +338,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap" id="cdsTable"> <table class="table table-sm table-hover table-bordered text-nowrap" id="cdsTable">
<thead class="align-middle"> <thead class="align-middle">
<tr class="table-secondary"> <tr class="table-secondary">
<!--<th rowspan="4">연번</th>--> <th rowspan="4">순번</th>
<th rowspan="4">나포일시</th> <th rowspan="4">나포일시</th>
<th rowspan="4">위반내용</th> <th rowspan="4">위반내용</th>
<th rowspan="4">위반장소</th> <th rowspan="4">위반장소</th>
@ -562,9 +562,10 @@
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle"> <tbody class="table-group-divider align-middle">
<th:block th:each="crackdownStatus:${crackdownStatusList}"> <th:block th:each="crackdownStatus,cnt:${crackdownStatusList}">
<tr class="tr" th:data-key="${crackdownStatus.cdsKey}"> <tr class="tr" th:data-key="${crackdownStatus.cdsKey}">
<!--<td th:text="${crackdownStatus.cdsKey}"></td>--> <!--<td th:text="${crackdownStatus.cdsKey}"></td>-->
<td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td>
<td class="text-wrap min-width-300"> <td class="text-wrap min-width-300">
<th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}"> <th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}">

View File

@ -165,7 +165,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap"> <table class="table table-sm table-hover table-bordered text-nowrap">
<thead class="align-middle"> <thead class="align-middle">
<tr class="table-secondary"> <tr class="table-secondary">
<th></th> <th>순번</th>
<th>나포일시</th> <th>나포일시</th>
<th>나포해점</th> <th>나포해점</th>
<th>사건담당경찰서</th> <th>사건담당경찰서</th>
@ -184,9 +184,9 @@
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle"> <tbody class="table-group-divider align-middle">
<tr class="crackdownStatusTr" th:each="crackdownStatus:${crackdownStatusList}"> <tr class="crackdownStatusTr" th:each="crackdownStatus,cnt:${crackdownStatusList}">
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}"> <input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
<td><input type="checkbox" class="trChkBox"></td> <td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td>
<td> <td>
<th:block th:text="${crackdownStatus.napoSeaPointLon}"></th:block> <th:block th:text="${crackdownStatus.napoSeaPointLon}"></th:block>

View File

@ -114,7 +114,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap" id="prTable"> <table class="table table-sm table-hover table-bordered text-nowrap" id="prTable">
<thead class="align-middle"> <thead class="align-middle">
<tr class="table-secondary"> <tr class="table-secondary">
<!--<th>연번</th>--> <th>순번</th>
<th>사건번호</th> <th>사건번호</th>
<th>사건담당경찰서</th> <th>사건담당경찰서</th>
<th>피의자(선박명)</th> <th>피의자(선박명)</th>
@ -132,8 +132,9 @@
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle"> <tbody class="table-group-divider align-middle">
<th:block th:each="processResult:${processResultList}"> <th:block th:each="processResult,cnt:${processResultList}">
<tr class="tr" th:data-key="${processResult.prKey}"> <tr class="tr" th:data-key="${processResult.prKey}">
<td th:text="${cnt.count}"></td>
<!--<td th:text="${processResult.prKey}"></td>--> <!--<td th:text="${processResult.prKey}"></td>-->
<td th:text="${processResult.crackdownStatus.caseNum}"></td> <td th:text="${processResult.crackdownStatus.caseNum}"></td>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}"> <th:block th:each="commonCode:${session.commonCode.get('CPO')}">

View File

@ -9,6 +9,7 @@
<form id="partInfoSave" method="post"> <form id="partInfoSave" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="piState" name="piState">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-2 col-form-label col-form-label-sm text-center">터미널 정보</label> <label class="col-2 col-form-label col-form-label-sm text-center">터미널 정보</label>
<div class="col-10 border"> <div class="col-10 border">
@ -135,6 +136,7 @@
<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>
<div class="col-auto"> <div class="col-auto">
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
<button type="button" class="btn btn-primary" id="savePartInfo">저장</button> <button type="button" class="btn btn-primary" id="savePartInfo">저장</button>
</div> </div>
</div> </div>

View File

@ -6,31 +6,31 @@
<div class="row my-1"> <div class="row my-1">
<label for="terminalNm" class="col-sm-2 col-form-label col-form-label-sm text-center">터미널명</label> <label for="terminalNm" class="col-sm-2 col-form-label col-form-label-sm text-center">터미널명</label>
<div class="col-sm-3"> <div class="col-sm-3">
<input type="text" class="form-control form-control-sm" id="terminalNm" name="terminalNm" placeholder="직접입력" th:value="${partInfo.terminalNm}"> <input type="text" class="form-control form-control-sm" id="terminalNm" name="terminalNm" placeholder="직접입력" th:value="${partInfo.terminalNm}" disabled>
</div> </div>
</div> </div>
<div class="row my-1"> <div class="row my-1">
<label for="rentType" class="col-sm-2 col-form-label col-form-label-sm text-center">임차료</label> <label for="rentType" class="col-sm-2 col-form-label col-form-label-sm text-center">임차료</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="rentType" name="rentType"> <select class="form-select form-select-sm" id="rentType" name="rentType" disabled>
<option value="">선택</option> <option value="">선택</option>
<option value="N" th:selected="${'N' eq partInfo.rentType}">무상</option> <option value="N" th:selected="${'N' eq partInfo.rentType}">무상</option>
<option value="Y" th:selected="${'Y' eq partInfo.rentType}">유상</option> <option value="Y" th:selected="${'Y' eq partInfo.rentType}">유상</option>
</select> </select>
</div> </div>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="rentPrice" name="rentPrice" placeholder="단위: 만" th:value="${partInfo.rentPrice}"> <input type="number" class="form-control form-control-sm" id="rentPrice" name="rentPrice" placeholder="단위: 만" th:value="${partInfo.rentPrice}" disabled>
</div> </div>
<label for="utilityType" class="col-sm-2 col-form-label col-form-label-sm text-center">공공요금</label> <label for="utilityType" class="col-sm-2 col-form-label col-form-label-sm text-center">공공요금</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="utilityType" name="utilityType"> <select class="form-select form-select-sm" id="utilityType" name="utilityType" disabled>
<option value="">선택</option> <option value="">선택</option>
<option value="N" th:selected="${'N' eq partInfo.utilityType}">무상</option> <option value="N" th:selected="${'N' eq partInfo.utilityType}">무상</option>
<option value="Y" th:selected="${'Y' eq partInfo.utilityType}">유상</option> <option value="Y" th:selected="${'Y' eq partInfo.utilityType}">유상</option>
</select> </select>
</div> </div>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="utilityPrice" name="utilityPrice" placeholder="단위: 만" th:value="${partInfo.utilityPrice}"> <input type="number" class="form-control form-control-sm" id="utilityPrice" name="utilityPrice" placeholder="단위: 만" th:value="${partInfo.utilityPrice}" disabled>
</div> </div>
</div> </div>
</div> </div>
@ -41,11 +41,11 @@
<div class="row my-1"> <div class="row my-1">
<label for="mgtOrgan" class="col-sm-2 col-form-label col-form-label-sm text-center">해경서</label> <label for="mgtOrgan" class="col-sm-2 col-form-label col-form-label-sm text-center">해경서</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="mgtOrgan" name="mgtOrgan" th:disabled="${accessAuth ne 'ACC003'}"> <select class="form-select form-select-sm" id="mgtOrgan" name="mgtOrgan" disabled>
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq partInfo.mgtOrgan}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq partInfo.mgtOrgan}" disabled></option>
</th:block> </th:block>
</th:block> </th:block>
</select> </select>
@ -63,7 +63,7 @@
<div class="row my-1"> <div class="row my-1">
<label for="mpWorkType" class="col-sm-2 col-form-label col-form-label-sm text-center">근무방법</label> <label for="mpWorkType" class="col-sm-2 col-form-label col-form-label-sm text-center">근무방법</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="mpWorkType" name="mpWorkType"> <select class="form-select form-select-sm" id="mpWorkType" name="mpWorkType" disabled>
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}"> <th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq partInfo.mpWorkType}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq partInfo.mpWorkType}"></option>
@ -72,13 +72,13 @@
</div> </div>
<label for="mpPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label> <label for="mpPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="mpPeopleCnt" name="mpPeopleCnt" th:value="${partInfo.mpPeopleCnt}"> <input type="number" class="form-control form-control-sm" id="mpPeopleCnt" name="mpPeopleCnt" th:value="${partInfo.mpPeopleCnt}" disabled>
</div> </div>
</div> </div>
<div class="row my-1"> <div class="row my-1">
<label for="mpDescription" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label> <label for="mpDescription" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control form-control-sm" id="mpDescription" name="mpDescription" th:value="${partInfo.mpDescription}"> <input type="text" class="form-control form-control-sm" id="mpDescription" name="mpDescription" th:value="${partInfo.mpDescription}" disabled>
</div> </div>
</div> </div>
</div> </div>
@ -89,11 +89,11 @@
<div class="row my-1"> <div class="row my-1">
<label for="landPolice" class="col-sm-2 col-form-label col-form-label-sm text-center">육경서</label> <label for="landPolice" class="col-sm-2 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 form-control-sm" id="landPolice" name="landPolice" placeholder="직접입력" th:value="${partInfo.landPolice}"> <input type="text" class="form-control form-control-sm" id="landPolice" name="landPolice" placeholder="직접입력" th:value="${partInfo.landPolice}" disabled>
</div> </div>
<label for="plWorkType" class="col-sm-2 col-form-label col-form-label-sm text-center">근무방법</label> <label for="plWorkType" class="col-sm-2 col-form-label col-form-label-sm text-center">근무방법</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="plWorkType" name="plWorkType"> <select class="form-select form-select-sm" id="plWorkType" name="plWorkType" disabled>
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}"> <th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq partInfo.plWorkType}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq partInfo.plWorkType}"></option>
@ -102,13 +102,14 @@
</div> </div>
<label for="plPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label> <label for="plPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="plPeopleCnt" name="plPeopleCnt" th:value="${partInfo.plPeopleCnt}"> <input type="number" class="form-control form-control-sm" id="plPeopleCnt" name="plPeopleCnt" th:value="${partInfo.plPeopleCnt}" disabled>
</div> </div>
</div> </div>
<div class="row my-1"> <div class="row my-1">
<label for="plDescription" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label> <label for="plDescription" class="col-sm-2 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control form-control-sm" id="plDescription" name="plDescription" th:value="${partInfo.plDescription}"> <input type="text" class="form-control form-control-sm" id="plDescription" name="plDescription" th:value="${partInfo.plDescription}" disabled>
</div> </div>
</div> </div>
</div> </div>
@ -124,7 +125,6 @@
<div class='row-col-6' th:each="infoFile:${partInfo.fileList}"> <div class='row-col-6' th:each="infoFile:${partInfo.fileList}">
<span th:data-fileseq="${infoFile.fileSeq}" th:text="|${infoFile.origNm}.${infoFile.fileExtn} ${infoFile.fileSize}|"></span> <span th:data-fileseq="${infoFile.fileSeq}" th:text="|${infoFile.origNm}.${infoFile.fileExtn} ${infoFile.fileSize}|"></span>
<a href='#' class='fileDownPartInfo text-decoration-none' th:data-fileSeq="${infoFile.fileSeq}" th:data-piSeq="${infoFile.piSeq}" th:data-verNo="${infoFile.versionNo}">다운</a> <a href='#' class='fileDownPartInfo text-decoration-none' th:data-fileSeq="${infoFile.fileSeq}" th:data-piSeq="${infoFile.piSeq}" th:data-verNo="${infoFile.versionNo}">다운</a>
<a href='#' class='uploadedFileDelete text-danger text-decoration-none'>삭제</a>
</div> </div>
</th:block> </th:block>
</div> </div>

View File

@ -127,6 +127,28 @@
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider">
<tr class="partInfoTr" th:each="pi:${partInfoList}"> <tr class="partInfoTr" th:each="pi:${partInfoList}">
<th:block th:if="${pi.piState eq 'DST001'} and ${pi.wrtUserSeq eq loginUser}">
<th:block>
<input type="hidden" class="piSeq" th:value="${pi.piSeq}">
<input type="hidden" class="verNo" th:value="${pi.versionNo}">
</th:block>
<td th:text="${pi.mgtOrgan}"></td>
<td th:text="${pi.landPolice}"></td>
<td style="color : red;" th:text="|[임시저장] ${pi.terminalNm}|"></td>
<td th:text="${pi.piManagerName}"></td>
<td th:text="${pi.mpWorkType}"></td>
<td th:text="|${pi.mpPeopleCnt eq null?0:pi.mpPeopleCnt}명|"></td>
<td th:text="${pi.mpDescription}"></td>
<td th:text="${pi.plWorkType}"></td>
<td th:text="|${pi.plPeopleCnt eq null?0:pi.plPeopleCnt}명|"></td>
<td th:text="${pi.plDescription}"></td>
<td th:if="${pi.rentType eq 'Y'}" th:text="|${pi.rentPrice}만/年|"></td>
<td th:unless="${pi.rentType eq 'Y'}">무상</td>
<td th:if="${pi.utilityType eq 'Y'}" th:text="|${pi.utilityPrice}만/年|"></td>
<td th:unless="${pi.utilityType eq 'Y'}">무상</td>
<td th:text="${#temporals.format(pi.wrtDt, 'yyyy-MM-dd')}"></td>
</th:block>
<th:block th:if="${pi.piState eq 'DST007'}">
<th:block> <th:block>
<input type="hidden" class="piSeq" th:value="${pi.piSeq}"> <input type="hidden" class="piSeq" th:value="${pi.piSeq}">
<input type="hidden" class="verNo" th:value="${pi.versionNo}"> <input type="hidden" class="verNo" th:value="${pi.versionNo}">
@ -146,6 +168,7 @@
<td th:if="${pi.utilityType eq 'Y'}" th:text="|${pi.utilityPrice}만/年|"></td> <td th:if="${pi.utilityType eq 'Y'}" th:text="|${pi.utilityPrice}만/年|"></td>
<td th:unless="${pi.utilityType eq 'Y'}">무상</td> <td th:unless="${pi.utilityType eq 'Y'}">무상</td>
<td th:text="${#temporals.format(pi.wrtDt, 'yyyy-MM-dd')}"></td> <td th:text="${#temporals.format(pi.wrtDt, 'yyyy-MM-dd')}"></td>
</th:block>
</tr> </tr>
</tbody> </tbody>
<tfoot class="table-group-divider"> <tfoot class="table-group-divider">

View File

@ -19,6 +19,7 @@
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="piSeq" id="piSeq" th:value="${partInfo.piSeq}"> <input type="hidden" name="piSeq" id="piSeq" th:value="${partInfo.piSeq}">
<input type="hidden" name="versionNo" th:value="${partInfo.versionNo}"> <input type="hidden" name="versionNo" th:value="${partInfo.versionNo}">
<input type="hidden" id="mPiState" name="piState" th:value="${partInfo.piState}">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-2 col-form-label col-form-label-sm text-center">터미널 정보</label> <label class="col-2 col-form-label col-form-label-sm text-center">터미널 정보</label>
<div class="col-10 border"> <div class="col-10 border">
@ -31,25 +32,25 @@
<div class="row my-1"> <div class="row my-1">
<label for="rentType" class="col-sm-2 col-form-label col-form-label-sm text-center">임차료</label> <label for="rentType" class="col-sm-2 col-form-label col-form-label-sm text-center">임차료</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="rentType" name="rentType"> <select class="form-select form-select-sm" id="mRentType" name="rentType">
<option value="">선택</option> <option value="">선택</option>
<option value="N" th:selected="${'N' eq partInfo.rentType}">무상</option> <option value="N" th:selected="${'N' eq partInfo.rentType}">무상</option>
<option value="Y" th:selected="${'Y' eq partInfo.rentType}">유상</option> <option value="Y" th:selected="${'Y' eq partInfo.rentType}">유상</option>
</select> </select>
</div> </div>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="rentPrice" name="rentPrice" placeholder="단위: 만" th:value="${partInfo.rentPrice}"> <input type="number" class="form-control form-control-sm" id="mRentPrice" name="rentPrice" placeholder="단위: 만" th:value="${partInfo.rentPrice}">
</div> </div>
<label for="utilityType" class="col-sm-2 col-form-label col-form-label-sm text-center">공공요금</label> <label for="utilityType" class="col-sm-2 col-form-label col-form-label-sm text-center">공공요금</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="utilityType" name="utilityType"> <select class="form-select form-select-sm" id="mUtilityType" name="utilityType">
<option value="">선택</option> <option value="">선택</option>
<option value="N" th:selected="${'N' eq partInfo.utilityType}">무상</option> <option value="N" th:selected="${'N' eq partInfo.utilityType}">무상</option>
<option value="Y" th:selected="${'Y' eq partInfo.utilityType}">유상</option> <option value="Y" th:selected="${'Y' eq partInfo.utilityType}">유상</option>
</select> </select>
</div> </div>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="utilityPrice" name="utilityPrice" placeholder="단위: 만" th:value="${partInfo.utilityPrice}"> <input type="number" class="form-control form-control-sm" id="mUtilityPrice" name="utilityPrice" placeholder="단위: 만" th:value="${partInfo.utilityPrice}">
</div> </div>
</div> </div>
</div> </div>
@ -60,7 +61,7 @@
<div class="row my-1"> <div class="row my-1">
<label for="mgtOrgan" class="col-sm-2 col-form-label col-form-label-sm text-center">해경서</label> <label for="mgtOrgan" class="col-sm-2 col-form-label col-form-label-sm text-center">해경서</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="mgtOrgan" name="mgtOrgan" th:disabled="${accessAuth ne 'ACC003'}"> <select class="form-select form-select-sm" id="mMgtOrgan" name="mgtOrgan" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
@ -71,7 +72,7 @@
</div> </div>
<label for="piUserSeq" class="col-sm-2 col-form-label col-form-label-sm text-center">담당자</label> <label for="piUserSeq" class="col-sm-2 col-form-label col-form-label-sm text-center">담당자</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="piUserSeq" name="piUserSeq" th:disabled="${accessAuth ne 'ACC003'}"> <select class="form-select form-select-sm" id="mPiUserSeq" name="piUserSeq" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="info:${managerList}"> <th:block th:each="info:${managerList}">
<option th:value="${info.user_seq}" th:text="|${info.title_cd} ${info.user_nm}|" th:selected="${info.user_seq eq partInfo.piUserSeq}"></option> <option th:value="${info.user_seq}" th:text="|${info.title_cd} ${info.user_nm}|" th:selected="${info.user_seq eq partInfo.piUserSeq}"></option>
@ -159,6 +160,7 @@
<button type="button" class="btn btn-danger" id="deletePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button> <button type="button" class="btn btn-danger" id="deletePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<button type="button" class="btn btn-warning" id="mSaveTempBtn" th:if="${wrtUserSeq eq userSeq}">임시저장</button>
<button type="button" class="btn btn-warning" id="updatePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button> <button type="button" class="btn btn-warning" id="updatePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
</div> </div>
</div> </div>

View File

@ -7,15 +7,15 @@
</a> </a>
</div> </div>
<div class="flex-shrink-0 py-3 bg-transparent" id="leftMenu"> <div class="flex-shrink-0 py-3 bg-transparent" id="leftMenu">
<ul class="list-unstyled border-top border-secondary ps-0"> <ul class="list-unstyled border-top ps-0">
<li class="mb-1 border-bottom border-secondary" th:each="firstMenu:${session.menuList}"> <li class="mb-1 border-bottom " th:each="firstMenu:${session.menuList}">
<th:block th:each="cat1Code:${session.commonCode.get('CAT1')}"> <th:block th:each="cat1Code:${session.commonCode.get('CAT1')}">
<th:block th:if="${cat1Code.itemCd eq firstMenu.cat1Cd}"> <th:block th:if="${cat1Code.itemCd eq firstMenu.cat1Cd}">
<button class="btn btn-toggle align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 16px;" <button class="btn align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 16px;"
data-bs-toggle="collapse" aria-expanded="false" th:data-category="${cat1Code.itemCd}" data-bs-toggle="collapse" aria-expanded="false" th:data-category="${cat1Code.itemCd}"
th:data-bs-target="'#collapse'+${cat1Code.itemCd}" th:text="${cat1Code.itemValue}"> th:data-bs-target="'#collapse'+${cat1Code.itemCd}" th:text="${cat1Code.itemValue}">
</button> </button>
<div class="collapse ps-3" th:id="|collapse${cat1Code.itemCd}|"> <div class="collapse ps-3 border-top border-secondary" th:id="|collapse${cat1Code.itemCd}|">
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1" > <ul class="btn-toggle-nav list-unstyled fw-normal pb-1" >
<li th:each="secondMenu:${firstMenu.childList}"> <li th:each="secondMenu:${firstMenu.childList}">
<th:block th:each="cat2Code:${session.commonCode.get('CAT2')}"> <th:block th:each="cat2Code:${session.commonCode.get('CAT2')}">
@ -23,13 +23,13 @@
<ul class="list-unstyled ps-0"> <ul class="list-unstyled ps-0">
<li class="mb-1"> <li class="mb-1">
<th:block th:unless="${#lists.isEmpty(secondMenu.childList)}"> <th:block th:unless="${#lists.isEmpty(secondMenu.childList)}">
<button class="btn btn-toggle2 align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 15px;" <button class="btn btn-toggle3 align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 15px;"
data-bs-toggle="collapse" aria-expanded="false" th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}" data-bs-toggle="collapse" aria-expanded="false" th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}"
th:data-bs-target="'#collapse'+${cat2Code.itemCd}" th:text="${cat2Code.itemValue}"> th:data-bs-target="'#collapse'+${cat2Code.itemCd}" th:text="${cat2Code.itemValue}">
</button> </button>
</th:block> </th:block>
<th:block th:if="${#lists.isEmpty(secondMenu.childList)}"> <th:block th:if="${#lists.isEmpty(secondMenu.childList)}">
<a th:href="@{${secondMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" style="font-size: 14px;" th:data-menukey="${secondMenu.menuKey}" <a th:href="@{${secondMenu.menuUrl}}" class="link-light rounded ps-3 text-decoration-none" style="font-size: 14px;"
th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}" th:text="${cat2Code.itemValue}"></a> th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}" th:text="${cat2Code.itemValue}"></a>
</th:block> </th:block>
<div class="collapse ps-3" th:id="|collapse${cat2Code.itemCd}|" > <div class="collapse ps-3" th:id="|collapse${cat2Code.itemCd}|" >
@ -39,7 +39,7 @@
<th:block th:if="${cat3Code.itemCd eq thirdMenu.cat3Cd}"> <th:block th:if="${cat3Code.itemCd eq thirdMenu.cat3Cd}">
<ul class="list-unstyled ps-0"> <ul class="list-unstyled ps-0">
<li> <li>
<a th:href="@{${thirdMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" th:data-menukey="${thirdMenu.menuKey}" <a th:href="@{${thirdMenu.menuUrl}}" class="link-light rounded ps-3 text-decoration-none"
th:data-parent="${cat2Code.itemCd}" th:data-category="${cat3Code.itemCd}" th:text="${cat3Code.itemValue}"></a> th:data-parent="${cat2Code.itemCd}" th:data-category="${cat3Code.itemCd}" th:text="${cat3Code.itemValue}"></a>
</li> </li>
</ul> </ul>

View File

@ -118,6 +118,7 @@
<thead class="align-middle text-center"> <thead class="align-middle text-center">
<tr class="table-secondary"> <tr class="table-secondary">
<!--<th>문서번호</th>--> <!--<th>문서번호</th>-->
<th>순번</th>
<th>관서</th> <th>관서</th>
<th>검거유형1</th> <th>검거유형1</th>
<th>검거유형2</th> <th>검거유형2</th>
@ -127,14 +128,15 @@
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider align-middle text-center"> <tbody class="table-group-divider align-middle text-center">
<tr class="tr" th:each="boardInvestigation:${boardInvestigationList}" th:data-key="${boardInvestigation.ivsgtKey}"> <tr class="tr" th:each="boardInvestigation,cnt:${boardInvestigationList}" th:data-key="${boardInvestigation.ivsgtKey}">
<!--<td th:text="${boardInvestigation.ivsgtKey}"></td>--> <!--<td th:text="${boardInvestigation.ivsgtKey}"></td>-->
<td th:text="${cnt.count}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${boardInvestigation.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${boardInvestigation.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
<td th:text="${boardInvestigation.arrestCdName}"></td> <td th:text="${boardInvestigation.arrestCdName}"></td>
<td th:text="${boardInvestigation.arrestCd2Name}"></td> <td th:text="${boardInvestigation.arrestCd2Name}"></td>
<td th:text="${boardInvestigation.contentStatus == 'Y' ? '[임시저장]' : ''} + ${boardInvestigation.contentTitle}"></td> <td class="titleLeft" th:text="${boardInvestigation.contentStatus == 'Y' ? '[임시저장]' : ''} + ${boardInvestigation.contentTitle}"></td>
<td th:text="${boardInvestigation.wrtNm}"></td> <td th:text="${boardInvestigation.wrtNm}"></td>
<td th:text="${#temporals.format(boardInvestigation.wrtDt, 'yyyy-MM-dd')}"></td> <td th:text="${#temporals.format(boardInvestigation.wrtDt, 'yyyy-MM-dd')}"></td>
</tr> </tr>

View File

@ -27,7 +27,7 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(majorStatus.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly> <input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(majorStatus.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
</div> </div>
<label for="majorType" class="col-sm-2 col-form-label col-form-label-sm text-center"></label> <label for="majorType" class="col-sm-2 col-form-label col-form-label-sm text-center"></label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="majorType" name="majorType"> <select class="form-select form-select-sm" id="majorType" name="majorType">
<option value="">선택해주세요.</option> <option value="">선택해주세요.</option>
@ -75,6 +75,8 @@
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<button type="button" class="btn btn-warning" id="saveTempBtn" data-contentStatus="DST001">임시저장</button> <button type="button" class="btn btn-warning" id="saveTempBtn" data-contentStatus="DST001">임시저장</button>
<!--
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
-->
<button type="button" class="btn btn-primary" id="saveBtn">저장</button> <button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div> </div>

View File

@ -69,24 +69,24 @@
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th width="5%">순번</th> <th width="5%">순번</th>
<th width="10%">작성일시</th> <th width="10%">분류</th>
<th width="10%">종류</th>
<th>제목</th> <th>제목</th>
<th>내용</th> <th>내용</th>
<th width="10%">첨부파일</th> <th width="10%">첨부파일</th>
<th width="10%">작성일시</th>
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider">
<tr class="tr" th:each="major, cnt:${majorList}"> <tr class="tr" th:each="major, cnt:${majorList}">
<input type="hidden" class="majorKey" th:value="${major.majorKey}"> <input type="hidden" class="majorKey" th:value="${major.majorKey}">
<td th:text="${cnt.count}"></td> <td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(major.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:each="commonCode:${session.commonCode.get('MST')}"> <th:block th:each="commonCode:${session.commonCode.get('MST')}">
<td th:if="${major.majorType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${major.majorType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
<td th:text="|${major.contentStatus eq 'DST001'?'[임시]':''}${major.contentTitle}|"></td> <td th:text="|${major.contentStatus eq 'DST001'?'[임시]':''}${major.contentTitle}|"></td>
<td th:utext="${major.contentInfo}"></td> <td th:utext="${major.contentInfo}"></td>
<td th:text="${major.fileCnt eq null?'파일 없음':#strings.concat(major.fileCnt,' 건')}"></td> <td th:text="${major.fileCnt eq null?'파일 없음':#strings.concat(major.fileCnt,' 건')}"></td>
<td th:text="${#temporals.format(major.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -76,6 +76,8 @@
<th:block th:if="${userSeq eq majorStatus.wrtUserSeq}"><!--작성자일 경우 수정 허용--> <th:block th:if="${userSeq eq majorStatus.wrtUserSeq}"><!--작성자일 경우 수정 허용-->
<button type="button" class="btn btn-warning" id="editBtn" th:data-majorkey="${majorStatus.majorKey}">수정</button> <button type="button" class="btn btn-warning" id="editBtn" th:data-majorkey="${majorStatus.majorKey}">수정</button>
</th:block> </th:block>
<button type="button" class="btn btn-danger" id="deleteMajorBtn">삭제</button> <button type="button" class="btn btn-danger float-start" id="deleteMajorBtn">삭제</button>
<!--
<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>

View File

@ -81,11 +81,11 @@
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th>순번</th> <th>순번</th>
<th>관서</th>
<th>부서</th>
<th>직책</th> <th>직책</th>
<th>계급</th> <th>계급</th>
<th>성명</th> <th>성명</th>
<th></th>
<th>부서</th>
<th>생년월일</th> <th>생년월일</th>
<th>성별</th> <th>성별</th>
<th>외사경력</th> <th>외사경력</th>
@ -100,11 +100,11 @@
<tr class="policeTr" th:each="police:${policeList}"> <tr class="policeTr" th:each="police:${policeList}">
<input type="hidden" class="userSeq" th:value="${police.userSeq}"> <input type="hidden" class="userSeq" th:value="${police.userSeq}">
<td th:text="${police.rownum}"></td> <td th:text="${police.rownum}"></td>
<td th:text="${police.organNm}"></td>
<td th:text="${police.ofcCd}"></td>
<td></td> <td></td>
<td th:text="${police.titleCd}"></td> <td th:text="${police.titleCd}"></td>
<td th:text="${police.userNm}"></td> <td th:text="${police.userNm}"></td>
<td th:text="${police.organNm}"></td>
<td th:text="${police.ofcCd}"></td>
<td th:text="${police.birthDate}"></td> <td th:text="${police.birthDate}"></td>
<td th:text="${police.sex}"></td> <td th:text="${police.sex}"></td>
<td> <td>

View File

@ -111,6 +111,6 @@
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<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>
</html> </html>

View File

@ -51,7 +51,7 @@
</div> </div>
<div class="modal-footer row justify-content-between bg-light"> <div class="modal-footer row justify-content-between bg-light">
<div class="col-auto"> <div class="col-auto">
<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>
<div class="col-auto"> <div class="col-auto">
<button type="button" class="btn btn-primary" id="saveBtn" th:if="${accessAuth eq 'ACC003'} or ${userInfo.userSeq eq userSeq}">저장</button> <button type="button" class="btn btn-primary" id="saveBtn" th:if="${accessAuth eq 'ACC003'} or ${userInfo.userSeq eq userSeq}">저장</button>

View File

@ -82,14 +82,14 @@
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th>순번</th> <th>순번</th>
<th>관서</th>
<th>부서</th>
<th>직책</th> <th>직책</th>
<th>계급</th> <th>계급</th>
<th>성명</th> <th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th> <th>생년월일</th>
<th>성별</th> <th>성별</th>
<th>최종수정일</th> <th>최종수정일</th>
</tr> </tr>
</thead> </thead>
@ -99,11 +99,11 @@
<input type="hidden" class="userSeq" th:value="${list.userSeq}"> <input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block> </th:block>
<td th:text="${list.rownum}"></td> <td th:text="${list.rownum}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td></td> <td></td>
<td th:text="${list.titleCd}"></td> <td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td> <td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td> <td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td> <td th:text="${list.sex}"></td>

View File

@ -156,7 +156,7 @@
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
<button type="button" class="btn btn-primary" id="saveBtn">저장</button> <button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div> </div>
</div> </div>
@ -174,7 +174,7 @@
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<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>
</div> </div>
</div> </div>

View File

@ -153,7 +153,7 @@
</th:block> </th:block>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
<button type="button" class="btn btn-warning" id="updateBtn" th:if="${accessAuth eq 'ACC003'}">수정</button> <button type="button" class="btn btn-warning" id="updateBtn" th:if="${accessAuth eq 'ACC003'}">수정</button>
</div> </div>
</div> </div>

View File

@ -95,11 +95,11 @@
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th>순번</th> <th>순번</th>
<th>관서</th>
<th>부서</th>
<th>직책</th> <th>직책</th>
<th>계급</th> <th>계급</th>
<th>성명</th> <th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th> <th>생년월일</th>
<th>성별</th> <th>성별</th>
<th>최초<br>임용</th> <th>최초<br>임용</th>
@ -123,19 +123,20 @@
<input type="hidden" class="userSeq" th:value="${list.userSeq}"> <input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block> </th:block>
<td th:text="${list.rownum}"></td> <td th:text="${list.rownum}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td></td> <td></td>
<td th:text="${list.titleCd}"></td> <td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td> <td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td> <td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td> <td th:text="${list.sex}"></td>
<td th:text="${list.policeInDate}"></td> <td th:text="${list.policeInDate}"></td>
<td th:text="${list.titleInDate}"></td> <td th:text="${list.titleInDate}"></td>
<td th:text="${list.ofcInDate}"></td> <td th:text="${list.ofcInDate}"></td>
<!--<td th:text="${list.outturnCd}"></td>--> <!-- <td th:text="${list.outturnCd}"></td>-->
<td th:if="${list.outturnCd == '수사'}">O</td> <td th:if="${list.outturnCd == '수사'}">O</td>
<td th:if="${list.outturnCd != '수사'}">X</td> <td th:if="${list.outturnCd != '수사'}">X</td>
<td></td>
<td th:text="${list.jobInCd}"></td> <td th:text="${list.jobInCd}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}"> <th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">

View File

@ -90,6 +90,8 @@
--> -->
<td th:text="${cnt.count}"></td> <td th:text="${cnt.count}"></td>
<td align="left" th:text="${reference.title}"></td> <td align="left" th:text="${reference.title}"></td>
<td th:text="${reference.fileCnt eq null?'파일 없음':#strings.concat(reference.fileCnt,' 건')}"></td>
<td th:text="${reference.commentCnt eq null?'0':reference.commentCnt}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${reference.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td> <td th:if="${reference.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block> </th:block>
@ -101,8 +103,6 @@
</th:block> </th:block>
<td th:text="${reference.wrtUserNm}"></td> <td th:text="${reference.wrtUserNm}"></td>
<td th:text="${#temporals.format(reference.wrtDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(reference.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${reference.fileCnt eq null?'파일 없음':#strings.concat(reference.fileCnt,' 건')}"></td>
<td th:text="${reference.commentCnt eq null?'0':reference.commentCnt}"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -109,8 +109,8 @@
<table class="table table-sm table-hover table-bordered"> <table class="table table-sm table-hover table-bordered">
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th></th> <th></th>
<th>관서</th> <th>관서</th>
<th>언어</th> <th>언어</th>
<th>경력</th> <th>경력</th>
<th>성명</th> <th>성명</th>
@ -313,8 +313,8 @@
</form> </form>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button> <!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>-->
<button type="button" class="btn btn-primary" id="saveBtn">등록</button> <button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -21,7 +21,7 @@
</div> </div>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<button type="button" class="btn btn-primary" id="crrSaveBtn">등록</button> <button type="button" class="btn btn-primary" id="crrSaveBtn">저장</button>
</div> </div>
</div> </div>
</div> </div>