사전통지 발송 대상 수정.

main
jjh 11 months ago
parent 6665f0b8f6
commit 9a40c18c58

@ -1,5 +1,6 @@
package cokr.xit.fims.excl.web; package cokr.xit.fims.excl.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -93,10 +94,14 @@ public class Excl01Controller extends ApplicationController {
List<?> result = levyExclService.getLevyExclList(setFetchSize(req)); List<?> result = levyExclService.getLevyExclList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl"); return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl");
} else { } else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {}); ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter() XLSWriter xlsx = new XLSWriter()
.setFilename("부과제외 목록.xlsx") .setFilename("부과제외" + "_목록_" + dateTime + ".xlsx")
.worksheet(0); .worksheet(0);
// CellStyle 지정은 여기에서.. // CellStyle 지정은 여기에서..

@ -1,5 +1,6 @@
package cokr.xit.fims.excl.web; package cokr.xit.fims.excl.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -104,10 +105,14 @@ public class Excl02Controller extends ApplicationController {
List<?> result = opnnSbmsnService.getOpnnSbmsnList(setFetchSize(req)); List<?> result = opnnSbmsnService.getOpnnSbmsnList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "opnnSbmsn"); return setCollectionInfo(new ModelAndView("jsonView"), result, "opnnSbmsn");
} else { } else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {}); ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter() XLSWriter xlsx = new XLSWriter()
.setFilename("의견제출 목록.xlsx") .setFilename("의견제출" + "_목록_" + dateTime + ".xlsx")
.worksheet(0); .worksheet(0);
// CellStyle 지정은 여기에서.. // CellStyle 지정은 여기에서..

@ -1,5 +1,6 @@
package cokr.xit.fims.excl.web; package cokr.xit.fims.excl.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -90,10 +91,14 @@ public class Excl03Controller extends ApplicationController {
List<?> result = crdnReRegService.getCrdnReRegList(setFetchSize(req)); List<?> result = crdnReRegService.getCrdnReRegList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "crdnReReg"); return setCollectionInfo(new ModelAndView("jsonView"), result, "crdnReReg");
} else { } else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {}); ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter() XLSWriter xlsx = new XLSWriter()
.setFilename("단속 재등록 목록.xlsx") .setFilename("단속재등록" + "_목록_" + dateTime + ".xlsx")
.worksheet(0); .worksheet(0);
// CellStyle 지정은 여기에서.. // CellStyle 지정은 여기에서..

@ -1,5 +1,6 @@
package cokr.xit.fims.levy.web; package cokr.xit.fims.levy.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -96,10 +97,14 @@ public class Levy01Controller extends ApplicationController {
List<?> result = levyService.getRductLevyTrgtList(setFetchSize(req)); List<?> result = levyService.getRductLevyTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "rductLevyTrgt"); return setCollectionInfo(new ModelAndView("jsonView"), result, "rductLevyTrgt");
} else { } else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {}); ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter() XLSWriter xlsx = new XLSWriter()
.setFilename("사전 감경부과 대상 목록.xlsx") .setFilename("사전감경부과대상" + "_목록_" + dateTime + ".xlsx")
.worksheet(0); .worksheet(0);
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬
@ -236,10 +241,14 @@ public class Levy01Controller extends ApplicationController {
List<?> result = levyService.getLevyList(setFetchSize(req)); List<?> result = levyService.getLevyList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "levy"); return setCollectionInfo(new ModelAndView("jsonView"), result, "levy");
} else { } else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {}); ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter() XLSWriter xlsx = new XLSWriter()
.setFilename("부과 목록.xlsx") .setFilename("부과" + "_목록_" + dateTime + ".xlsx")
.worksheet(0); .worksheet(0);
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬

@ -1,5 +1,6 @@
package cokr.xit.fims.rcvm.web; package cokr.xit.fims.rcvm.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -91,10 +92,14 @@ public class Rcvm01Controller extends ApplicationController {
List<?> result = rcvmtService.getRcvmtList(setFetchSize(req)); List<?> result = rcvmtService.getRcvmtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt"); return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt");
} else { } else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {}); ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter() XLSWriter xlsx = new XLSWriter()
.setFilename("수납 목록.xlsx") .setFilename("수납" + "_목록_" + dateTime + ".xlsx")
.worksheet(0); .worksheet(0);
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬

