고지서 발송 현황 수정.

main
jjh 5 months ago
parent c94f77487d
commit 21651e5754

@ -32,6 +32,7 @@ import cokr.xit.fims.cmmn.OutsourcingStngQuery;
import cokr.xit.fims.cmmn.dao.OtptStngMapper; import cokr.xit.fims.cmmn.dao.OtptStngMapper;
import cokr.xit.fims.cmmn.hwp.format.SvbtcList; import cokr.xit.fims.cmmn.hwp.format.SvbtcList;
import cokr.xit.fims.cmmn.pdf.print.format.Advntce; import cokr.xit.fims.cmmn.pdf.print.format.Advntce;
import cokr.xit.fims.cmmn.pdf.print.format.Nht;
import cokr.xit.fims.cmmn.service.bean.OutsourcingStngBean; import cokr.xit.fims.cmmn.service.bean.OutsourcingStngBean;
import cokr.xit.fims.cmmn.service.bean.StngBean; import cokr.xit.fims.cmmn.service.bean.StngBean;
import cokr.xit.fims.cmmn.xls.FormatMaker; import cokr.xit.fims.cmmn.xls.FormatMaker;
@ -90,9 +91,8 @@ public class Sndb01Controller extends ApplicationController {
, getAdvanceNoticeSendingDetailInfo = "/080/info.do" // 사전통지 발송 현황 상세 화면 , getAdvanceNoticeSendingDetailInfo = "/080/info.do" // 사전통지 발송 현황 상세 화면
, getAdvanceNoticeSendingDetailList = "/080/list.do" // 사전통지 발송 현황 상세 목록 조회 , getAdvanceNoticeSendingDetailList = "/080/list.do" // 사전통지 발송 현황 상세 목록 조회
, createSendingLink = "/080/createSndngLink.do" // 사전통지 발송 현황 상세 목록의 우편통합 발송 연계 등록 , createSendingLink = "/080/createSndngLink.do" // 사전통지 발송 현황 상세 목록의 우편통합 발송 연계 등록
, makeAdvanceNoticePdf = "/080/makePdf.do" // 사전통지 발송 현황 사전통지서 출력(PDF) , makeAdvanceNoticePdf = "/080/makeAdvntcePdf.do" // 사전통지 발송 현황 사전통지서 출력(PDF)
, makeAdvanceNoticeOutsourcing = "/080/makeOutsourcing.do" // 사전통지 발송 현황 사전통지서 출력(외주파일) , makeAdvanceNoticeOutsourcing = "/080/makeAdvntceOutsourcing.do" // 사전통지 발송 현황 사전통지서 출력(외주파일)
, createAdvanceNoticeSendBackList = "/080/createSndbkList.do" // 사전통지 발송 상세 목록의 반송 확인(등록)
, noticeSheetTargetMain = "/090/main.do" // 고지서 발송 대상 메인 화면 , noticeSheetTargetMain = "/090/main.do" // 고지서 발송 대상 메인 화면
, getNoticeSheetTargetList = "/090/list.do" // 고지서 발송 대상 목록 조회 , getNoticeSheetTargetList = "/090/list.do" // 고지서 발송 대상 목록 조회
, getNoticeSheetTargetInfo = "/100/info.do" // 고지서 발송 대상 조회 , getNoticeSheetTargetInfo = "/100/info.do" // 고지서 발송 대상 조회
@ -102,6 +102,9 @@ public class Sndb01Controller extends ApplicationController {
, removeNoticeSheetSending = "/110/remove.do" // 고지서 발송 현황 삭제 , removeNoticeSheetSending = "/110/remove.do" // 고지서 발송 현황 삭제
, getNoticeSheetSendingDetailInfo = "/120/info.do" // 고지서 발송 현황 화면 , getNoticeSheetSendingDetailInfo = "/120/info.do" // 고지서 발송 현황 화면
, getNoticeSheetSendingDetailList = "/120/list.do" // 고지서 발송 현황 상세 목록 조회 , getNoticeSheetSendingDetailList = "/120/list.do" // 고지서 발송 현황 상세 목록 조회
, makeNoticeSheetPdf = "/120/makeNhtPdf.do" // 고지서 발송 현황 사전통지서 출력(PDF)
, makeNoticeSheetOutsourcing = "/120/makeNhtOutsourcing.do" // 고지서 발송 현황 사전통지서 출력(외주파일)
, sendingDetailInfo = "/210/info.do" // 수기 반송 등록 상세 , sendingDetailInfo = "/210/info.do" // 수기 반송 등록 상세
, getSendingDetailList = "/210/list.do" // 수기 반송 등록 조회 , getSendingDetailList = "/210/list.do" // 수기 반송 등록 조회
@ -109,6 +112,7 @@ public class Sndb01Controller extends ApplicationController {
, getSendBackList = "/220/list.do" // 반송 현황 목록 조회 , getSendBackList = "/220/list.do" // 반송 현황 목록 조회
, removeSendBack = "/220/remove.do" // 반송 삭제 , removeSendBack = "/220/remove.do" // 반송 삭제
, getSendBackInfo = "/230/info.do" // 반송 정보 조회 , getSendBackInfo = "/230/info.do" // 반송 정보 조회
, createSendBackList = "/230/createSndbkList.do" // 사전통지 발송 상세 목록의 반송 확인(등록)
, createSendBack = "/230/create.do" // 반송 등록 , createSendBack = "/230/create.do" // 반송 등록
, updateSendBack = "/230/update.do" // 반송 수정 , updateSendBack = "/230/update.do" // 반송 수정
, serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면 , serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면
@ -842,23 +846,6 @@ public class Sndb01Controller extends ApplicationController {
} }
} }
/** (sndb/sndb01/090-main) . /** (sndb/sndb01/090-main) .
* @return /sndb/sndb01/090-main * @return /sndb/sndb01/090-main
*/ */
@ -971,10 +958,6 @@ public class Sndb01Controller extends ApplicationController {
@Task @Task
@RequestMapping(name="고지서 발송 대상 상세 화면", value=METHOD_URL.getNoticeSheetTargetInfo) @RequestMapping(name="고지서 발송 대상 상세 화면", value=METHOD_URL.getNoticeSheetTargetInfo)
public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) { public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) {
// ModelAndView mav = getWarningTargetList(req);
// mav.setViewName("fims/sndb/sndb01100-info");
ModelAndView mav = new ModelAndView("fims/sndb/sndb01100-info"); ModelAndView mav = new ModelAndView("fims/sndb/sndb01100-info");
return mav return mav
@ -996,7 +979,7 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="고지서 발송 등록", value=METHOD_URL.createNoticeSheetSendingList) @RequestMapping(name="고지서 발송 대장 등록", value=METHOD_URL.createNoticeSheetSendingList)
public ModelAndView createNoticeSheetSendingList(SndbQuery req, Sndng sndng) { public ModelAndView createNoticeSheetSendingList(SndbQuery req, Sndng sndng) {
boolean saved = false; boolean saved = false;
String rtnMsg = sndngService.createNhtSndngList(req, sndng); String rtnMsg = sndngService.createNhtSndngList(req, sndng);
@ -1021,7 +1004,7 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="발송 대장 삭제", value=METHOD_URL.removeNoticeSheetSending) @RequestMapping(name="고지서 발송 대장 삭제", value=METHOD_URL.removeNoticeSheetSending)
public ModelAndView removeNoticeSheetSending(Sndng sndng) { public ModelAndView removeNoticeSheetSending(Sndng sndng) {
boolean saved = false; boolean saved = false;
String rtnMsg = ""; String rtnMsg = "";
@ -1064,13 +1047,16 @@ public class Sndb01Controller extends ApplicationController {
ManagedUser managedUser = (ManagedUser)currentUser().getUser(); ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM047", "FIM054", "FIM067");
return mav.addObject("pageName", "sndb01110") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav
.addObject("pageName", "sndb01110") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "nhtSndng") // prefix .addObject("infoPrefix", "nhtSndng") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록 .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
.addObject("FIM067List", commonCodes.get("FIM067")) // 발송 등록 구분 코드(SNDNG_REG_SE_CD)
; ;
} }
@ -1357,6 +1343,30 @@ public class Sndb01Controller extends ApplicationController {
} }
} }
/** .
* @param sndngDtl
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task
@RequestMapping(name="발송상세 목록의 반송 정보 등록", value=METHOD_URL.createSendBackList)
public ModelAndView createSendBackList(SndbQuery req) {
boolean saved = false;
String rtnMsg = sndngDtlService.createSndbkList(req);
if (rtnMsg.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("rtnMsg", rtnMsg);
}
/** . /** .
* @param sndngDtl * @param sndngDtl
* @return jsonView * @return jsonView
@ -1937,8 +1947,8 @@ public class Sndb01Controller extends ApplicationController {
* @return PDF * @return PDF
*/ */
@Task @Task
@RequestMapping(name="사전통지발송 현황 사전통지서 pdf 파일 생성", value=METHOD_URL.makeAdvanceNoticePdf) @RequestMapping(name="사전통지서 pdf 파일 생성", value=METHOD_URL.makeAdvanceNoticePdf)
public ModelAndView makeAdvanceNoticePdf(FimsPrintOption printOption, SndbQuery req) { public ModelAndView makeAdvanceNoticePdf(SndbQuery req, FimsPrintOption printOption) {
ModelAndView mav = new ModelAndView("downloadView"); ModelAndView mav = new ModelAndView("downloadView");
List<DataObject> list = sndngDtlService.getSndngTrgtDtlIds(req); List<DataObject> list = sndngDtlService.getSndngTrgtDtlIds(req);
@ -2034,8 +2044,8 @@ public class Sndb01Controller extends ApplicationController {
* @return * @return
*/ */
@Task @Task
@RequestMapping(name="사전통지발송 현황 사전통지서 외주 파일 생성", value=METHOD_URL.makeAdvanceNoticeOutsourcing) @RequestMapping(name="사전통지서 외주 파일 생성", value=METHOD_URL.makeAdvanceNoticeOutsourcing)
public ModelAndView makeAdvanceNoticeOutsourcing(FimsPrintOption printOption, SndbQuery req) { public ModelAndView makeAdvanceNoticeOutsourcing(SndbQuery req, FimsPrintOption printOption) {
ModelAndView mav = new ModelAndView("downloadView"); ModelAndView mav = new ModelAndView("downloadView");
String taskSeCd = ""; String taskSeCd = "";
@ -2110,28 +2120,175 @@ public class Sndb01Controller extends ApplicationController {
return mav; return mav;
} }
/** . /** PDF .
* @param sndngDtl * @return PDF
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="발송상세 목록의 반송 정보 등록", value=METHOD_URL.createAdvanceNoticeSendBackList) @RequestMapping(name="고지서 pdf 파일 생성", value=METHOD_URL.makeNoticeSheetPdf)
public ModelAndView createAdvanceNoticeSendBackList(SndbQuery req) { public ModelAndView makeNoticeSheetPdf(SndbQuery req, FimsPrintOption printOption) {
boolean saved = false; // 고지서 출력 대상 자료 조회
String rtnMsg = sndngDtlService.createSndbkList(req); List<DataObject> list = sndngDtlService.getSndngTrgtDtlIds(req);
if (rtnMsg.contains("[S]")) { String[] crdnIds = new String[list.size()];
saved = true; for (int iLoop = 0; iLoop < list.size(); iLoop++) {
crdnIds[iLoop] = list.get(iLoop).string("CRDN_ID");
}
UserInfo userInfo = currentUser();
fimsOgdpBean.initUserInfo(userInfo);
ModelAndView mav = new ModelAndView("downloadView");
// 단속 대장 조회
SprtQuery sprtQuery = new SprtQuery();
sprtQuery.setCrdnIds(crdnIds);
List<DataObject>dataObjectList = integrationSearchMapper.selectIntegrationDataList(sprtQuery);
for (int i=0; i < dataObjectList.size(); i++) {
DataObject dataObject = dataObjectList.get(i);
String crdnId = dataObject.string("CRDN_ID");
FileQuery fileQuery = new FileQuery();
fileQuery.setInfoType(Crdn.INF_TYPE);
fileQuery.setInfoKeys(crdnId);
List<DataObject> fileInfoList = fileBean.getFileList(fileQuery);
if (fileInfoList != null && fileInfoList.size() > 0) {
for (int j=0; j<fileInfoList.size(); j++) {
dataObject.set("CRDN_PHOTO"+(j+1), fileInfoList.get(j).string("URL"));
dataObject.set("CRDN_PHOTO"+(j+1)+"KEY", fileInfoList.get(j).string("FILE_ID"));
List<DataObject> mosSet = mediaBean.getMosaicList(fileInfoList.get(j).string("FILE_ID"));
if (mosSet != null && !mosSet.isEmpty()) {
dataObject.set("MOS"+fileInfoList.get(j).string("FILE_ID"), mosSet);
}
}
}
}
Print print = new Print();
print.setPrintRequestUserInfo(userInfo);
//출력물 기본 설정
OtptStngQuery otptStngQuery = new OtptStngQuery();
String paperSeCd = printOption.getPaperSeCd();
String taskSeCd = printOption.getTaskSeCd();
otptStngQuery.setSggCd((String)userInfo.getInfo().get("sggCd"));
otptStngQuery.setTaskSeCd(taskSeCd);
otptStngQuery.setSndngSeCd("03");
otptStngQuery.setPaperSeCd(paperSeCd);
DataObject otptBscStng = otptStngMapper.selectOtptBscStng(otptStngQuery);
if(otptBscStng == null) {
otptBscStng = new DataObject();
}
//출력 요소별 설정
List<DataObject> otptArtclStngList = otptStngMapper.selectOtptArtclStngList(otptStngQuery);
DataObject sggStngInfo = stngBean.getStng("sgg");
DataObject deptStngInfo = stngBean.getStng("dept");
//
Map<String, String> globalVariable = printOption.getGlobalVariable();
if(globalVariable == null) {
globalVariable = new HashMap<String, String>();
}
globalVariable.put("offcsFilePath", sggStngInfo.string("OFFCS_FILE_PATH"));
globalVariable.put("logoFilePath", sggStngInfo.string("LOGO_FILE_PATH"));
globalVariable.put("instAddr", sggStngInfo.string("INST_ADDR"));
globalVariable.put("instDaddr", sggStngInfo.string("INST_DADDR"));
globalVariable.put("instZip", sggStngInfo.string("INST_ZIP"));
globalVariable.put("deptTelno", deptStngInfo.string("DEPT_TELNO"));
globalVariable.put("deptFxno", deptStngInfo.string("DEPT_FXNO"));
if(!otptBscStng.string("BCRN_IMG_PATH").equals("")) {
globalVariable.put("bcrnImgPath", otptBscStng.string("BCRN_IMG_PATH"));
}
printOption.setGlobalVariable(globalVariable);
Nht pdfFormat = new Nht(print,printOption,otptBscStng,otptArtclStngList,paperSeCd,dataObjectList);
Map<String, Object> result = pdfFormat.makeFile();
mav.addAllObjects(result);
return mav;
}
/** txt, .
* @return
*/
@Task
@RequestMapping(name="고지서 외주 파일 생성", value=METHOD_URL.makeNoticeSheetOutsourcing)
public ModelAndView makeNoticeSheetOutsourcing(SndbQuery req, FimsPrintOption printOption) {
// 고지서 출력 대상 자료 조회
List<DataObject> list = sndngDtlService.getSndngTrgtDtlIds(req);
String[] crdnIds = new String[list.size()];
for (int iLoop = 0; iLoop < list.size(); iLoop++) {
crdnIds[iLoop] = list.get(iLoop).string("CRDN_ID");
}
UserInfo userInfo = currentUser();
fimsOgdpBean.initUserInfo(userInfo);
ModelAndView mav = new ModelAndView("downloadView");
String taskSeCd = req.getTaskSeCd();
// 단속 대장 조회
SprtQuery sprtQuery = new SprtQuery();
sprtQuery.setCrdnIds(crdnIds);
List<DataObject> dataObjectList = integrationSearchMapper.selectIntegrationDataList(sprtQuery);
for (int i=0; i < dataObjectList.size(); i++) {
DataObject dataObject = dataObjectList.get(i);
if (taskSeCd.equals("")) {
taskSeCd = dataObject.string("TASK_SE_CD");
}
FileQuery fileQuery = new FileQuery();
fileQuery.setInfoType(Crdn.INF_TYPE);
fileQuery.setInfoKeys(dataObject.string("CRDN_ID"));
List<DataObject> fileInfoList = fileBean.getFileList(fileQuery);
if (fileInfoList != null) {
int crdnPhotoCnt = fileInfoList.size();
for (int j=0; j < fileInfoList.size(); j++) {
DataObject fileInfo = fileInfoList.get(j);
dataObject.set("CRDN_PHOTO"+(j+1), fileInfo.string("FILE_PATH"));
dataObject.set("CRDN_PHOTO"+(j+1)+"KEY", fileInfo.string("FILE_ID"));
List<DataObject> mosSet = mediaBean.getMosaicList(fileInfo.string("FILE_ID"));
if (mosSet != null) {
for (int k=0; k < mosSet.size(); k++) {
dataObject.set("MOS"+fileInfo.string("FILE_ID"), mosSet);
}
}
}
dataObject.set("CRDN_PHOTO_CNT", crdnPhotoCnt);
} else { } else {
saved = false; dataObject.set("CRDN_PHOTO_CNT", 0);
}
} }
return new ModelAndView("jsonView") ManagedUser currentUser = (ManagedUser) currentUser().getUser();
.addObject("saved", saved) String sggCd = currentUser.getOrgID();
.addObject("rtnMsg", rtnMsg);
OutsourcingStngQuery stngQuery = new OutsourcingStngQuery();
stngQuery.setSggCd(sggCd);
stngQuery.setTaskSeCd(taskSeCd);
stngQuery.setSndngSeCd("03");
List<DataObject> printStngItems = outsourcingStngBean.getArtclStngList(stngQuery);
OutsourcingFileMaker osMaker = new OutsourcingFileMaker("고지서", printOption, printStngItems, dataObjectList);
Map<String, Object> result = osMaker.makeFile();
mav.addAllObjects(result);
return mav;
} }
/** . /** .

@ -291,7 +291,6 @@
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->

@ -217,7 +217,6 @@
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -324,6 +323,7 @@
let params = { let params = {
title: $P.control.prefixName + " 상세 정보" // 타이틀 title: $P.control.prefixName + " 상세 정보" // 타이틀
, callPurpose: "view" // 호출 용도 , callPurpose: "view" // 호출 용도
, fetchSize: $P.control.defaultFetchSize // 한번에 조회되는 자료 건수
, pageNum: 1 // 페이지 번호 , pageNum: 1 // 페이지 번호
, sggCd: $("#sggCd--${pageName}").val() // 시군구 코드 , sggCd: $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드 , taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드

@ -24,13 +24,12 @@
엑셀 엑셀
</button> </button>
</span> </span>
</div> </div> <!-- 상단 버튼 -->
<!-- / 상단 버튼 -->
<!-- 검색 조건 영역 --> <!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <form id="frmSearch--${pageName}" name="frmSearch">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 메인 조건 --> <!-- 메인 조건 -->
<div class="container-search"> <div class="container-search">
@ -265,7 +264,6 @@
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- / Content --> <!-- / Content -->

@ -29,7 +29,7 @@
<!-- 검색 조건 영역 --> <!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <form id="frmSearch--${pageName}" name="frmSearch">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<!-- 메인 조건 --> <!-- 메인 조건 -->
<div class="container-search"> <div class="container-search">
@ -217,7 +217,6 @@
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -301,7 +300,6 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() { $("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this); let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
@ -325,6 +323,7 @@
let params = { let params = {
title: $P.control.prefixName + " 상세 정보" // 타이틀 title: $P.control.prefixName + " 상세 정보" // 타이틀
, callPurpose: "view" // 호출 용도 , callPurpose: "view" // 호출 용도
, fetchSize: $P.control.defaultFetchSize // 한번에 조회되는 자료 건수
, pageNum: 1 // 페이지 번호 , pageNum: 1 // 페이지 번호
, sggCd: $("#sggCd--${pageName}").val() // 시군구 코드 , sggCd: $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드 , taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드
@ -340,6 +339,7 @@
, title: params.title , title: params.title
, content: resp , content: resp
, size: $P.control.infoSize , size: $P.control.infoSize
, init: () => { setDialogZindex(); }
}); });
} }
}); });

@ -135,7 +135,7 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="30" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="31" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -372,12 +372,12 @@
}); });
} }
// 종적결과 등록 // // 반송 확인(종적결과 등록)
$P.createSndbk = (params) => { $P.createSndbk = (params) => {
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/080/createSndbkList.do") url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/230/createSndbkList.do")
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title);
@ -507,10 +507,10 @@
let fileTypeName = ""; let fileTypeName = "";
if (fileType == "pdf") { if (fileType == "pdf") {
url = wctx.url("/" + submitParam.taskSeCd + "${infoPrefixUrl}" + "/080/makePdf.do"); url = wctx.url("/" + submitParam.taskSeCd + "${infoPrefixUrl}" + "/080/makeAdvntcePdf.do");
fileTypeName = "PDF 파일"; fileTypeName = "PDF 파일";
} else if (fileType == "outsourcing") { } else if (fileType == "outsourcing") {
url = wctx.url("/" + submitParam.taskSeCd + "${infoPrefixUrl}" + "/080/makeOutsourcing.do"); url = wctx.url("/" + submitParam.taskSeCd + "${infoPrefixUrl}" + "/080/makeAdvntceOutsourcing.do");
fileTypeName = "외주 요청 파일"; fileTypeName = "외주 요청 파일";
} }
@ -648,7 +648,7 @@
$P.control.query = $P.mainQuery; $P.control.query = $P.mainQuery;
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/080/list.do"); // 조회 $P.control.urls.load = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/080/list.do"); // 검색
} }
/************************************************************************** /**************************************************************************

@ -7,6 +7,7 @@
<div class="content-wrapper"> <div class="content-wrapper">
<!-- Content --> <!-- Content -->
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<div class="wrapper-list"> <div class="wrapper-list">
@ -23,8 +24,7 @@
엑셀 엑셀
</button> </button>
</span> </span>
</div> </div> <!-- 상단 버튼 -->
<!-- / 상단 버튼 -->
<!-- 검색 조건 영역 --> <!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <form id="frmSearch--${pageName}" name="frmSearch">
@ -36,7 +36,7 @@
<div class="row g-1"> <div class="row g-1">
<!-- 업무구분 --> <!-- 업무구분 -->
<div class="col-12"> <div class="col-12">
<span class="form-label fw-bold form-search-title">업무구분</span> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<span class="form-search-linebox"> <span class="form-search-linebox">
<c:forEach items="${taskListForSgg}" var="item"> <c:forEach items="${taskListForSgg}" var="item">
<label> <label>
@ -49,7 +49,7 @@
</div> </div>
<!-- 발송일자 --> <!-- 발송일자 -->
<div class="col-6"> <div class="col-6">
<span class="form-label fw-bold form-search-title">발송일자</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngYmdFrom--${pageName}">발송일자</label>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom" <input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="시작 날짜 선택" />
@ -60,13 +60,33 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </div>
<!-- 발송 등록 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<option value="">전체</option>
<c:forEach items="${FIM067List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 발송 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<option value="">전체</option>
<c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 동적검색 --> <!-- 동적검색 -->
<div class="col-6"> <div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" /> <input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly /> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" /> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 --> <!-- 상세 검색조건 버튼 -->
<span class="flr"> <span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}"> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
@ -76,14 +96,14 @@
</span> </span>
</div> </div>
</div> </div>
</div> <!-- / 메인 조건 --> </div> <!-- 메인 조건 -->
<!-- 상세 조건 --> <!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse"> <div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1"> <div class="row g-1">
<!-- 등록일자, 수정일자 --> <!-- 등록일자, 수정일자 -->
<div class="col-6"> <div class="col-6">
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> <select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option> <option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option> <option value="mdfcnDt">수정일자</option>
</select> </select>
@ -99,20 +119,18 @@
</div> </div>
<!-- 등록자명, 수정자명 --> <!-- 등록자명, 수정자명 -->
<div class="col-6"> <div class="col-6">
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt"> <select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option> <option value="rgtr">등록자</option>
<option value="mdfr">수정자</option> <option value="mdfr">수정자</option>
</select> </select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" /> <input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control" id="schRgtrNm--${pageName}" name="schRgtrNm" /> <input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색"> <button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
검색
</button>
</div> </div>
</div> </div>
</div> <!-- / 상세 조건 --> </div> <!-- 상세 조건 -->
</form> </form>
<!-- / 검색 조건 영역 --> <!-- 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 --> <!-- 업무 버튼 및 건수 표시 -->
<div> <div>
@ -123,18 +141,17 @@
<ul class="pagination pagination-primary" id="paging--${pageName}"> <ul class="pagination pagination-primary" id="paging--${pageName}">
</ul> </ul>
</div> </div>
<span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnCreateNhtSndng--${pageName}" title="고지서 발송 등록"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="고지서 발송 등록">
발송 등록 발송 등록
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveNhtSndng--${pageName}" title="고지서 발송 삭제"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="고지서 발송 삭제">
발송 삭제 발송 삭제
</button> </button>
</span> </span>
</span> </span>
</div> </div> <!-- 업무 버튼 및 건수 표시 -->
<!-- / 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) --> <!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap"> <div class="card-datatable text-nowrap">
@ -154,6 +171,7 @@
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th> <th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th> <th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM067');">발송구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_END_YMD', this.innerText, 'ymd', '');">납기일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_END_YMD', this.innerText, 'ymd', '');">납기일자</th>
@ -173,6 +191,7 @@
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td> <td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{SNDNG_ID}" onchange="pageObject['${pageName}'].control.select('{SNDNG_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
@ -189,30 +208,30 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv"> <tr class="bpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="dpv"> <tr class="dpv">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="eca"> <tr class="eca">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="pvs"> <tr class="pvs">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="pes"> <tr class="pes">
<td valign="top" colspan="16" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
</div> </div>
</div> </div>
</div> </div> <!-- DataTables(그리드) -->
<!-- / DataTables(그리드) -->
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- / Content --> <!-- Content -->
<div class="content-backdrop fade"></div> <div class="content-backdrop fade"></div>
</div> </div>
@ -229,10 +248,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sndb/sndb01";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}"); $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
@ -242,10 +259,10 @@
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix: "nhtSndng" prefix: "nhtSndng"
, prefixName: "고지서 발송 현황" , prefixName: "고지서 발송 현황"
, infoSize: "xxl"
, keymapper: info => info ? info.SNDNG_ID : "" , keymapper: info => info ? info.SNDNG_ID : ""
, dataGetter: obj => obj.${infoPrefix}List , dataGetter: obj => obj.${infoPrefix}List
, appendData: true , appendData: true
, infoSize: "xxl"
, formats: { , formats: {
SNDNG_YMD: dateFormat SNDNG_YMD: dateFormat
, SNDNG_END_YMD: dateFormat , SNDNG_END_YMD: dateFormat
@ -258,8 +275,8 @@
// $P.control 설정 // $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호 $P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null; $P.control.beforeCurrent = null;
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
@ -296,12 +313,11 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() { $("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this); let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
// 삭제 버튼 // 삭제 버튼
$("#btnRemoveNhtSndng--${pageName}").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox) // DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) { if (keys.length < 1) {
@ -313,24 +329,30 @@
} }
}; };
// 발송 상세 // 상세정보 dialog
$P.control.getInfo = (sndngId) => { $P.control.getInfo = (sndngId) => {
if (typeof sndngId == "undefined" || sndngId == null || sndngId == "") return; if (typeof sndngId == "undefined" || sndngId == null || sndngId == "") return;
let params = $P.control.query; let params = {
params.callPurpose = "view"; // 호출 용도 title: $P.control.prefixName + " 상세 정보" // 타이틀
params.pageNum = 1; // 페이지 번호 , callPurpose: "view" // 호출 용도
params.sndngId = sndngId; // 발송 ID , fetchSize: $P.control.defaultFetchSize // 한번에 조회되는 자료 건수
, pageNum: 1 // 페이지 번호
, sggCd: $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드
, sndngId: sndngId // 발송 ID
}
ajax.get({ ajax.get({
url: $P.control.urls.getInfo url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/120/info.do") + "?openerPageName=${pageName}"
, data: params , data: params || {}
, success: resp => { , success: resp => {
dialog.open({ dialog.open({
id: $P.control.prefixed("DtlDialog") id: $P.control.prefixed("DtlDialog--${pageName}")
, title: "고지서 발송 상세 내용" , title: params.title
, content: resp , content: resp
, size: $P.control.infoSize , size: $P.control.infoSize
, init: () => { setDialogZindex(); }
}); });
} }
}); });
@ -338,18 +360,17 @@
// 삭제 callback // 삭제 callback
$P.control.onRemove = (resp) => { $P.control.onRemove = (resp) => {
let btnTitle = $("#btnRemoveNhtSndng--${pageName}").attr("title"); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력 // 메시지 출력
dialog.alert({ dialog.alert({
content: showMessage content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
if (resp.saved) { if (resp.saved) { $P.fnRefreshList(); } // 자료 재조회
$P.refreshList();
}
} }
// 삭제 // 삭제
@ -357,7 +378,7 @@
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url: $P.control.urls.remove url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/110/remove.do")
, data: params , data: params
, success: resp => $P.control.onRemove(resp) , success: resp => $P.control.onRemove(resp)
}); });
@ -417,47 +438,34 @@
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// callback 사용자 검색 // 검색 자료 재조회
$P.callbackFindUser = (userId, userNm) => { $P.fnRefreshList = () => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID $P.control.untilPageNum = $P.control.query.pageNum;
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
}
// 사용자 검색 $P.control.load(1);
$P.getFindUser = () => {
let params = {
openerPageName : "${pageName}"
, callbackFuncName : "pageObject['${pageName}']['callbackFindUser']"
} }
ajax.get({ // 사용자검색 callback
url: wctx.url("/user/user02/010/main.do") $P.callbackFindUser = (userId, userNm) => {
, data: params || {} $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
, success: resp => { $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
dialog.open({
id: "userDialog"
, title: "사용자 검색"
, content: resp
, size: "lg"
});
}
});
} }
// 신규 등록 dialog -> callback 추가 // 발송 등록 dialog -> callback 추가
$P.getNhtSndngInfo = (params) => { $P.getNhtSndngInfo = (params) => {
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url: wctx.url("/" + params.taskSeCd + $P.PrefixUrl + "/100/info.do") url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/100/info.do") + "?openerPageName=${pageName}"
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
dialog.open({ dialog.open({
id: "nhtTrgtDialog" id: "nhtTrgtDialog--${pageName}"
, title: "고지서 발송 대상" , title: "고지서 발송 대상"
, content: resp , content: resp
, size: "lg" , size: "lg"
, onClose: () => { } , init: () => { setDialogZindex(); }
}); });
} }
}); });
@ -465,28 +473,18 @@
// 삭제사유 callback // 삭제사유 callback
$P.callbackRsn = (obj) => { $P.callbackRsn = (obj) => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return;
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = {}; let params = {};
let selected = $P.control.dataset.getKeys("selected");
params.sndngIds = selected.join(","); // Ids params[$P.control.prefixed("Ids")] = selected.join(","); // IDs
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val(); // 업무 구분 코드
params.delRsn = obj.reason; // 삭제 사유 params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params); $P.control.remove(params);
} }
// 검색 자료 재조회
$P.refreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1);
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
@ -498,9 +496,7 @@
} }
// 초기 기본 설정 // 초기 기본 설정
$P.initForm(); $P.initForm(taskSeCd);
// 기본 데이터 설정
$P.initData(taskSeCd);
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask(taskSeCd); $P.setTask(taskSeCd);
@ -508,6 +504,28 @@
$P.control.dataset.clear(); $P.control.dataset.clear();
} }
// 사용자검색 버튼 클릭 이벤트
$P.fnGetFindUser = () => {
let params = {
openerPageName: "${pageName}"
, callbackFuncName: "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url: wctx.url("/user/user02/010/main.do")
, data: params || {}
, success: resp => {
dialog.open({
id: "userDialog"
, title: "사용자 검색"
, content: resp
, size: "lg"
, init: () => { setDialogZindex(); }
});
}
});
}
// 검색 버튼 이벤트 // 검색 버튼 이벤트
$P.fnSearchList = () => { $P.fnSearchList = () => {
// 검색조건 // 검색조건
@ -525,6 +543,7 @@
if ($P.control.dataset.empty) { if ($P.control.dataset.empty) {
dialog.alert({ dialog.alert({
content: "검색된 자료가 없습니다." content: "검색된 자료가 없습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -538,11 +557,6 @@
$P.control.download(); $P.control.download();
} }
// 사용자 조회 버튼 이벤트
$P.fnFindUser = () => {
$P.getFindUser();
}
// 등록 버튼 이벤트 // 등록 버튼 이벤트
$P.fnCreate = (title) => { $P.fnCreate = (title) => {
let params = { let params = {
@ -560,7 +574,14 @@
// 선택 자료 // 선택 자료
let selected = $P.control.dataset.getKeys("selected"); let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return; if (selected.length < 1) {
dialog.alert({
content: "선택하신 " + $P.control.prefixName + " 정보가 없습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
}
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
@ -572,7 +593,7 @@
dialog.open({ dialog.open({
id: "inputDelRsnDialog" id: "inputDelRsnDialog"
, title: "삭제" , title: title
, size: "lg" , size: "lg"
, content: template , content: template
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
@ -615,13 +636,12 @@
}); });
}); });
// 고지서 발송 등록 버튼 이벤트 // 업무 버튼 이벤트
$("#btnCreateNhtSndng--${pageName}").on("click", function() { $("#btnCreate--${pageName}").on("click", function() {
$P.fnCreate($(this).attr("title")); $P.fnCreate($(this).attr("title")); // 고지서 발송 등록
}); });
// 고지서 발송 삭제 버튼 이벤트 $("#btnRemove--${pageName}").on("click", function() {
$("#btnRemoveNhtSndng--${pageName}").on("click", function() { $P.fnRemove($(this).attr("title")); // 고지서 발송 삭제
$P.fnRemove($(this).attr("title"));
}); });
// DataTables width 변경 조정 // DataTables width 변경 조정
@ -632,7 +652,7 @@
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = (taskSeCd) => {
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
@ -649,55 +669,33 @@
$(this).prop("disabled", "true"); $(this).prop("disabled", "true");
}); });
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schSndngYmdFrom--${pageName}").datepicker("setDate", new Date());
$("#schSndngYmdTo--${pageName}").datepicker("setDate", new Date());
// 동적 검색
$("#byOutput--${pageName}").val("동적 검색");
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// 기본 데이터 설정 // 기본 데이터 설정
$P.initData = (taskSeCd) => { $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
$("#sggCd--${pageName}").val("${sggCd}"); initDatepicker("frmSearch--${pageName}"); // 달력 초기화
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
$("#schSndngYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schSndngYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schSndngYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schSndngYmdTo--${pageName}").datepicker("setDate", new Date());
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
let clsForTask = taskSeCd.toLowerCase(); // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/110/list.do"); // 검색
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {
colsOuterHTML += this.outerHTML; colsOuterHTML += this.outerHTML;
}); });
$("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML); $("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML);
// URL 설정
$P.setURL(taskSeCd);
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/110/list.do"); // 검색
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/110/remove.do"); // 삭제
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/120/info.do"); // 고지서 세부 내용
} }
/************************************************************************** /**************************************************************************

@ -4,16 +4,17 @@
<c:set var="prefixName" scope="request">고지서 발송 현황 상세 정보</c:set> <c:set var="prefixName" scope="request">고지서 발송 현황 상세 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-pop">
<!-- Content --> <!-- Content -->
<div class="container flex-grow-1 px-0"> <div class="container flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<div class="wrapper-pop">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sndngId--${pageName}" name="sndngId" /> <input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" />
</form> <!-- /입력 영역 --> </form>
<!-- 입력 영역 -->
<!-- 업무 버튼 및 건수 표시 --> <!-- 업무 버튼 및 건수 표시 -->
<div> <div>
@ -24,19 +25,19 @@
<ul class="pagination pagination-primary" id="paging--${pageName}"> <ul class="pagination pagination-primary" id="paging--${pageName}">
</ul> </ul>
</div> </div>
<span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀 저장"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀 저장">
엑셀 저장 엑셀 저장
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtOutsourcing--${pageName}" title="파일 출력">
파일 출력
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtPdf01--${pageName}" title="고지서 출력(PDF-A4)"> <button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtPdf01--${pageName}" title="고지서 출력(PDF-A4)">
고지서 출력(PDF-A4) 고지서 출력(PDF-A4)
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtPdf02--${pageName}" title="고지서 출력(PDF-Letter)"> <button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtPdf02--${pageName}" title="고지서 출력(PDF-Letter)">
고지서서 출력(PDF-Letter) 고지서 출력(PDF-Letter)
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnPrintNhtOutsourcing--${pageName}" title="고지서 출력(외주파일)">
고지서 출력(외주파일)
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveDpcnData--${pageName}" title="중복자료 삭제"> <button type="button" class="btn btn-primary w-px-120" id="btnRemoveDpcnData--${pageName}" title="중복자료 삭제">
중복자료 삭제 중복자료 삭제
@ -46,7 +47,7 @@
</button> </button>
</span> </span>
</span> </span>
</div> <!-- / 업무 버튼 및 건수 표시 --> </div> <!-- 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) --> <!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap"> <div class="card-datatable text-nowrap">
@ -134,11 +135,13 @@
</table> </table>
</div> </div>
</div> </div>
</div> </div> <!-- DataTables(그리드) -->
<!-- / DataTables(그리드) -->
</div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> --> <!-- Page Body -->
<span id="tempArea--${pageName}" hidden></span>
</div> <!-- <div class="container flex-grow-1 px-0"> -->
<!-- Content -->
</div> </div>
<!-- / inner page html <div class="content-wrapper"> --> <!-- / inner page html <div class="content-wrapper"> -->
@ -153,10 +156,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sndb/sndb01";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
@ -169,7 +170,7 @@
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix: "nhtSndngDtl" prefix: "nhtSndngDtl"
, prefixName : "발송 상세" , prefixName: "고지서 발송 상세"
, keymapper: info => info ? info.SNDNG_DTL_ID : "" , keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter: obj => obj.${infoPrefix}List , dataGetter: obj => obj.${infoPrefix}List
, appendData: true , appendData: true
@ -180,6 +181,8 @@
, LEVY_YMD: dateFormat , LEVY_YMD: dateFormat
, DUDT_YMD: dateFormat , DUDT_YMD: dateFormat
, FFNLG_AMT: numberFormat , FFNLG_AMT: numberFormat
, PCPTAX: numberFormat
, ADAMT: numberFormat
, SUM_AMT: numberFormat , SUM_AMT: numberFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat
, MDFCN_DT: datetimeFormat , MDFCN_DT: datetimeFormat
@ -188,8 +191,8 @@
// $P.control 설정 // $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호 $P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null; $P.control.beforeCurrent = null;
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
@ -258,19 +261,15 @@
$P.control.load($P.control.query.pageNum + 1); $P.control.load($P.control.query.pageNum + 1);
} }
/************************************************************************** // DataTables에 더블 클릭시 개별총정보 dialog
* 사용자 함수(function)
**************************************************************************/
// 개별총정보 dialog
$P.getTotalInfo = (crdnId) => { $P.getTotalInfo = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callControlName: "pageObject['${pageName}'].control" callControlName: "pageObject['${pageName}'].control"
, callPurpose : "view"
, crdnId : crdnId
, sggCd: $P.control.dataset.getValue("SGG_CD") , sggCd: $P.control.dataset.getValue("SGG_CD")
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") , taskSeCd: $P.control.dataset.getValue("TASK_SE_CD")
, crdnId: crdnId
} }
ajax.get({ ajax.get({
@ -287,9 +286,15 @@
}); });
} }
// 고지서 출력 /**************************************************************************
$P.print = (params) => { * 사용자 함수(function)
if (!params) return; **************************************************************************/
// 검색 자료 재조회
$P.fnRefreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1);
} }
// 반송 확인(종적결과 등록) // 반송 확인(종적결과 등록)
@ -297,15 +302,15 @@
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/210/createList.do") url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/230/createSndbkList.do")
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
// S 또는 F 를 버튼 title 로 변경하여 메시지 출력 let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title);
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, $("#btnCreateSndbk--${pageName}").attr("title"));
dialog.alert({ dialog.alert({
content: showMessage content: showMessage
, onOK: () => { } , init: () => { setDialogZindex(); }
, onOK: () => { $P.fnRefreshList(); } // 자료 재조회
}); });
} }
}); });
@ -319,50 +324,55 @@
if ($P.control.dataset.empty) { if ($P.control.dataset.empty) {
dialog.alert({ dialog.alert({
content: "검색된 자료가 없습니다." content: "검색된 자료가 없습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
} }
// DataTables(그리드) // DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th") let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td")); , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
$P.control.query.cellDefs = cellDefs; $P.control.query.cellDefs = cellDefs;
$P.control.download(); $P.control.download();
} }
// 파일 출력 및 고지서출력 // 고지서 출력 버튼 이벤트
$P.fnMakeFileNht = (title, fileType, paper) => { $P.fnMakeFileNht = (title, fileType, paper) => {
// // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
let submitParam = {
sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngId: $P.control.dataset.getValue("SNDNG_ID") // 발송 ID
};
let url = "";
let fileTypeName = "";
if (fileType == "pdf") { if (fileType == "pdf") {
url = wctx.url("/sprt/sprt01/150/makeNhtPdf.do"); url = wctx.url("/" + submitParam.taskSeCd + "${infoPrefixUrl}" + "/120/makeNhtPdf.do");
fileTypeName = "PDF 파일"; fileTypeName = "PDF 파일";
} else if (fileType == "outsourcing") { } else if (fileType == "outsourcing") {
url = wctx.url("/sprt/sprt01/150/makeNhtOutsourcing.do"); url = wctx.url("/" + submitParam.taskSeCd + "${infoPrefixUrl}" + "/120/makeNhtOutsourcing.do");
fileTypeName = "외주 요청 파일"; fileTypeName = "외주 요청 파일";
} }
let params = {
crdnIds : $P.control.dataset.getValue("CRDN_ID") // 단속 ID
, taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분
};
let inBrowser = false; let inBrowser = false;
if (fileType == "pdf") { if (fileType == "pdf") {
params.paperSeCd = paper; submitParam.paperSeCd = paper;
inBrowser = true; inBrowser = true;
} }
if (inBrowser) { if (inBrowser) {
let parameter = toQuery(params); var parameter = toQuery(submitParam);
let filenameInHeader = ""; var filenameInHeader = "";
fetch(url + "?" + parameter) fetch(url + "?" + parameter)
.then((response) => { .then((response) => {
let 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({
@ -374,9 +384,8 @@
}); });
new Error(""); new Error("");
} }
let parts = header.split(';'); var parts = header.split(';');
filenameInHeader = decodeURIComponent(parts[1].split('=')[1]); filenameInHeader = decodeURIComponent(parts[1].split('=')[1]);
return response.blob(); return response.blob();
}) })
.then((blob) => { .then((blob) => {
@ -384,7 +393,7 @@
}) })
.catch(()=>{}); .catch(()=>{});
} else { } else {
let parameter = toQuery(params); var parameter = toQuery(submitParam);
document.location.href = url + "?" + parameter; document.location.href = url + "?" + parameter;
} }
} }
@ -402,7 +411,11 @@
dialog.alert({ dialog.alert({
content: "종적결과를 확인하시겠습니까?" content: "종적결과를 확인하시겠습니까?"
, onOK: () => { , onOK: () => {
$P.createSndbk($P.mainQuery); // 파리미터 설정
let params = $P.mainQuery; // mainQuery
params.title = title; // 타이틀
$P.createSndbk(params);
} }
}); });
} }
@ -415,25 +428,21 @@
// 기본 버튼 이벤트 // 기본 버튼 이벤트
$("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀
// 파일 출력 버튼 이벤트 // 업무 버튼 이벤트
$("#btnPrintNhtOutsourcing--${pageName}").on("click", function() {
$P.fnMakeFileNht($(this).attr("title"), "outsourcing")
});
// 고지서 출력 버튼 이벤트
$("#btnPrintNhtPdf01--${pageName}").on("click", function() { $("#btnPrintNhtPdf01--${pageName}").on("click", function() {
$P.fnMakeFileNht($(this).attr("title"), "pdf", "01"); $P.fnMakeFileNht($(this).attr("title"), "pdf", "01"); // 고지서 출력(PDF-A4)
}); });
// 고지서 출력 버튼 이벤트
$("#btnPrintNhtPdf02--${pageName}").on("click", function() { $("#btnPrintNhtPdf02--${pageName}").on("click", function() {
$P.fnMakeFileNht($(this).attr("title"), "pdf", "01"); $P.fnMakeFileNht($(this).attr("title"), "pdf", "01"); // 고지서 출력(PDF-Letter)
});
$("#btnPrintNhtOutsourcing--${pageName}").on("click", function() {
$P.fnMakeFileNht($(this).attr("title"), "outsourcing") // 고지서 출력(외주파일)
}); });
// 중복자료 삭제 버튼 이벤트
$("#btnRemoveDpcnData--${pageName}").on("click", function() { $("#btnRemoveDpcnData--${pageName}").on("click", function() {
$P.fnRemoveDpcnData(); $P.fnRemoveDpcnData($(this).attr("title")); // 중복자료 삭제
}); });
// 반송 등록 버튼 이벤트
$("#btnCreateSndbk--${pageName}").on("click", function() { $("#btnCreateSndbk--${pageName}").on("click", function() {
$P.fnCreateSndbk(); $P.fnCreateSndbk($(this).attr("title")); // 반송 등록
}); });
// DataTables width 변경 조정 // DataTables width 변경 조정
@ -443,7 +452,7 @@
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
// DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다. // DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다.
$("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) { $("#${infoPrefix}Dialog--${openerPageName}").on("shown.bs.modal", function (e) {
$P.control.setData({ $P.control.setData({
${infoPrefix}List: ${nhtSndngDtlList} ${infoPrefix}List: ${nhtSndngDtlList}
, ${infoPrefix}Start: ${nhtSndngDtlStart} , ${infoPrefix}Start: ${nhtSndngDtlStart}
@ -468,15 +477,11 @@
$("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID")); $("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID"));
// 검색 조건 설정 // 검색 조건 설정
$P.control.defaultFetchSize = $P.mainQuery.fetchSize;
$P.control.query = $P.mainQuery; $P.control.query = $P.mainQuery;
// URL 설정
$P.setURL($P.mainQuery.taskSeCd);
}
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => { $P.control.urls.load = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/120/list.do"); // 검색
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/100/list.do"); // 검색
} }
/************************************************************************** /**************************************************************************

@ -313,7 +313,6 @@
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body --> <!-- Page Body -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content --> <!-- Content -->
@ -327,13 +326,6 @@
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = {};
// 공통 코드
var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드
var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드
var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드
var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드
var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -794,29 +786,6 @@
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase()); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무에 따른 위반 내용
let vltnCode = [];
if (taskSeCd == "PVS") { // 주정차 위반
vltnCode = FIM004.list();
} else if (taskSeCd == "BPV") { // 전용차로 위반
vltnCode = FIM005.list();
} else if (taskSeCd == "DPV") { // 장애인 전용
vltnCode = FIM006.list();
} else if (taskSeCd == "ECA") { // 전기차 주차 위반
vltnCode = FIM061.list();
} else if (taskSeCd == "PES") { // 밤샘 주차 위반
vltnCode = FIM064.list();
} else {
return;
}
// 위반 항목
$("#schVltnCd--${pageName}").empty();
$("#schVltnCd--${pageName}").append("<option value=''>" + "전체" + "</option>");
$(vltnCode).each(function(index, item) {
$("#schVltnCd--${pageName}").append("<option value='" + vltnCode[index].code +"'>" + vltnCode[index].value + "</option>");
})
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");

@ -315,6 +315,7 @@
let params = { let params = {
title: $P.control.prefixName + " 상세 정보" // 타이틀 title: $P.control.prefixName + " 상세 정보" // 타이틀
, callPurpose: "view" // 호출 용도 , callPurpose: "view" // 호출 용도
, fetchSize: $P.control.defaultFetchSize // 한번에 조회되는 자료 건수
, pageNum: 1 // 페이지 번호 , pageNum: 1 // 페이지 번호
, sggCd: $("#sggCd--${pageName}").val() // 시군구 코드 , sggCd: $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드 , taskSeCd: $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val() // 업무 구분 코드

Loading…
Cancel
Save