외사첩보망 운영계획, 해고/연장보고 작업중.

master
강석 최 2024-03-26 18:04:10 +09:00
parent 1eac869608
commit abf8507030
10 changed files with 90 additions and 50 deletions

View File

@ -129,6 +129,7 @@ public class IntelligenceNetworkController {
MultipartHttpServletRequest request, @RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){ MultipartHttpServletRequest request, @RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){
op.setMultipartFileList(request.getMultiFileMap().get("uploadFiles")); op.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
if(op.getOpKey() == null) { if(op.getOpKey() == null) {
op.setCollaboratorStatus("CS001");
op.setWrtOrgan(loginUser.getOgCd()); op.setWrtOrgan(loginUser.getOgCd());
op.setWrtPart(loginUser.getOfcCd()); op.setWrtPart(loginUser.getOfcCd());
op.setWrtUserGrd(loginUser.getTitleCd()); op.setWrtUserGrd(loginUser.getTitleCd());
@ -424,6 +425,7 @@ public class IntelligenceNetworkController {
ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanListModal"); ModelAndView mav = new ModelAndView("igActivities/intelligenceNetwork/operationPlanListModal");
op.setFirstIndex(0); op.setFirstIndex(0);
op.setRowCnt(9999); op.setRowCnt(9999);
op.setCollaboratorStatus("feEditModal");
if(Utils.isEmpty(op.getWrtOrgan())){ if(Utils.isEmpty(op.getWrtOrgan())){
op.setWrtOrgan(loginUser.getOgCd()); op.setWrtOrgan(loginUser.getOgCd());
} }

View File

@ -80,6 +80,8 @@ public class FireExtensionReport extends BaseModel {
@Transient @Transient
private String opSdate; private String opSdate;
@Transient @Transient
private String collaboratorStatus;
@Transient
private OperationPlan operationPlan; private OperationPlan operationPlan;
@Transient @Transient
List<FireExtensionReportApprv> apprvList; List<FireExtensionReportApprv> apprvList;

View File

@ -72,7 +72,8 @@ public class OperationPlan extends BaseModel {
@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 = "collaborator_status")
private String collaboratorStatus;
@Transient @Transient
private String status; private String status;

View File

@ -214,6 +214,7 @@ public class IntelligenceNetworkService extends BaseService {
@Transactional @Transactional
public Integer saveFireExtensionReport(FireExtensionReport fer) { public Integer saveFireExtensionReport(FireExtensionReport fer) {
Integer ferKey = fireExtensionReportRepository.save(fer).getFerKey(); Integer ferKey = fireExtensionReportRepository.save(fer).getFerKey();
operationPlanRepository.findById(fer.getOpKey()).ifPresent(op -> op.setCollaboratorStatus(fer.getCollaboratorStatus()));
if(fer.getFerState().equals("DST002")){ if(fer.getFerState().equals("DST002")){
//작성완료일 때 부장 결재 사용자에게 알림 발송. //작성완료일 때 부장 결재 사용자에게 알림 발송.
userAlarmService.sendAlarmToApprvUser(ferKey, fer.getWrtOrgan(), "APC001", 35, "외사첩보망 견문관리 외사첩보망 해고(연장)보고에 결재대기 문서가 있습니다."); userAlarmService.sendAlarmToApprvUser(ferKey, fer.getWrtOrgan(), "APC001", 35, "외사첩보망 견문관리 외사첩보망 해고(연장)보고에 결재대기 문서가 있습니다.");

View File

@ -48,6 +48,16 @@
and op_state in ('DST003', 'DST004', 'DST005', 'DST006') and op_state in ('DST003', 'DST004', 'DST005', 'DST006')
</if> </if>
</if> </if>
<if test='collaboratorStatus != null and collaboratorStatus != ""'>
<choose>
<when test='collaboratorStatus = "feEditModal"'>
and op.collaborator_status in ('CS001', 'CS002')
</when>
<otherwise>
and op.collaborator_status = #{collaboratorStatus}
</otherwise>
</choose>
</if>
</where> </where>
</sql> </sql>
<select id="selectOperationPlanList" resultType="OperationPlan" parameterType="OperationPlan"> <select id="selectOperationPlanList" resultType="OperationPlan" parameterType="OperationPlan">
@ -61,6 +71,7 @@
op_rank, op_rank,
op_sdate, op_sdate,
op_state as status, op_state as status,
collaborator_status,
(select item_value from code_mgt where item_cd = op_state) as op_state, (select item_value from code_mgt where item_cd = op_state) as op_state,
wrt_user_seq, wrt_user_seq,
(select item_value from code_mgt where item_cd = wrt_organ) as wrt_organ, (select item_value from code_mgt where item_cd = wrt_organ) as wrt_organ,
@ -69,7 +80,7 @@
wrt_user_nm, wrt_user_nm,
wrt_dt, wrt_dt,
b.fileCnt b.fileCnt
from operation_plan op from operation_plan op
left outer join (select op_key, left outer join (select op_key,
count(file_seq) as fileCnt count(file_seq) as fileCnt
from operation_plan_file from operation_plan_file

View File

@ -73,12 +73,8 @@ $(document).on('click', '#operationPlanModalBtn', function (){
}); });
}) })
$(document).on('click', '#getOperationPlanBtn', function (){ $(document).on('click', '.opTr', function (){
if($(".rowChkBox:checked").length < 1){ const opKey = $(this).find(".opKey").val();
alert("정보협력자를 선택해주세요.");
return false;
}
const opKey = $(".rowChkBox:checked").val();
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : JSON.stringify({opKey:opKey}), data : JSON.stringify({opKey:opKey}),
@ -149,11 +145,16 @@ $(document).on('click', '#saveBtn', function (){
$('#allocationAmount').focus(); $('#allocationAmount').focus();
return false; return false;
} }
if(!$("#executionAmount").val()){ if(!$("#executionAmount").val()){
alert("집행액을 입력해주세요."); alert("집행액을 입력해주세요.");
$('#executionAmount').focus(); $('#executionAmount').focus();
return false; return false;
} }
if(!$("#collaboratorStatus").val()){
alert("운용상태를 선택해주세요.");
$('#collaboratorStatus').focus();
return false;
}
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
saveFireExtensionReport('DST002'); saveFireExtensionReport('DST002');
} }
@ -234,3 +235,11 @@ $(document).on('click', '.apprvBtn', function (){
} }
}) })
$(document).on('change', '#collaboratorStatus', function (){
if($(this).val() === "CS002"){
$("#fireExtensionReasonLabel").text("연장 사유")
}else{
$("#fireExtensionReasonLabel").text("해고 사유")
}
})

View File

@ -47,12 +47,12 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="opPosition" disabled> <input type="text" class="form-control form-control-sm" id="opPosition" disabled>
</div> </div>
</div>
<div class="row mb-1 text-center">
<label for="opJob" class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위)</label> <label for="opJob" 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 form-control-sm" id="opJob" disabled> <input type="text" class="form-control form-control-sm" id="opJob" disabled>
</div> </div>
</div>
<div class="row mb-1 text-center">
<label for="opCareer" class="col-sm-1 col-form-label col-form-label-sm text-center">경력</label> <label for="opCareer" 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 form-control-sm" id="opCareer" disabled> <input type="text" class="form-control form-control-sm" id="opCareer" disabled>
@ -61,21 +61,29 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="opPhone" disabled> <input type="text" class="form-control form-control-sm" id="opPhone" disabled>
</div> </div>
</div>
<div class="row mb-1 text-center">
<label for="opSdate" 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="opSdate" disabled>
</div>
<label for="opEdate" 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="opEdate" name="opEdate">
</div>
<label for="opRank" class="col-sm-1 col-form-label col-form-label-sm text-center">등급</label> <label for="opRank" 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 form-control-sm" id="opRank" disabled> <input type="text" class="form-control form-control-sm" id="opRank" disabled>
</div> </div>
</div> </div>
<div class="row mb-1 text-center">
<label for="opSdate" 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="opSdate" disabled>
</div>
<label for="opEdate" 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="opEdate" name="opEdate">
</div>
<label for="collaboratorStatus" 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="collaboratorStatus" name="collaboratorStatus">
<th:block th:each="code:${session.commonCode.get('CS')}">
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
</div>
</th:block> </th:block>
<th:block th:unless="${fer.ferKey eq null}"> <th:block th:unless="${fer.ferKey eq null}">
<hr> <hr>
@ -98,12 +106,12 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="opPosition" th:value="${fer.operationPlan.opPosition}" disabled> <input type="text" class="form-control form-control-sm" id="opPosition" th:value="${fer.operationPlan.opPosition}" disabled>
</div> </div>
</div>
<div class="row mb-1">
<label for="opJob" class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위)</label> <label for="opJob" 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 form-control-sm" id="opJob" th:value="${fer.operationPlan.opJob}" disabled> <input type="text" class="form-control form-control-sm" id="opJob" th:value="${fer.operationPlan.opJob}" disabled>
</div> </div>
</div>
<div class="row mb-1">
<label for="opCareer" class="col-sm-1 col-form-label col-form-label-sm text-center">경력</label> <label for="opCareer" 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 form-control-sm" id="opCareer" th:value="${fer.operationPlan.opCareer}" disabled> <input type="text" class="form-control form-control-sm" id="opCareer" th:value="${fer.operationPlan.opCareer}" disabled>
@ -112,6 +120,10 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="opPhone" th:value="${fer.operationPlan.opPhone}" disabled> <input type="text" class="form-control form-control-sm" id="opPhone" th:value="${fer.operationPlan.opPhone}" disabled>
</div> </div>
<label for="opRank" 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="opRank" th:value="${fer.operationPlan.opRank}" disabled>
</div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="opSdate" class="col-sm-1 col-form-label col-form-label-sm text-center">*운용기간</label> <label for="opSdate" class="col-sm-1 col-form-label col-form-label-sm text-center">*운용기간</label>
@ -122,10 +134,14 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="opEdate" name="opEdate" th:value="${fer.opEdate}"> <input type="text" class="form-control form-control-sm" id="opEdate" name="opEdate" th:value="${fer.opEdate}">
</div> </div>
<label for="opRank" class="col-sm-1 col-form-label col-form-label-sm text-center">등급</label> <label for="collaboratorStatus" 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 form-control-sm" id="opRank" th:value="${fer.operationPlan.opRank}" disabled> <select class="form-select form-select-sm" id="collaboratorStatus" name="collaboratorStatus">
</div> <th:block th:each="code:${session.commonCode.get('CS')}">
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${fer.collaboratorStatus eq code.itemCd}"></option>
</th:block>
</select>
</div>
</div> </div>
</th:block> </th:block>
<hr> <hr>
@ -154,7 +170,7 @@
</div> </div>
<hr> <hr>
<div class="row mb-1"> <div class="row mb-1">
<label for="fireExtensionReason" class="col-sm-1 col-form-label col-form-label-sm text-center">해고(연장)<br>사유</label> <label for="fireExtensionReason" id="fireExtensionReasonLabel" class="col-sm-1 col-form-label col-form-label-sm text-center">연장 사유</label>
<div class="col-sm-11"> <div class="col-sm-11">
<textarea id="fireExtensionReason" name="fireExtensionReason" rows="5" cols="108" th:utext="${fer.fireExtensionReason}"></textarea> <textarea id="fireExtensionReason" name="fireExtensionReason" rows="5" cols="108" th:utext="${fer.fireExtensionReason}"></textarea>
</div> </div>

View File

@ -34,20 +34,26 @@
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opBirth}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opBirth}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">근무처(소속):</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">근무처(소속):</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opPosition}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opPosition}"></label>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위):</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위):</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opJob}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opJob}"></label>
</div>
<div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">경력:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">경력:</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opCareer}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opCareer}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">연락처:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">연락처:</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opPhone}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opPhone}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">등급:</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opRank}"></label>
</div> </div>
<div class="row"> <div class="row">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">운용기간:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">운용기간:</label>
<label class="col-sm-5 col-form-label col-form-label-sm text-start" th:text="|${fer.operationPlan.opSdate}~${fer.opEdate}|"></label> <label class="col-sm-5 col-form-label col-form-label-sm text-start" th:text="|${fer.operationPlan.opSdate}~${fer.opEdate}|"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">등급:</label> <label class="col-sm-1 col-form-label col-form-label-sm text-center">운영상태</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${fer.operationPlan.opRank}"></label> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('CS')}">
<th:block th:if="${code.itemCd eq fer.operationPlan.collaboratorStatus}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
</div> </div>
<hr> <hr>
<div class="row mb-1"><h6 class="text-start">■ 소요예산</h6></div> <div class="row mb-1"><h6 class="text-start">■ 소요예산</h6></div>