@ -179,9 +179,10 @@ public class Sndb01Controller extends ApplicationController {
, Map.entry("민원처리결과", xlsx.style("CVLCPT_PRCS_NM", center)) , Map.entry("민원처리결과", xlsx.style("CVLCPT_PRCS_NM", center))
, Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT))
, Map.entry("차량번호", "VHRNO") , Map.entry("차량번호", "VHRNO")
, Map.entry("위반항목", "VLTN_ARTCL")
, Map.entry("단속법정동", "CRDN_STDG_NM") , Map.entry("단속법정동", "CRDN_STDG_NM")
, Map.entry("단속장소", "CRDN_PLC") , Map.entry("단속장소", "CRDN_PLC")
, Map.entry("위반항목", "VLTN_ARTCL") , Map.entry("상세단속장소", "DTL_CRDN_PLC")
, Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric)) , Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric))
, Map.entry("처리상태", "CRDN_STTS_NM") , Map.entry("처리상태", "CRDN_STTS_NM")
, Map.entry("납부자명", "RTPYR_NM") , Map.entry("납부자명", "RTPYR_NM")
@ -377,7 +378,8 @@ public class Sndb01Controller extends ApplicationController {
addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064"); addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064");
return mav.addObject("pageName", "sndb01050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav
.addObject("pageName", "sndb01050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "advntceTrgt") // prefix .addObject("infoPrefix", "advntceTrgt") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
@ -401,9 +403,70 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
public ModelAndView getAdvanceNoticeTargetList(SndbQuery req) { public ModelAndView getAdvanceNoticeTargetList(SndbQuery req) {
List<?> result = sndngService.getAdvntceTrgtList(setFetchSize(req)); if (!"xls".equals(req.getDownload())) {
List<?> result = sndngService.getAdvntceTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "advntceTrgt");
} else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
XLSWriter xlsx = new XLSWriter()
.setFilename("사전통지발송대상" + "_목록_" + dateTime + ".xlsx")
.worksheet(0);
// CellStyle 지정은 여기에서..
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬
CellStyle numeric = xlsx.n_nn0(); // 숫자 3자리 콤마(,)
CellStyle dateYMD = xlsx.yyyy_mm_dd(); // 연월일
CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간
List<DataObject> list = sndngService.getAdvntceTrgtList(req.setFetchSize(0));
CellDef.setValues(cellDefs, Map.ofEntries(
Map.entry("업무구분", xlsx.style("TASK_SE_NM", center))
, Map.entry("민원신청번호", xlsx.style("CVLCPT_APLY_NO", center))
, Map.entry("민원접수번호", xlsx.style("CVLCPT_RCPT_NO", center))
, Map.entry("민원접수일자", xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD))
, Map.entry("민원처리담당자", xlsx.style("CVLCPT_PRCS_PIC_NM", center))
, Map.entry("민원처리결과", xlsx.style("CVLCPT_PRCS_NM", center))
, Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT))
, Map.entry("차량번호", "VHRNO")
, Map.entry("위반항목", "VLTN_ARTCL")
, Map.entry("단속법정동", "CRDN_STDG_NM")
, Map.entry("단속장소", "CRDN_PLC")
, Map.entry("상세단속장소", "DTL_CRDN_PLC")
, Map.entry("과태료금액", xlsx.style("FFNLG_AMT", numeric))
, Map.entry("사전통지금액", xlsx.style("ADVNTCE_AMT", numeric))
, Map.entry("처리상태", "CRDN_STTS_NM")
, Map.entry("납부자명", "RTPYR_NM")
, Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center))
, Map.entry("우편번호", xlsx.style("ZIP", center))
, Map.entry("주소", "ADDR")
, Map.entry("상세주소", "DTL_ADDR")
, Map.entry("단속특별구역", xlsx.style("CRDN_SPAREA_NM", center))
, Map.entry("사용연료", xlsx.style("USE_FUEL_NM", center))
, Map.entry("주차가능여부", xlsx.style("PARKNG_PSBLTY_RSLT_NM", center))
, Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT))
, Map.entry("등록사용자", xlsx.style("RGTR_NM", center))
, Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT))
, Map.entry("수정사용자", xlsx.style("MDFR_NM", center))
)
);
xlsx.cell(0, 0)
.value("사전통지 발송 대상", center)
.merge(0, cellDefs.size() - 1)
.cell(3, 0)
.rowValues(CellDef.header(cellDefs, () -> CmmnUtil.headerStyle(xlsx)))
.cell(4, 0)
.values(list, CellDef.values(cellDefs));
return setCollectionInfo(new ModelAndView("jsonView"), result, "advntceTrgt"); return new ModelAndView("xlsView")
.addObject("xls", xlsx);
}
} }
/** (sndb/sndb01/060-info) . /** (sndb/sndb01/060-info) .

@ -173,12 +173,12 @@
<choose> <choose>
<when test="schRgtrOpt == 'rgtr'"> <when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null"> <if test="schRgtrCd != null">
AND LE.RGTR = #{schRgtrCd} /* 등록자 코드 */ AND LE.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if> </if>
</when> </when>
<when test="schRgtrOpt == 'mdfr'"> <when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null"> <if test="schRgtrCd != null">
AND LE.MDFR = #{schRgtrCd} /* 수정자 코드 */ AND LE.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if> </if>
</when> </when>
<otherwise> <otherwise>
@ -189,13 +189,17 @@
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'"> <when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" /> <include refid="dynamicSearch.start" />
<choose> <choose>
<when test="by == 'crdnRegSeCd'"> C.CRDN_REG_SE_CD </when>
<when test="by == 'crdnInptSeCd'"> C.CRDN_INPT_SE_CD </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when> <when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when> <when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when> <when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnRoadNm'"> C.CRDN_ROAD_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when> <when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when> <when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when> <when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when> <when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
<when test="by == 'opnnSbmsnYn'"> C.OPNN_SBMSN_YN </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when> <when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when> <when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when>
<when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when> <when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when>
@ -212,13 +216,18 @@
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when> <when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when> <when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when> <when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'zip'"> P.ZIP </when>
<when test="by == 'addr'"> P.ADDR </when>
<when test="by == 'dtlAddr'"> P.DTL_ADDR </when>
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when> <when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when> <when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when> <when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
<when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when> <when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when>
<when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when> <when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when>
<when test="by == 'cvlcptTrsmCd'"> CC.CVLCPT_TRSM_CD </when>
<when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when> <when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when>
<when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when> <when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when>
<when test="by == 'etcCn'"> LE.ETC_CN </when>
</choose> </choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" /> <include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when> </when>
@ -230,7 +239,7 @@
<select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */ <select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
SELECT C.CRDN_ID /* 단속 ID */ SELECT C.CRDN_ID /* 단속 ID */
<include refid="selectWrngTrgt" /> <include refid="selectWrngTrgt" />
<include refid="fromWrngTrgt" /> <include refid="fromWrngTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
@ -247,136 +256,8 @@
</select> </select>
<select id="selectWrngTrgtCrdnIDs" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 단속ID 가져오기(sndngMapper.selectWrngTrgtCrdnIDs) */ <select id="selectWrngTrgtCrdnIDs" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 단속ID 가져오기(sndngMapper.selectWrngTrgtCrdnIDs) */
SELECT C.CRDN_ID /* 단속 ID */
<include refid="fromWrngTrgt" />
<include refid="utility.orderBy" />
</select>
<sql id="selectCrdnPayer">
SELECT C.CRDN_ID /* 단속 ID */ SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */ <include refid="fromWrngTrgt" />
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.ADVNTCE_AMT /* 사전통지 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */
, V.VLTN_ID /* 위반 ID */
, V.VLTN_CD /* 위반 코드 */
, V.VLTN_ARTCL /* 위반 항목 */
, V.ACNTG_SE_NM /* 회계 구분 명 */
, V.TXITM_NM /* 세목 명 */
, V.OPER_ITEM_NM /* 운영 항목 명 */
, CC.CVLCPT_LINK_ID /* 민원 연계 ID */
, CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */
, CC.CVLCPT_APLY_NO /* 민원 신청 번호 */
, CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */
, CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */
, CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_BRDT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, L.LEVY_ID /* 부과 ID */
, L.INST_CD /* 기관 코드 */
, L.DEPT_CD /* 부서 코드 */
, L.FYR /* 회계연도 */
, L.ACNTG_SE_CD /* 회계 구분 코드*/
, L.TXITM_CD /* 세목 코드 */
, L.OPER_ITEM_CD /* 운영 항목 코드 */
, L.SPCL_BIZ_CD /* 특별회계 사업 코드 */
, L.LEVY_NO /* 부과 번호 */
, L.INSPY_SN /* 분납 순번 */
, L.LEVY_SE_CD /* 부과 구분 코드 */
, L.LEVY_YMD /* 부과 일자 */
, L.FRST_DUDT_YMD /* 최초 납기 일자 */
, L.DUDT_YMD /* 납기 일자 */
, L.DUDT_AFTR_YMD /* 납기 후 일자 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.SUM_AMT /* 합계 금액 */
, L.DUDT_AFTR_AMT /* 납기 후 금액 */
, L.TXTN_THING /* 과세 물건 */
, L.MNG_ITEM1 /* 관리 아이템1 */
, L.MNG_ITEM2 /* 관리 아이템2 */
, L.MNG_ITEM3 /* 관리 아이템3 */
, L.MNG_ITEM4 /* 관리 아이템4 */
, L.MNG_ITEM5 /* 관리 아이템5 */
, L.MNG_ITEM6 /* 관리 아이템6 */
, L.EPAYNO /* 전자납부번호 */
, L.BANK_NM /* 은행 명 */
, L.VR_ACTNO /* 가상 계좌번호 */
, L.BANK_NM2 /* 은행 명2 */
, L.VR_ACTNO2 /* 가상 계좌번호2 */
, L.BANK_NM3 /* 은행 명3 */
, L.VR_ACTNO3 /* 가상 계좌번호3 */
, L.BANK_NM4 /* 은행 명4 */
, L.VR_ACTNO4 /* 가상 계좌번호4 */
, L.BANK_NM5 /* 은행 명5 */
, L.VR_ACTNO5 /* 가상 계좌번호5 */
, L.BANK_NM6 /* 은행 명6 */
, L.VR_ACTNO6 /* 가상 계좌번호6 */
, L.BANK_NM7 /* 은행 명7 */
, L.VR_ACTNO7 /* 가상 계좌번호7 */
, L.BANK_NM8 /* 은행 명8 */
, L.VR_ACTNO8 /* 가상 계좌번호8 */
, L.BANK_NM9 /* 은행 명9 */
, L.VR_ACTNO9 /* 가상 계좌번호9 */
, L.BANK_NM10 /* 은행 명10 */
, L.VR_ACTNO10 /* 가상 계좌번호10 */
, L.BANK_NM11 /* 은행 명11 */
, L.VR_ACTNO11 /* 가상 계좌번호11 */
, (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT
ELSE C.FFNLG_AMT
END) AS FFNLG_AMT /* 과태료 금액 */
, L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS PCPTAX /* 본세 */
, L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS ADAMT /* 가산금 */
FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
</sql>
<select id="selectCrdnPayerTrgts" parameterType="map" resultType="dataobject">/* 단속, 납부자, 부과 대장 객체 가져오기(sndngMapper.selectCrdnPayerTrgts) */
<include refid="selectCrdnPayer" />
<choose>
<when test="crdnIDs != null">
WHERE C.CRDN_ID IN ( /* 단속 IDs */
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach>
)
</when>
<otherwise>
WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */
</otherwise>
</choose>
AND C.DEL_YN = 'N' /* 삭제 여부 */
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
@ -398,6 +279,12 @@
, C.RGTR /* 등록자 */ , C.RGTR /* 등록자 */
, C.MDFCN_DT /* 수정 일시 */ , C.MDFCN_DT /* 수정 일시 */
, C.MDFR /* 수정자 */ , C.MDFR /* 수정자 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM /* 수정자 명 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */ , CA.CRDN_SE_CD /* 단속 구분 코드 */
, CA.DTL_CRDN_PLC /* 상세 단속 장소 */ , CA.DTL_CRDN_PLC /* 상세 단속 장소 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */ , CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
@ -409,6 +296,11 @@
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, CA.VLTN_NMTM /* 위반 횟수 */ , CA.VLTN_NMTM /* 위반 횟수 */
, CA.OVTIME_YN /* 시간외 여부 */ , CA.OVTIME_YN /* 시간외 여부 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */
, V.VLTN_ID /* 위반 ID */ , V.VLTN_ID /* 위반 ID */
, V.VLTN_CD /* 위반 코드 */ , V.VLTN_CD /* 위반 코드 */
, V.VLTN_ARTCL /* 위반 항목 */ , V.VLTN_ARTCL /* 위반 항목 */
@ -421,6 +313,7 @@
, CC.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */ , CC.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */
, P.RTPYR_ID /* 납부자 ID */ , P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */ , P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */ , P.RTPYR_NM /* 납부자 명 */
@ -428,40 +321,33 @@
, P.ZIP /* 우편번호 */ , P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */ , P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */ , P.DTL_ADDR /* 상세 주소 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK /* 납부자 생년월일 마스크 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ </sql>
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ <sql id="fromAdvntceTrgt">
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM /* 수정자 명 */
FROM TB_CRDN C FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID AND C.SGG_CD = V.SGG_CD AND C.TASK_SE_CD = V.TASK_SE_CD) INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID AND C.SGG_CD = V.SGG_CD AND C.TASK_SE_CD = V.TASK_SE_CD)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') /* 민원 처리 코드 */ AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') /* 민원 처리 코드 */
<if test="crdnIDs != null"> <if test="crdnIDs != null">
AND C.CRDN_ID IN ( /* 단속 IDs */ AND C.CRDN_ID IN ( /* 단속 IDs */
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach> <foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach>
) )
</if> </if>
<if test="crdnId != null"> <if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} /* 단속 ID */ AND C.CRDN_ID = #{crdnId} /* 단속 ID */
</if> </if>
<choose> <choose>
<when test="taskSeCd == 'BPV' or taskSeCd == 'PVS'"> <when test="taskSeCd == 'BPV' or taskSeCd == 'PVS'">
AND C.CRDN_STTS_CD = '23' /* 단속 상태 코드 */ AND C.CRDN_STTS_CD = '23' /* 단속 상태 코드 */
</when> </when>
<otherwise> <otherwise>
AND C.CRDN_STTS_CD BETWEEN '21' AND '23' /* 단속 상태 코드 */ AND C.CRDN_STTS_CD BETWEEN '21' AND '23' /* 단속 상태 코드 */
</otherwise> </otherwise>
</choose> </choose>
<if test="schCrdnYmdFrom != null"> <if test="schCrdnYmdFrom != null">
@ -471,61 +357,65 @@
AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} /* 단속 일자 종료 */ AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if> </if>
<if test="schVltnCd != null"> <if test="schVltnCd != null">
AND V.VLTN_CD = #{schVltnCd} /* 위반 코드 */ AND V.VLTN_CD = #{schVltnCd} /* 위반 코드 */
</if> </if>
<if test="schVhrno != null"> <if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */ AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if> </if>
<if test="schRtpyrNm != null"> <if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if> </if>
AND C.DEL_YN = 'N' /* 삭제 여부 */
<choose> <choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'"> <when test="schRegDateOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null"> <if test="schRegDateFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 등록 일자 시작 */ AND C.REG_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000') /* 등록 일자 시작 */
</if> </if>
<if test="schDetailCrdnRegDtTo != null"> <if test="schRegDateTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 등록 일자 종료 */ AND C.REG_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959') /* 등록 일자 종료 */
</if> </if>
</when> </when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'"> <when test="schRegDateOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null"> <if test="schRegDateFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 수정 일자 시작 */ AND C.MDFCN_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000') /* 수정 일자 시작 */
</if> </if>
<if test="schDetailCrdnRegDtTo != null"> <if test="schRegDateTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 수정 일자 종료 */ AND C.MDFCN_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959') /* 수정 일자 종료 */
</if> </if>
</when> </when>
<otherwise> <otherwise>
</otherwise> </otherwise>
</choose> </choose>
<choose> <choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'"> <when test="schRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null"> <if test="schRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 등록자 코드 */ AND C.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if> </if>
</when> </when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'"> <when test="schRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null"> <if test="schRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 수정자 코드 */ AND C.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if> </if>
</when> </when>
<otherwise> <otherwise>
</otherwise> </otherwise>
</choose> </choose>
AND C.DEL_YN = 'N' /* 삭제 여부 */
<if test="by != null and by != '' and term != null"> <if test="by != null and by != '' and term != null">
<choose> <choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'"> <when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" /> <include refid="dynamicSearch.start" />
<choose> <choose>
<when test="by == 'crdnRegSeCd'"> C.CRDN_REG_SE_CD </when>
<when test="by == 'crdnInptSeCd'"> C.CRDN_INPT_SE_CD </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when> <when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when> <when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when> <when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnRoadNm'"> C.CRDN_ROAD_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when> <when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when> <when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when> <when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when> <when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
<when test="by == 'opnnSbmsnYn'"> C.OPNN_SBMSN_YN </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when> <when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when> <when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when>
<when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when> <when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when>
@ -542,13 +432,15 @@
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when> <when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when> <when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when> <when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'zip'"> P.ZIP </when>
<when test="by == 'addr'"> P.ADDR </when>
<when test="by == 'dtlAddr'"> P.DTL_ADDR </when>
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when> <when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when> <when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when> <when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
<when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when> <when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when>
<when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when> <when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when>
<when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when> <when test="by == 'cvlcptTrsmCd'"> CC.CVLCPT_TRSM_CD </when>
<when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when>
</choose> </choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" /> <include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when> </when>
@ -560,8 +452,9 @@
<select id="selectAdvntceTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */ <select id="selectAdvntceTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
SELECT C.CRDN_ID /* 단속 ID */ SELECT C.CRDN_ID /* 단속 ID */
<include refid="selectAdvntceTrgt" /> <include refid="selectAdvntceTrgt" />
<include refid="fromAdvntceTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
</select> </select>
@ -571,9 +464,150 @@
, SUM(C.FFNLG_AMT) OVER() AS GRAMT /* 총금액 */ , SUM(C.FFNLG_AMT) OVER() AS GRAMT /* 총금액 */
, C.CRDN_ID /* 단속 ID */ , C.CRDN_ID /* 단속 ID */
<include refid="selectAdvntceTrgt" /> <include refid="selectAdvntceTrgt" />
<include refid="fromAdvntceTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<select id="selectAdvntceTrgtCrdnIDs" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 단속ID 가져오기(sndngMapper.selectAdvntceTrgtCrdnIDs) */
SELECT C.CRDN_ID /* 단속 ID */
<include refid="fromAdvntceTrgt" />
<include refid="utility.orderBy" />
</select>
<sql id="selectCrdnPayer">
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.ADVNTCE_AMT /* 사전통지 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */
, V.VLTN_ID /* 위반 ID */
, V.VLTN_CD /* 위반 코드 */
, V.VLTN_ARTCL /* 위반 항목 */
, V.ACNTG_SE_NM /* 회계 구분 명 */
, V.TXITM_NM /* 세목 명 */
, V.OPER_ITEM_NM /* 운영 항목 명 */
, CC.CVLCPT_LINK_ID /* 민원 연계 ID */
, CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */
, CC.CVLCPT_APLY_NO /* 민원 신청 번호 */
, CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */
, CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */
, CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_BRDT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, L.LEVY_ID /* 부과 ID */
, L.INST_CD /* 기관 코드 */
, L.DEPT_CD /* 부서 코드 */
, L.FYR /* 회계연도 */
, L.ACNTG_SE_CD /* 회계 구분 코드*/
, L.TXITM_CD /* 세목 코드 */
, L.OPER_ITEM_CD /* 운영 항목 코드 */
, L.SPCL_BIZ_CD /* 특별회계 사업 코드 */
, L.LEVY_NO /* 부과 번호 */
, L.INSPY_SN /* 분납 순번 */
, L.LEVY_SE_CD /* 부과 구분 코드 */
, L.LEVY_YMD /* 부과 일자 */
, L.FRST_DUDT_YMD /* 최초 납기 일자 */
, L.DUDT_YMD /* 납기 일자 */
, L.DUDT_AFTR_YMD /* 납기 후 일자 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.SUM_AMT /* 합계 금액 */
, L.DUDT_AFTR_AMT /* 납기 후 금액 */
, L.TXTN_THING /* 과세 물건 */
, L.MNG_ITEM1 /* 관리 아이템1 */
, L.MNG_ITEM2 /* 관리 아이템2 */
, L.MNG_ITEM3 /* 관리 아이템3 */
, L.MNG_ITEM4 /* 관리 아이템4 */
, L.MNG_ITEM5 /* 관리 아이템5 */
, L.MNG_ITEM6 /* 관리 아이템6 */
, L.EPAYNO /* 전자납부번호 */
, L.BANK_NM /* 은행 명 */
, L.VR_ACTNO /* 가상 계좌번호 */
, L.BANK_NM2 /* 은행 명2 */
, L.VR_ACTNO2 /* 가상 계좌번호2 */
, L.BANK_NM3 /* 은행 명3 */
, L.VR_ACTNO3 /* 가상 계좌번호3 */
, L.BANK_NM4 /* 은행 명4 */
, L.VR_ACTNO4 /* 가상 계좌번호4 */
, L.BANK_NM5 /* 은행 명5 */
, L.VR_ACTNO5 /* 가상 계좌번호5 */
, L.BANK_NM6 /* 은행 명6 */
, L.VR_ACTNO6 /* 가상 계좌번호6 */
, L.BANK_NM7 /* 은행 명7 */
, L.VR_ACTNO7 /* 가상 계좌번호7 */
, L.BANK_NM8 /* 은행 명8 */
, L.VR_ACTNO8 /* 가상 계좌번호8 */
, L.BANK_NM9 /* 은행 명9 */
, L.VR_ACTNO9 /* 가상 계좌번호9 */
, L.BANK_NM10 /* 은행 명10 */
, L.VR_ACTNO10 /* 가상 계좌번호10 */
, L.BANK_NM11 /* 은행 명11 */
, L.VR_ACTNO11 /* 가상 계좌번호11 */
, (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT
ELSE C.FFNLG_AMT
END) AS FFNLG_AMT /* 과태료 금액 */
, L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS PCPTAX /* 본세 */
, L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS ADAMT /* 가산금 */
FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
</sql>
<select id="selectCrdnPayerTrgts" parameterType="map" resultType="dataobject">/* 단속, 납부자, 부과 대장 객체 가져오기(sndngMapper.selectCrdnPayerTrgts) */
<include refid="selectCrdnPayer" />
<choose>
<when test="crdnIDs != null">
WHERE C.CRDN_ID IN ( /* 단속 IDs */
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach>
)
</when>
<otherwise>
WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */
</otherwise>
</choose>
AND C.DEL_YN = 'N' /* 삭제 여부 */
<include refid="utility.orderBy" />
</select>
<sql id="selectList"> <sql id="selectList">
SELECT S.SNDNG_ID /* 발송 ID */ SELECT S.SNDNG_ID /* 발송 ID */
, S.SGG_CD /* 시군구 코드 */ , S.SGG_CD /* 시군구 코드 */

