계도장 현황 화면 수정

master
mjkhan21 4 months ago
parent 8a40979f22
commit 98298bcb1b

@ -44,24 +44,31 @@ public class JasperController extends AbstractController {
@RequestMapping(name="계도장 미리보기", value="/warning.do") @RequestMapping(name="계도장 미리보기", value="/warning.do")
public ModelAndView previewWarning(SndbQuery req) { public ModelAndView previewWarning(SndbQuery req) {
List<DataObject> crdnList = getCrdnList(req); List<DataObject> result = sndngDtlService.getSndngDtlList(req.setFetchSize(0));
crdnList.forEach(row -> { List<String> crdnIdList = result.stream().map(row -> row.string("CRDN_ID")).distinct().toList();
row.set("CRDN_YMD_TM", DataFormat.yyyy_mm_dd(row.get("CRDN_YMD")) + " " + DataFormat.hh_mm_ss(row.get("CRDN_TM"))); String[] crdnIDs = crdnIdList.toArray(new String[crdnIdList.size()]);
}); Map<String, DataObject> crdns = getCrdnList(new SndbQuery().setCrdnIds(crdnIDs)).stream()
List<String> crdnIdList = crdnList.stream().map(row -> row.string("CRDN_ID")).toList(); .collect(Collectors.toMap(row -> row.string("CRDN_ID"), row -> row));
List<Crdn> crdns = crdnService.getCrackdowns(crdnIdList); result.forEach(row -> {
List<Crdn> upds = crdns.stream() String crdnId = row.string("CRDN_ID");
.filter(crdn -> { DataObject crdn = crdns.get(crdnId);
return true; if (crdn == null) return;
})
.toList(); row.set("CRDN_YMD_TM", DataFormat.yyyy_mm_dd(crdn.get("CRDN_YMD")) + " " + DataFormat.hh_mm_ss(crdn.get("CRDN_TM")))
String[] crdnIds = crdnIdList.toArray(new String[crdnList.size()]); .set("RTPYR_ADDR", crdn.get("RTPYR_ADDR"))
Map<String, List<FileInfo>> crdnFiles = fileBean.getFilesOf(Crdn.INF_TYPE, crdnIds).stream() .set("RTPYR_DTL_ADDR", crdn.get("RTPYR_DTL_ADDR"))
.set("RTPYR_ZIP", crdn.get("RTPYR_ZIP"))
.set("RTPYR_NM", crdn.get("RTPYR_NM"))
.set("RTPYR_NM", crdn.get("RTPYR_NM"))
.set("VLTN_ARTCL", crdn.get("VLTN_ARTCL"))
.set("VLTN_LAW_NM", crdn.get("VLTN_LAW_NM"))
;
});
Map<String, List<FileInfo>> crdnFiles = fileBean.getFilesOf(Crdn.INF_TYPE, crdnIDs).stream()
.collect(Collectors.groupingBy(row -> row.getInfoKey())); .collect(Collectors.groupingBy(row -> row.getInfoKey()));
List<InputStream> inputStreams = crdnList.stream() List<InputStream> inputStreams = result.stream()
.flatMap(crdn -> { .flatMap(crdn -> {
crdn.set("CRDN_YMD_TM", DataFormat.yyyy_mm_dd(crdn.get("CRDN_YMD")) + " " + DataFormat.hh_mm_ss(crdn.get("CRDN_TM")));
List<FileInfo> files = crdnFiles.get(crdn.string("CRDN_ID")); List<FileInfo> files = crdnFiles.get(crdn.string("CRDN_ID"));
List<InputStream> inputs = isEmpty(files) ? Collections.emptyList() : List<InputStream> inputs = isEmpty(files) ? Collections.emptyList() :
files.stream() files.stream()
@ -88,7 +95,7 @@ public class JasperController extends AbstractController {
return new ModelAndView("jasperView") return new ModelAndView("jasperView")
.addObject("jasper", "warning.jasper") .addObject("jasper", "warning.jasper")
.addObject("params", params) .addObject("params", params)
.addObject("dataMap", crdnList) .addObject("dataMap", result)
.addObject("filename", "warning.pdf") .addObject("filename", "warning.pdf")
.addObject("closables", inputStreams); .addObject("closables", inputStreams);
} }

@ -347,7 +347,8 @@ $(document).ready(function(){
$P.$findn("byOutput").val("동적 검색"); $P.$findn("byOutput").val("동적 검색");
$P.$findn("schRgtrNm").prop("readonly", true); // 사용자 이름 $P.$findn("schRgtrNm").prop("readonly", true); // 사용자 이름
$P.$findn("schCrdnYmdFrom").datepicker('setDate', DateSupport.getAddDay(-365)); $P.$findn("schCrdnYmdFrom").datepicker('setDate', DateSupport.getAddDay(-1));
<%-- $P.$findn("schCrdnYmdFrom").datepicker('setDate', DateSupport.getAddDay(-365));--%>
$P.$findn("schCrdnYmdTo").datepicker('setDate', TODAY()); $P.$findn("schCrdnYmdTo").datepicker('setDate', TODAY());
ctrl.dataset.setData([]); ctrl.dataset.setData([]);
} }

@ -343,33 +343,43 @@
tabName = $P.$findn("tabMain").find("button.active").text().trim(); tabName = $P.$findn("tabMain").find("button.active").text().trim();
// 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정. // 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정.
if (tabName == "발송대기") { // 발송대기 switch (tabName) {
$P.ctrl.query.postPrcsSttsCdFrom = "01"; case "발송대기":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "01"; $P.ctrl.query.postPrcsSttsCdTo = "01";
} else if (tabName == "발송취소") { // 발송취소 break;
$P.ctrl.query.postPrcsSttsCdFrom = "02"; case "발송취소":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "02"; $P.ctrl.query.postPrcsSttsCdTo = "02";
} else if (tabName == "전송") { // 전송 break;
$P.ctrl.query.postPrcsSttsCdFrom = "03"; case "전송":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "03"; $P.ctrl.query.postPrcsSttsCdTo = "03";
} else if (tabName == "접수") { // 접수 break;
$P.ctrl.query.postPrcsSttsCdFrom = "05"; case "접수":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "05"; $P.ctrl.query.postPrcsSttsCdTo = "05";
} else if (tabName == "제작불가") { // 제작불가 break;
case "제작불가":
$P.ctrl.query.postPrcsSttsCdFrom = "21"; $P.ctrl.query.postPrcsSttsCdFrom = "21";
$P.ctrl.query.postPrcsSttsCdTo = "79"; $P.ctrl.query.postPrcsSttsCdTo = "79";
} else if (tabName == "제작완료") { // 제작완료 break;
$P.ctrl.query.postPrcsSttsCdFrom = "80"; case "제작완료":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "80"; $P.ctrl.query.postPrcsSttsCdTo = "80";
} else if (tabName == "배달중") { // 배달중 break;
$P.ctrl.query.postPrcsSttsCdFrom = "90"; case "배달중":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "90"; $P.ctrl.query.postPrcsSttsCdTo = "90";
} else if (tabName == "배달완료") { // 배달완료 break;
$P.ctrl.query.postPrcsSttsCdFrom = "95"; case "배달완료":
$P.ctrl.query.postPrcsSttsCdFrom =
$P.ctrl.query.postPrcsSttsCdTo = "95"; $P.ctrl.query.postPrcsSttsCdTo = "95";
} else { // 전체 break;
default:
$P.ctrl.query.postPrcsSttsCdFrom = "01"; $P.ctrl.query.postPrcsSttsCdFrom = "01";
$P.ctrl.query.postPrcsSttsCdTo = "99"; $P.ctrl.query.postPrcsSttsCdTo = "99";
break;
} }
$P.ctrl.load(1); $P.ctrl.load(1);

@ -48,7 +48,8 @@
<th class="cmn" style="width: 160px;">등기번호</th> <th class="cmn" style="width: 160px;">등기번호</th>
<th class="cmn" style="width: 120px;">발송일자</th> <th class="cmn" style="width: 120px;">발송일자</th>
<th class="cmn" style="width: 120px;">납기일자</th> <th class="cmn" style="width: 120px;">납기일자</th>
<th class="cmn" style="width: 42rem;">수취인</th> <th class="cmn" style="width: 200px;">수취인</th>
<th class="cmn" style="width: 380px;">주소</th>
<th class="cmn" style="width: 160px;">배달일시</th> <th class="cmn" style="width: 160px;">배달일시</th>
<th class="cmn" style="width: 200px;">미배달사유</th> <th class="cmn" style="width: 200px;">미배달사유</th>
<th class="cmn" style="width: 200px;">수령인</th> <th class="cmn" style="width: 200px;">수령인</th>
@ -70,10 +71,8 @@
<td class="cmn text-center" onclick ondblclick>{RG_NO}</td> <td class="cmn text-center" onclick ondblclick>{RG_NO}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_YMD}</td> <td class="cmn text-center" onclick ondblclick>{SNDNG_YMD}</td>
<td class="cmn text-center" onclick ondblclick>{DUDT_YMD}</td> <td class="cmn text-center" onclick ondblclick>{DUDT_YMD}</td>
<td class="cmn text-start" onclick ondblclick> <td class="cmn text-start" onclick ondblclick>{RCPN_NM}</td>
<span style="display: inline-block; min-width: 12rem;">{RCPN_NM}</span> <td class="cmn text-start" onclick ondblclick>{RCPN_ZIP}, {RCPN_ADDR} {RCPN_DTL_ADDR}</td>
{RCPN_ZIP}, {RCPN_ADDR} {RCPN_DTL_ADDR}
</td>
<td class="cmn text-center" onclick ondblclick>{DLVR_YMD} {DLVR_TM}</td> <td class="cmn text-center" onclick ondblclick>{DLVR_YMD} {DLVR_TM}</td>
<td class="cmn text-start" onclick ondblclick>{UNDLVR_RSN_NM}</td> <td class="cmn text-start" onclick ondblclick>{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick ondblclick>{ACTL_RCPN_NM}</td> <td class="cmn text-start" onclick ondblclick>{ACTL_RCPN_NM}</td>
@ -211,7 +210,7 @@
fetch(url + "?" + parameter) fetch(url + "?" + parameter)
.then((response) => { .then((response) => {
var header = response.headers.get('Content-Disposition'); var header = response.headers.get('Content-Disposition');
if(!header){ if (!header){
response.json().then((responseJson)=>{ response.json().then((responseJson)=>{
dialog.alert({ dialog.alert({
content: fileTypeName+" 생성 중 오류가 발생하였습니다." content: fileTypeName+" 생성 중 오류가 발생하였습니다."

@ -52,7 +52,8 @@
<th class="cmn" style="width: 160px;">등기번호</th> <th class="cmn" style="width: 160px;">등기번호</th>
<th class="cmn" style="width: 120px;">발송일자</th> <th class="cmn" style="width: 120px;">발송일자</th>
<th class="cmn" style="width: 120px;">발송종료일자</th> <th class="cmn" style="width: 120px;">발송종료일자</th>
<th class="cmn" style="width: 42rem;">수취인</th> <th class="cmn" style="width: 200px;">수취인</th>
<th class="cmn" style="width: 380px;">주소</th>
<th class="cmn" style="width: 160px;">배달일시</th> <th class="cmn" style="width: 160px;">배달일시</th>
<th class="cmn" style="width: 200px;">미배달사유</th> <th class="cmn" style="width: 200px;">미배달사유</th>
<th class="cmn" style="width: 200px;">수령인</th> <th class="cmn" style="width: 200px;">수령인</th>
@ -81,10 +82,8 @@
<td class="cmn text-center" onclick ondblclick>{RG_NO}</td> <td class="cmn text-center" onclick ondblclick>{RG_NO}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_YMD}</td> <td class="cmn text-center" onclick ondblclick>{SNDNG_YMD}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_END_YMD}</td> <td class="cmn text-center" onclick ondblclick>{SNDNG_END_YMD}</td>
<td class="cmn text-start" onclick ondblclick> <td class="cmn text-start" onclick ondblclick>{RCPN_NM}</td>
<span style="display: inline-block; min-width: 12rem;">{RCPN_NM}</span> <td class="cmn text-start" onclick ondblclick>{RCPN_ZIP}, {RCPN_ADDR} {RCPN_DTL_ADDR}</td>
{RCPN_ZIP}, {RCPN_ADDR}, {RCPN_DTL_ADDR}
</td>
<td class="cmn text-center" onclick ondblclick>{DLVR_YMD} {DLVR_TM}</td> <td class="cmn text-center" onclick ondblclick>{DLVR_YMD} {DLVR_TM}</td>
<td class="cmn text-start" onclick ondblclick>{UNDLVR_RSN_NM}</td> <td class="cmn text-start" onclick ondblclick>{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick ondblclick>{ACTL_RCPN_NM}</td> <td class="cmn text-start" onclick ondblclick>{ACTL_RCPN_NM}</td>

@ -247,10 +247,10 @@
<input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrNo" data-map="RTPYR_NO" placeholder="번호" readonly /> <input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrNo" data-map="RTPYR_NO" placeholder="번호" readonly />
</div> </div>
<div class="row col-6"> <div class="row col-6">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rtpyrNm">연락처</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-100 text-sm-end" for="rtpyrNm">연락처</label>
<input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrMblTelno" data-map="RTPYR_MBL_TELNO" placeholder="휴대전화번호" readonly /> <input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrMblTelno" data-map="RTPYR_MBL_TELNO" placeholder="휴대전화번호" readonly />
<input is="id-input" type="text" class="form-control w-20" style="margin-left: .3rem;" name="rtpyrTelno" data-map="RTPYR_TELNO" placeholder="전화번호" readonly /> <input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrTelno" data-map="RTPYR_TELNO" placeholder="전화번호" readonly />
<input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrEml" data-map="RTPYR_EML" placeholder="이메일" readonly /> <input is="id-input" type="text" class="form-control w-25" style="margin-left: .3rem;" name="rtpyrEml" data-map="RTPYR_EML" placeholder="이메일" readonly />
</div> </div>
</div> </div>

@ -4,10 +4,11 @@
<footer class="content-footer footer bg-footer-theme align-self-stretch" style="height:1.5rem"> <footer class="content-footer footer bg-footer-theme align-self-stretch" style="height:1.5rem">
<div class="container-xxl d-flex flex-wrap justify-content-between py-0 flex-md-row flex-column"> <div class="container-xxl d-flex flex-wrap justify-content-between py-0 flex-md-row flex-column">
<div class="mb-2 mb-md-0 w-100"> <div class="mb-2 mb-md-0 w-100">
<%-- © <span id="footerYear"></span> --%> <%-- © <span id="footerYear"></span>
<script> <script>
document.getElementById("footerYear").innerText = new Date().getFullYear(); document.getElementById("footerYear").innerText = new Date().getFullYear();
</script> </script>
--%>
<a target="_blank" class="footer-link fw-bold" href="https://www.jongno.go.kr/">종로구청</a> <a target="_blank" class="footer-link fw-bold" href="https://www.jongno.go.kr/">종로구청</a>
<%-- <a target="_blank" class="footer-link fw-bold" href="https://xit.co.kr">(주)엑스아이티</a>--%> <%-- <a target="_blank" class="footer-link fw-bold" href="https://xit.co.kr">(주)엑스아이티</a>--%>
<span class="float-end"> <span class="float-end">

Loading…
Cancel
Save