외사첩보망 > 운영계획 인쇄 기능 추가.

master
강석 최 2023-06-28 15:15:40 +09:00
parent 9800a85bf7
commit a0edb7b4a6
6 changed files with 75 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze;
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeApprv;
@ -17,8 +18,10 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpSession;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@RestController
@RequiredArgsConstructor
@ -153,6 +156,8 @@ public class IntelligenceNetworkController {
@PostMapping("/operationPlanStateChange")
public Integer operationPlanStateChange(@AuthenticationPrincipal UserInfo loginUser, OperationPlanApprv apprv){
apprv.setUserSeq(loginUser.getUserSeq());
apprv.setOgCd(loginUser.getOgCd());
apprv.setOfcCd(loginUser.getOfcCd());
apprv.setUserGrd(loginUser.getTitleCd());
apprv.setUserNm(loginUser.getUserNm());
apprv.setSaveDt(LocalDateTime.now());
@ -473,4 +478,12 @@ public class IntelligenceNetworkController {
intelligenceNetworkService.deleteFireExtensionReport(feReport.getFerKey());
}
@GetMapping("/operationPlanJson")
public OperationPlan operationPlanJson(OperationPlan plan, HttpSession session){
Map<String, List<CodeMgt>> codeMap = (Map<String, List<CodeMgt>>) session.getAttribute("commonCode");
plan = intelligenceNetworkService.selectOperationPlan(plan.getOpKey());
plan = intelligenceNetworkService.getPrintTypePlan(plan, codeMap);
return plan;
}
}

View File

@ -27,6 +27,10 @@ public class OperationPlanApprv {
private String state;
@Column(name = "user_seq")
private Integer userSeq;
@Column(name = "og_cd")
private String ogCd;
@Column(name = "ofc_Cd")
private String ofcCd;
@Column(name = "user_grd")
private String userGrd;
@Column(name = "user_nm")

View File

@ -3,6 +3,7 @@ package com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.service;
import com.dbnt.faisp.config.BaseService;
import com.dbnt.faisp.config.FileInfo;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.mapper.IntelligenceNetworkMapper;
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyze;
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.model.IntelligenceAnalyzeApprv;
@ -22,6 +23,7 @@ import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanAp
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanFileRepository;
import com.dbnt.faisp.main.fpiMgt.intelligenceNetwork.repository.OperationPlanRepository;
import com.dbnt.faisp.main.userInfo.service.UserAlarmService;
import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -29,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@Service
@ -261,4 +264,15 @@ public class IntelligenceNetworkService extends BaseService {
public void deleteFireExtensionReport(Integer ferKey) {
fireExtensionReportRepository.bulkModifyingByFerKeyToFerState(ferKey, "DST008");
}
public OperationPlan getPrintTypePlan(OperationPlan plan, Map<String, List<CodeMgt>> codeMap) {
plan.setWrtPart(Utils.searchCodeValue(plan.getWrtPart(), codeMap.get(plan.getWrtOrgan())));
plan.setWrtOrgan(Utils.searchCodeValue(plan.getWrtOrgan(), codeMap.get("OG")));
plan.setWrtUserGrd(Utils.searchCodeValue(plan.getWrtUserGrd(), codeMap.get("JT")));
OperationPlanApprv apprv = plan.getApprvList().get(0);
apprv.setOfcCd(Utils.searchCodeValue(apprv.getOfcCd(), codeMap.get(apprv.getOgCd())));
apprv.setOgCd(Utils.searchCodeValue(apprv.getOgCd(), codeMap.get("OG")));
apprv.setUserGrd(Utils.searchCodeValue(apprv.getUserGrd(), codeMap.get("JT")));
return plan;
}
}

View File

@ -0,0 +1,34 @@
$(document).on('click', '#planPrintBtn', function (){
$.ajax({
url: '/intelligenceNetwork/operationPlanJson',
type: 'GET',
data: {opKey: $(this).attr('data-opkey')},
dataType:"json",
success: function(data){
const plan = makePlanPrintData(data);
var url = $("#printUrl").attr("data-printurl")+"/singlePrint.jsp";
var title = "운영계획 인쇄";
var status = "width=900px,height=800px,scrollbars=yes";
window.open("", title, status);
const form = $("#printForm")[0];
form.target = title;
form.action = url;
form.crfName.value = "operationPlan";
form.json.value = JSON.stringify(plan);
form.method = "post";
form.submit();
},
error:function(e){
ajaxErrorAction(e);
}
});
})
function makePlanPrintData(data){
data.wrtDt = data.wrtDt.replace("T", " ").substring(0, 15);
data.wrtPart = data.wrtOrgan+" "+data.wrtPart;
data.headPart = data.apprvList[0].ogCd+" "+data.apprvList[0].ofcCd;
data.headGrd = data.apprvList[0].userGrd;
data.headNm = data.apprvList[0].userNm;
return data;
}

View File

@ -4,6 +4,7 @@
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/igActivities/intelligenceNetwork/operationPlan.js}"></script>
<script type="text/javascript" th:src="@{/js/igActivities/intelligenceNetwork/inPrint.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
@ -172,5 +173,11 @@
</div>
</div>
</div>
<div class="d-none">
<form id="printForm">
<input type="hidden" name="crfName">
<input type="hidden" name="json">
</form>
</div>
</div>
</html>

View File

@ -153,6 +153,9 @@
</th:block>
</div>
<div class="col-auto">
<th:block th:if="${operationPlan.opState eq 'DST006'}">
<button type="button" class="btn btn-secondary" id="planPrintBtn" th:data-opkey="${operationPlan.opKey}">인쇄</button>
</th:block>
<th:block th:if="${operationPlan.wrtOrgan eq viewOrgan}">
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and operationPlan.opState eq 'DST002'}">
<!--계장, 계장대행 결재권한이 있으면서 결재대기상태-->