@ -13,7 +13,7 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnResetAndChangeBiz${pageName}();">
초기화 초기화
</button> </button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
@ -197,7 +197,6 @@
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th> <th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th> <th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th> <th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">최초단속금액</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">최초단속금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
@ -232,7 +231,6 @@
<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-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td> <td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
@ -253,19 +251,19 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv"> <tr class="bpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="28" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="dpv"> <tr class="dpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="28" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="eca"> <tr class="eca">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="28" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="pvs"> <tr class="pvs">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="28" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="tpv"> <tr class="tpv">
<td valign="top" colspan="29" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="28" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -293,11 +291,11 @@
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 공통 코드 // 공통 코드
var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드
var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드
var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드
var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드
var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -309,7 +307,7 @@
, keymapper : info => info ? info.CRDN_ID : "" , keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.wrngTrgtList , dataGetter : obj => obj.wrngTrgtList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : { , formats : {
CVLCPT_RCPT_YMD : dateFormat CVLCPT_RCPT_YMD : dateFormat
, LEVY_EXCL_YMD : dateFormat , LEVY_EXCL_YMD : dateFormat
@ -348,7 +346,6 @@
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
}; };
// 계고장 발송 등록 dialog -> callback 추가 // 계고장 발송 등록 dialog -> callback 추가
${pageName}Control.getInfo = (params) => { ${pageName}Control.getInfo = (params) => {
if (!params) return; if (!params) return;
@ -717,7 +714,7 @@
// URL 설정 // URL 설정
setURL${pageName} = (taskSeCd) => { setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 계고장 발송대상 정보 ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 발송대상 정보
} }
/************************************************************************** /**************************************************************************

@ -13,7 +13,7 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnResetAndChangeBiz${pageName}();">
초기화 초기화
</button> </button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
@ -101,36 +101,40 @@
</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 w-px-120 text-center" id="schDetailCrdnRegDtOpt--${pageName}" name="schDetailCrdnRegDtOpt"> <select class="form-select 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>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDetailCrdnRegDtFrom--${pageName}" name="schDetailCrdnRegDtFrom" <input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~ ~
<input type="text" class="form-control form-date" id="schDetailCrdnRegDtTo--${pageName}" name="schDetailCrdnRegDtTo" <input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택"> data-fmt-type="day" title="종료 날짜 선택">
<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"> <div class="col-6">
<select class="form-select w-px-120 text-center" id="schDetailCrdnRgtrOpt--${pageName}" name="schDetailCrdnRgtrOpt"> <select class="form-select 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="text" class="form-control" id="schDetailCrdnRgtrNm--${pageName}" name="schDetailCrdnRgtrNm" /> <input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색" onclick="fnFindUser${pageName}();">
검색
</button>
</div> </div>
</div> </div>
</div> </div> <!-- / 상세 조건 -->
<!-- / 상세 조건 -->
</form> </form>
<!-- / 검색 조건 영역 --> <!-- / 검색 조건 영역 -->
@ -171,12 +175,12 @@
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th> <th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_PRCS_PIC_NM', this.innerText, 'match', 'part');">민원처리담당자</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_PRCS_PIC_NM', this.innerText, 'match', 'part');">민원처리담당자</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('CVLCPT_PRCS_CD', this.innerText, 'codeValue', 'FIM017');">민원처리결과</th> <th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('CVLCPT_PRCS_CD', this.innerText, 'codeValue', 'FIM017');">민원처리결과</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th> <th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th> <th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th> <th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">법정동</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th> <th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th> <th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
@ -185,6 +189,8 @@
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th> <th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th> <th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ADDR', this.innerText, 'match', 'part');">주소</th>
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th> <th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th> <th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>
<th class="dpv" style="width: 140px;" onclick="searchFromGridTitle('PARKNG_PSBLTY_RSLT_CD', this.innerText, 'codeValue', 'FIM034');">주차가능여부</th> <th class="dpv" style="width: 140px;" onclick="searchFromGridTitle('PARKNG_PSBLTY_RSLT_CD', this.innerText, 'codeValue', 'FIM034');">주차가능여부</th>
@ -211,10 +217,12 @@
<td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td> <td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ADVNTCE_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ADVNTCE_AMT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_MASK}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ZIP}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ZIP}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_ADDR}</td>
<td class="pvs text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_SPAREA_NM}</td> <td class="pvs text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_SPAREA_NM}</td>
<td class="eca text-center" onclick="{onclick}" ondblclick="{ondblclick}">{USE_FUEL_NM}</td> <td class="eca text-center" onclick="{onclick}" ondblclick="{ondblclick}">{USE_FUEL_NM}</td>
<td class="dpv text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PARKNG_PSBLTY_RSLT_NM}</td> <td class="dpv text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PARKNG_PSBLTY_RSLT_NM}</td>
@ -227,19 +235,19 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv"> <tr class="bpv">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="dpv"> <tr class="dpv">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="eca"> <tr class="eca">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="pvs"> <tr class="pvs">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
<tr class="tpv"> <tr class="tpv">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -267,11 +275,11 @@
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 공통 코드 // 공통 코드
var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드
var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드
var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드
var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드
var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -283,10 +291,7 @@
, keymapper : info => info ? info.CRDN_ID : "" , keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.advntceTrgtList , dataGetter : obj => obj.advntceTrgtList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : { , formats : {
CVLCPT_RCPT_YMD : dateFormat CVLCPT_RCPT_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat , CRDN_YMD_TM : datetimeFormat
@ -302,7 +307,7 @@
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset list : ${pageName}Control.dataset
@ -313,7 +318,7 @@
, func : "${pageName}Control.load({index})" , func : "${pageName}Control.load({index})"
}); });
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
@ -325,34 +330,40 @@
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
}; };
// 개별총정보 dialog // 사전통지 발송 등록 dialog -> callback 추가
${pageName}Control.getInfo = (crdnId) => { ${pageName}Control.getInfo = (params) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (!params) return;
let params = { let dialogTitle = "";
callControlName : "${pageName}Control"
, crdnId : crdnId if (params.callPurpose == "create") {
dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}Control.prefixName + " 수정";
} else {
dialogTitle = ${pageName}Control.prefixName + " 정보";
} }
ajax.get({ ajax.get({
url : ${pageName}Control.urls.getInfo url : ${pageName}Control.urls.getInfo
, data : params , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "totalInfoMainDialog" id : "advntceTrgtDialog"
, title : "개별총정보" , title : dialogTitle
, content : resp , content : resp
, size : "xxl" , size : "xl"
, onClose : () => { refreshList${pageName}(); } // callback
}); });
} }
}); });
} }
/************************************************************************** /**************************************************************************
* * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val(); let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val();
@ -373,53 +384,178 @@
}); });
let trs = empty ? let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] :
: ${infoPrefix}List.inStrings(foundTr.outerHTML ${infoPrefix}List.inStrings(
, (str, dataItem) => str foundTr.outerHTML,
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") (str, dataItem) => str
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');")
); .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0);
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
if (${pageName}Control.untilPageNum != 0) {
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize;
${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum;
${pageName}Control.untilPageNum = 0;
}
// checkbox 체크 해제
$("th input[type='checkbox']").prop("checked", false); $("th input[type='checkbox']").prop("checked", false);
//보안모드 //보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
} }
// 사전통지 발송 등록 dialog -> callback 추가 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
getAdvntceTrgtInfo${pageName} = (params) => { scrollDataList${pageName} = () => {
if (!params) return; ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false
${pageName}Control.load(${pageName}Control.query.pageNum + 1);
}
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// callback 사용자 검색
callbackFindUser${pageName} = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
getFindUser${pageName} = () => {
let params = {
callbackFuncName : "callbackFindUser${pageName}"
}
ajax.get({ ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/060/info.do") url : wctx.url("/user/user02/010/main.do")
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "advntceTrgtDtlDialog" id : "userDialog"
, title : ${pageName}Control.prefixName + " 정보" , title : "사용자 검색"
, content : resp , content : resp
, size : "xl" , size : "lg"
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
}); });
} }
}); });
} }
// 개별총정보 dialog
getTotalInfo${pageName} = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callControlName : "${pageName}Control"
, sggCd : $("#sggCd--${pageName}").val()
, taskSeCd : $("input[name=taskSeCd]:checked").val()
, crdnId : crdnId
}
ajax.get({
url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do")
, data : params
, success : resp => {
dialog.open({
id : "totalInfoMainDialog"
, title : "개별총정보"
, content : resp
, size : "xxl"
});
}
});
}
// 검색 자료 재조회
refreshList${pageName} = () => {
${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
${pageName}Control.load(1);
}
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 초기화 // 업무 구분 변경
initForm${pageName} = () => { fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 화면 초기화 // 업무 구분 코드
$("#frmSearch--${pageName}")[0].reset(); if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// dataset 초기화 // 초기 기본 설정
${pageName}Control.dataset.clear(); initForm${pageName}();
// 기본 데이터 설정
setFormData${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
}
// 검색 버튼 이벤트
fnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수
${pageName}Control.query.delYN = "N"; // 삭제 여부
${pageName}Control.load(1);
}
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
dialog.alert({
content : "검색된 자료가 없습니다."
, onOK : () => { }
});
return;
}
// DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
${pageName}Control.query.cellDefs = cellDefs;
${pageName}Control.download();
}
// 사용자 조회 버튼 이벤트
fnFindUser${pageName} = () => {
getFindUser${pageName}();
}
// 사전통지 발송 대상 등록 버튼 이벤트
fnAdvntceTrgtInfo${pageName} = () => {
let params = ${pageName}Control.query;
params.callPurpose = "create";
params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서
${pageName}Control.getInfo(params);
} }
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 // 이벤트
setEvent${pageName} = () => { setEvent${pageName} = () => {
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
$("#term--${pageName}").keypress(function(e) {
if (e.keyCode == 13) {
fnSearchList${pageName}();   
}    
});
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() { $("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() { $(this).on("input", function() {
@ -436,41 +572,41 @@
// DataTables width 변경 조정 // DataTables width 변경 조정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트 // DataTables 스크롤 이벤트 생성
$("#table-responsive--${pageName}").scroll(function() { fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName});
let el = $(this); }
if (el.scrollTop() == 0) { // 화면 초기 설정
return; initForm${pageName} = () => {
} // 화면 초기화
if (!${pageName}Control.tableRenderComplete) { $("#frmSearch--${pageName}")[0].reset();
return;
}
let itemsCnt = ${pageName}Control.dataset._items.length; // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT"); // let totCnt = ${pageName}Control.dataset.getCurrent("item").data.TOT_CNT; $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
if (itemsCnt >= totCnt) { // 달력 초기화
return; initDatepicker("frmSearch--${pageName}");
}
if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date());
${pageName}Control.load(${pageName}Control.query.pageNum + 1); // 사용자 이름
} $("#schRgtrNm--${pageName}").prop("readonly", true);
});
// dataset 초기화
${pageName}Control.dataset.clear();
} }
// 화면 초기값 셋팅 // 기본 데이터 설정
setForm${pageName} = (taskSeCd) => { setFormData${pageName} = (taskSeCd) => {
// 업무 구분 코드 // ${pageName}Control 설정
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. // 화면 데이터 설정
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$(this).prop("disabled", "true"); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
});
// 업무에 따른 위반 내용 // 업무에 따른 위반 내용
let vltnCode = []; let vltnCode = [];
@ -524,77 +660,22 @@
// URL 설정 // URL 설정
setURL${pageName} = (taskSeCd) => { setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회 ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회
} ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/060/info.do"); // 발송대상 정보
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 초기화
initForm${pageName}();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
}
// 초기화 버튼 이벤트
fnReset${pageName} = () => {
fnResetAndChangeBiz${pageName}();
}
// 검색 버튼 이벤트
fnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.load();
}
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
}
// 사전통지 발송 대상 등록 버튼 이벤트
fnAdvntceTrgtInfo${pageName} = () => {
let params = ${pageName}Fields.get();
params.callPurpose = "create";
params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서
getAdvntceTrgtInfo${pageName}(params);
} }
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// 보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
// 화면 초기 설정 및 업무 구분 변경 // 화면 초기 설정 및 업무 구분 변경
fnResetAndChangeBiz${pageName}(defaultBizValue); fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val());
}); });
</script> </script>

Loading…
Cancel
Save