View File

@ -113,8 +113,9 @@
<td th:text="${list.opPosition}"></td> <td th:text="${list.opPosition}"></td>
<td th:text="${list.opPhone}"></td> <td th:text="${list.opPhone}"></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>
<td th:if="${list.status eq 'DST004'} or ${list.status eq 'DST006'}">운영중</td> <th:block th:each="code:${session.commonCode.get('CS')}">
<td th:unless="${list.status eq 'DST004'} or ${list.status eq 'DST006'}" th:text="${list.opState}"></td> <td th:if="${list.collaboratorStatus eq code.itemCd}" th:text="${code.itemValue}"></td>
</th:block>
<td th:text="${list.opState}"></td> <td th:text="${list.opState}"></td>
<td th:text="${list.opRank}"></td> <td th:text="${list.opRank}"></td>
</tr> </tr>

View File

@ -8,7 +8,6 @@
<table class="table table-sm table-hover"> <table class="table table-sm table-hover">
<thead> <thead>
<tr> <tr>
<th></th>
<th>성명</th> <th>성명</th>
<th>생년월일</th> <th>생년월일</th>
<th>근무처(소속)</th> <th>근무처(소속)</th>
@ -20,8 +19,8 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="affairTr" th:each="op:${operationPlanList}"> <tr class="opTr" th:each="op:${operationPlanList}">
<td><input type="checkbox" class="rowChkBox" th:value="${op.opKey}"></td> <input type="hidden" class="opKey" th:value="${op.opKey}">
<td th:text="${op.opName}"></td> <td th:text="${op.opName}"></td>
<td th:text="${op.opBirth}"></td> <td th:text="${op.opBirth}"></td>
<td th:text="${op.opPosition}"></td> <td th:text="${op.opPosition}"></td>
@ -34,11 +33,3 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div>
<div class="col-auto">
<button type="button" class="btn btn-primary" id="getOperationPlanBtn">불러오기</button>
</div>
</div>