부과 엑셀 저장 수정.

main
jjh 11 months ago
parent 111916ed30
commit e45792a2d0

@ -517,13 +517,12 @@ public class Epst02Controller extends ApplicationController {
.addObject("pageName", "epst02050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "epostRcptRslt") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("deptCd", managedUser.getDeptCode()) // 부서 코드(DEPT_CD)
.addObject("deptCd", deptInfo.string("DEPT_CD")) // 부서 코드
.addObject("egpConOrg", deptInfo.string("EGP_CON_ORG")) // E그린 외부기관구분코드
.addObject("EGP002List", commonCodes.get("EGP002")) // 취급 구분(DIV_KB)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM082List", commonCodes.get("FIM082")) // 작업 코드 3(JOB_CD)
.addObject("pageDataName2", "Dept") // dataset2 부서 정보
.addObject("deptInfo", json ? deptInfo : toJson(deptInfo)) // 부서 정보(TB_DEPT)
.addObject("pageDataName3", "SumAmt") // dataset3 합계 정보
.addObject("pageDataName2", "SumAmt") // dataset3 합계 정보
;
}

@ -46,6 +46,14 @@ public interface LevyMapper extends AbstractMapper {
* @return
*/
default DataObject selectLevyInfo(LevyQuery req) {
// 기본 정렬
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
if (req.getOrderBy() == null) {
req.setOrderBy("L.LEVY_ID DESC");
}
List<DataObject> levys = selectLevys(req);
return !levys.isEmpty() ? levys.get(0) : null;

@ -10,6 +10,7 @@ import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.levy.Levy;
@ -42,11 +43,17 @@ public class LevyBean extends AbstractComponent {
* @return
*/
public List<DataObject> getRductLevyTrgtList(LevyQuery req) {
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return levyMapper.selectRductLevyTrgtList(req);
@ -57,11 +64,17 @@ public class LevyBean extends AbstractComponent {
* @return
*/
public List<DataObject> getLevyList(LevyQuery req) {
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return levyMapper.selectLevyList(req);
@ -72,6 +85,10 @@ public class LevyBean extends AbstractComponent {
* @return
*/
public List<DataObject> getLevys(LevyQuery req) {
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
if (req.getOrderBy() == null) {
req.setOrderBy("L.LEVY_ID DESC");
}
@ -104,7 +121,7 @@ public class LevyBean extends AbstractComponent {
*/
public String createRductLevyList(LevyQuery req) {
// 변수 선언
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = "[F] "; // 처리 결과 메시지
// 최초 조회
List<DataObject> rductLevyTrgtList = levyMapper.selectRductLevyTrgtList(req);
@ -130,9 +147,9 @@ public class LevyBean extends AbstractComponent {
Levy levy = new Levy();
levy.setCrdnId(rductLevyTrgtList.get(jLoop).string("CRDN_ID")); // 단속 ID
levy.setLevyYmd(req.getLevyYmd()); // 부과 일자
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
levy.setLevyYmd(req.getLevyYmd()); // 부과 일자
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
rtnMsg = createRductLevy(levy);
if (rtnMsg.contains("[F]")) {
@ -155,8 +172,8 @@ public class LevyBean extends AbstractComponent {
*/
public String createRductLevy(Levy levy) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// 사용자 정보
ManagedUser managedUser = (ManagedUser)currentUser().getUser();

@ -1,17 +1,23 @@
package cokr.xit.fims.levy.web;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import javax.annotation.Resource;
import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.file.xls.XLSWriter;
import cokr.xit.base.file.xls.XLSWriter.Styler;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.cmmn.CmmnQuery;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.cmmn.service.TaskService;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
@ -82,9 +88,80 @@ public class Levy01Controller extends ApplicationController {
* }</code></pre>
*/
public ModelAndView getReductionLevyTargetList(LevyQuery req) {
List<?> result = levyService.getRductLevyTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "rductLevyTrgt");
if (!"xls".equals(req.getDownload())) {
List<?> result = levyService.getRductLevyTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "rductLevyTrgt");
} else {
XLSWriter xlsx = new XLSWriter()
.setFilename("사전 감경부과 대상 목록.xlsx")
.worksheet(0);
// CellStyle 지정은 여기에서..
CellStyle center = xlsx.cellStyle(Styler.CENTER) // 가운데 정렬
, numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,)
, dateYMD = xlsx.yyyy_mm_dd() // 연월일
, dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간
String[] excelTitle = req.getExcelTitle();
List<String> titles = new ArrayList<String>();
for (int iLoop = 0; iLoop < excelTitle.length; iLoop++) {
String item = excelTitle[iLoop];
titles.add(item);
}
int[] excelTitleWidth = req.getExcelTitleWidth();
List<Integer> widths = new ArrayList<>();
for (int jLoop = 0; jLoop < excelTitleWidth.length; jLoop++) {
int item = excelTitleWidth[jLoop];
widths.add(item);
}
List<Styler> headerStylers = CmmnUtil.makeHeadersByDiffrentWidths(widths, xlsx);
xlsx.cell(0, 0)
.value("사전 감경부과 대상", XLSWriter.Styler.CENTER)
.merge(0, 12)
.cell(3, 0)
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = levyService.getRductLevyTrgtList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (titleNm, nothing) -> {
switch (titleNm) {
case "업무구분" : return xlsx.style("TASK_SE_NM", center);
case "단속일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT);
case "차량번호" : return "VHRNO";
case "법정동" : return "CRDN_STDG_NM";
case "단속장소" : return "CRDN_PLC";
case "위반항목" : return "VLTN_ARTCL";
case "최초단속금액" : return xlsx.style("FFNLG_CRDN_AMT", numeric);
case "과태료금액" : return xlsx.style("FFNLG_AMT", numeric);
case "사전통지금액" : return xlsx.style("ADVNTCE_AMT", numeric);
case "처리상태" : return "CRDN_STTS_NM";
case "민원신청번호" : return xlsx.style("CVLCPT_APLY_NO", center);
case "민원접수번호" : return xlsx.style("CVLCPT_RCPT_NO", center);
case "민원접수일자" : return xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD);
case "민원전송결과" : return xlsx.style("CVLCPT_TRSM_NM", center);
case "납부자명" : return "RTPYR_NM";
case "납부자생일" : return xlsx.style("RTPYR_BRDT_MASK", center);
case "우편번호" : return xlsx.style("ZIP", center);
case "주소" : return "ADDR";
case "상세주소" : return "DTL_ADDR";
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", center);
case "수정일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT);
case "수정사용자" : return xlsx.style("MDFR_NM", center);
}
return "";
};
xlsx.cell(4, 0)
.values(list, titles.stream().map((item) -> { return getValue.apply(item, null); }).toArray());
return new ModelAndView("xlsView")
.addObject("xls", xlsx);
}
}
/** (info) .
@ -169,9 +246,110 @@ public class Levy01Controller extends ApplicationController {
* }</code></pre>
*/
public ModelAndView getLevyList(LevyQuery req) {
List<?> result = levyService.getLevyList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "levy");
if (!"xls".equals(req.getDownload())) {
List<?> result = levyService.getLevyList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "levy");
} else {
XLSWriter xlsx = new XLSWriter()
.setFilename("부과 목록.xlsx")
.worksheet(0);
// CellStyle 지정은 여기에서..
CellStyle center = xlsx.cellStyle(Styler.CENTER) // 가운데 정렬
, numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,)
, dateYMD = xlsx.yyyy_mm_dd() // 연월일
, dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간
String[] excelTitle = req.getExcelTitle();
List<String> titles = new ArrayList<String>();
for (int iLoop = 0; iLoop < excelTitle.length; iLoop++) {
String item = excelTitle[iLoop];
titles.add(item);
}
int[] excelTitleWidth = req.getExcelTitleWidth();
List<Integer> widths = new ArrayList<>();
for (int jLoop = 0; jLoop < excelTitleWidth.length; jLoop++) {
int item = excelTitleWidth[jLoop];
widths.add(item);
}
List<Styler> headerStylers = CmmnUtil.makeHeadersByDiffrentWidths(widths, xlsx);
xlsx.cell(0, 0)
.value("부과", XLSWriter.Styler.CENTER)
.merge(0, 15)
.cell(3, 0)
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = levyService.getLevyList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (titleNm, nothing) -> {
switch (titleNm) {
case "업무구분" : return xlsx.style("TASK_SE_NM", center);
case "회계연도" : return xlsx.style("FYR", center);
case "회계코드" : return xlsx.style("ACNTG_SE_CD", center);
case "세목코드" : return xlsx.style("TXITM_CD", center);
case "세목명" : return xlsx.style("TXITM_NM", center);
case "부과번호" : return xlsx.style("LEVY_NO", center);
case "분납순번" : return xlsx.style("INSPY_SN", center);
case "부과구분" : return xlsx.style("LEVY_SE_NM", center);
case "통합구분" : return xlsx.style("UNTY_SE_NM", center);
case "감경구분" : return xlsx.style("RDUCT_SE_NM", center);
case "부과일자" : return xlsx.format(o -> xlsx.str2date(o.get("LEVY_YMD"))).style(dateYMD);
case "최초납기일자" : return xlsx.format(o -> xlsx.str2date(o.get("FRST_DUDT_YMD"))).style(dateYMD);
case "납기일자" : return xlsx.format(o -> xlsx.str2date(o.get("DUDT_YMD"))).style(dateYMD);
case "과태료금액" : return xlsx.style("FFNLG_AMT", numeric);
case "부과본세" : return xlsx.style("LEVY_PCPTAX", numeric);
case "부과가산금" : return xlsx.style("LEVY_ADAMT", numeric);
case "분납이자" : return xlsx.style("INSPY_INT", numeric);
case "수납본세" : return xlsx.style("RCVMT_PCPTAX", numeric);
case "수납가산금" : return xlsx.style("RCVMT_ADAMT", numeric);
case "감액본세" : return xlsx.style("RDCAMT_PCPTAX", numeric);
case "감액가산금" : return xlsx.style("RDCAMT_ADAMT", numeric);
case "합계금액" : return xlsx.style("SUM_AMT", numeric);
case "과세물건" : return "TXTN_THING";
case "체납사유" : return "NPMNT_RSN_NM";
case "수납일자" : return xlsx.format(o -> xlsx.str2date(o.get("RCVMT_YMD"))).style(dateYMD);
case "압류일자" : return xlsx.format(o -> xlsx.str2date(o.get("SZR_YMD"))).style(dateYMD);
case "압류물건" : return "SZR_THING";
case "대체압류차량" : return "RPM_SZR_VHRNO";
case "압류해제일자" : return xlsx.format(o -> xlsx.str2date(o.get("SZR_RMV_YMD"))).style(dateYMD);
case "전자납부번호" : return "EPAYNO_MASK";
case "은행명" : return "BANK_NM";
case "가상계좌번호" : return xlsx.style("VR_ACTNO", center);
case "은행명2" : return "BANK_NM2";
case "가상계좌번호2" : return xlsx.style("VR_ACTNO2", center);
case "은행명3" : return "BANK_NM3";
case "가상계좌번호3" : return xlsx.style("VR_ACTNO3", center);
case "단속일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT);
case "차량번호" : return "VHRNO";
case "법정동" : return "CRDN_STDG_NM";
case "단속장소" : return "CRDN_PLC";
case "위반항목" : return "VLTN_ARTCL";
case "최초단속금액" : return xlsx.style("FFNLG_CRDN_AMT", numeric);
case "처리상태" : return "CRDN_STTS_NM";
case "납부자구분" : return xlsx.style("RTPYR_SE_NM", center);
case "납부자명" : return "RTPYR_NM";
case "납부자생일" : return xlsx.style("RTPYR_BRDT_MASK", center);
case "우편번호" : return xlsx.style("ZIP", center);
case "주소" : return "ADDR";
case "상세주소" : return "DTL_ADDR";
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", center);
case "수정일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT);
case "수정사용자" : return xlsx.style("MDFR_NM", center);
}
return "";
};
xlsx.cell(4, 0)
.values(list, titles.stream().map((item) -> { return getValue.apply(item, null); }).toArray());
return new ModelAndView("xlsView")
.addObject("xls", xlsx);
}
}
/** .

@ -116,7 +116,7 @@ public class Rcvm01Controller extends ApplicationController {
List<Styler> headerStylers = CmmnUtil.makeHeadersByDiffrentWidths(widths, xlsx);
xlsx.cell(0, 0)
.value("수납", center)
.value("수납", XLSWriter.Styler.CENTER)
.merge(0, 10)
.cell(3, 0)
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));

@ -114,13 +114,13 @@
, C.RGTR /* 등록자 */
, C.MDFCN_DT /* 수정 일시 */
, C.MDFR /* 수정자 */
, (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 /* 단속 입력 구분 명 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (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 /* 단속 상태 명 */
, (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 /* 수정자 명 */
, (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 /* 수정자 명 */
, V.VLTN_ID /* 위반 ID */
, V.VLTN_CD /* 위반 코드 */
, V.VLTN_ARTCL /* 위반 항목 */
@ -133,25 +133,28 @@
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */
, CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */
, (SELECT GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD) FROM DUAL) AS CVLCPT_TRSM_NM /* 민원 전송 명 */
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */
, (SELECT GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD) FROM DUAL) AS CVLCPT_TRSM_NM /* 민원 전송 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_BRDT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK /* 납부자 생년월일 마스크 */
, L.LEVY_ID /* 부과 ID */
FROM TB_CRDN C
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')
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
AND C.CRDN_STTS_CD BETWEEN '21' AND '31' /* 단속 상태 코드 */
AND C.RTPYR_ID IS NOT NULL /* 납부자 ID */
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
AND C.CRDN_STTS_CD BETWEEN '21' AND '31' /* 단속 상태 코드 */
AND C.RTPYR_ID IS NOT NULL /* 납부자 ID */
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') /* 민원 처리 코드 */
AND L.LEVY_ID IS NULL /* 부과 ID */
<if test="schCrdnYmdFrom != null">
@ -161,41 +164,41 @@
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if>
AND C.DEL_YN = 'N' /* 삭제 여부 */
AND C.DEL_YN = 'N' /* 삭제 여부 */
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} /* 등록 일자 시작 */
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} /* 등록 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} /* 수정 일자 시작 */
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} /* 수정 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 등록자 코드 */
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND C.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 수정자 코드 */
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND C.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
@ -316,6 +319,18 @@
, L.DEL_DT /* 삭제 일시 */
, L.DLTR /* 삭제자 */
, L.DEL_RSN /* 삭제 사유 */
, (SELECT GET_CODE_NM('FIM074', L.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM075', L.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */
, (SELECT GET_CODE_NM('FIM077', L.SPCL_BIZ_CD) FROM DUAL) AS SPCL_BIZ_NM /* 특별회계 사업 코드 명 */
, (SELECT GET_CODE_NM('FIM040', L.LEVY_SE_CD) FROM DUAL) AS LEVY_SE_NM /* 부과 구분 코드 */
, (SELECT GET_CODE_NM('FIM072', L.UNTY_SE_CD) FROM DUAL) AS UNTY_SE_NM /* 통합 구분 코드 */
, (SELECT GET_CODE_NM('FIM046', L.RDUCT_SE_CD) FROM DUAL) AS RDUCT_SE_NM /* 감경 구분 코드 */
, (SELECT GET_MASK_EPAYNO(L.EPAYNO) FROM DUAL) AS EPAYNO_MASK /* 전자납부번호 마스크 */
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM /* 체납 사유 명 */
, (SELECT GET_CODE_NM('FIM045', L.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM /* 납부 방법 구분 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM /* 삭제자 명 */
, C.CRDN_ID /* 단속 ID */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
@ -324,6 +339,13 @@
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, (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('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD,'-',C.CRDN_TM,':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */
, V.VLTN_ID /* 위반 ID */
, V.VLTN_CD /* 위반 코드 */
, V.VLTN_ARTCL /* 위반 항목 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, P.RTPYR_NO /* 납부자 번호 */
@ -332,37 +354,23 @@
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, (SELECT GET_CODE_NM('FIM054', L.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM074', L.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM075', L.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */
, (SELECT GET_CODE_NM('FIM077', L.SPCL_BIZ_CD) FROM DUAL) AS SPCL_BIZ_NM /* 특별회계 사업 코드 명 */
, (SELECT GET_CODE_NM('FIM040', L.LEVY_SE_CD) FROM DUAL) AS LEVY_SE_NM /* 부과 구분 코드 */
, (SELECT GET_CODE_NM('FIM072', L.UNTY_SE_CD) FROM DUAL) AS UNTY_SE_NM /* 통합 구분 코드 */
, (SELECT GET_CODE_NM('FIM046', L.RDUCT_SE_CD) FROM DUAL) AS RDUCT_SE_NM /* 감경 구분 코드 */
, (SELECT GET_MASK_EPAYNO(L.EPAYNO) FROM DUAL) AS EPAYNO_MASK /* 전자납부번호 마스크 */
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM /* 체납 사유 명 */
, (SELECT GET_CODE_NM('FIM045', L.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM /* 납부 방법 구분 명 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (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 /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM /* 삭제자 명 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK /* 납부자 생년월일 마스크 */
FROM TB_LEVY L
INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectLevyList" parameterType="map" resultType="dataobject">/* 부과 대장 목록 조회(levyMapper.selectLevyList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
WHERE L.SGG_CD = #{sggCd} /* 시군구 코드 */
WHERE L.SGG_CD = #{sggCd} /* 시군구 코드 */
<if test="taskSeCd != null">
AND L.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
AND L.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
</if>
<if test="schFyr != null">
AND L.FYR = #{schFyr} /* 회계연도 */
AND L.FYR = #{schFyr} /* 회계연도 */
</if>
<if test="schLevyNoFrom != null">
AND L.LEVY_NO <![CDATA[>=]]> #{schLevyNoFrom} /* 부과 번호 시작 */
@ -386,84 +394,50 @@
AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="schCrdnSttsCd != null">
AND C.CRDN_STTS_CD = #{schCrdnSttsCd} /* 단속 상태 코드 */
AND C.CRDN_STTS_CD = #{schCrdnSttsCd} /* 단속 상태 코드 */
</if>
<if test="schRtpyrNo != null">
AND P.RTPYR_NO = #{schRtpyrNo} /* 납부자 번호 */
AND P.RTPYR_NO = #{schRtpyrNo} /* 납부자 번호 */
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if>
<if test="delYN != null">
AND L.DEL_YN = #{delYN} /* 삭제 여부 */
AND L.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND LE.RGTR = #{schDetailRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND LE.MDFR = #{schDetailRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 등록 일자 시작 */
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(L.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 등록 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(L.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 수정 일자 시작 */
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(L.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 수정 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(L.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 단속 등록자 코드 */
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND L.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 단속 수정자 코드 */
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND L.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>

@ -169,7 +169,7 @@
<if test="delYN != null">
AND R.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
<choose>
<choose>
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(R.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */

@ -274,24 +274,20 @@
// 전자우편 안내문 dialog
${pageName}Control.getInfo = (gdccId) => {
//
let dialogTitle = "";
let dialogTitle = ${pageName}Control.prefixName + " 정보";
let params = {};
if (params.callPurpose == "create") {
if (typeof gdccId == "undefined" || gdccId == null || gdccId == "") { // 등록
dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}Control.prefixName + " 수정";
} else {
dialogTitle = ${pageName}Control.prefixName + " 정보";
}
if (typeof gdccId == "undefined" || gdccId == null || gdccId == "") { // 등록
params = {
callPurpose : "create"
, sggCd : $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd : $("input[name=taskSeCd]:checked").val() // 업무 구분 코드
};
} else { // 수정
} else { // 수정
dialogTitle = ${pageName}Control.prefixName + " 수정";
params = {
callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
@ -435,7 +431,7 @@
}
// 초기 기본 설정
initForm${pageName}(taskSeCd);
initForm${pageName}();
// URL 설정
setURL${pageName}(taskSeCd);
@ -500,7 +496,7 @@
}
/**************************************************************************
* 초기 셋팅
* 초기 설정
**************************************************************************/
// 이벤트
setEvent${pageName} = () => {
@ -532,11 +528,10 @@
}
// 화면 초기 설정
initForm${pageName} = (taskSeCd) => {
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
@ -566,7 +561,7 @@
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
// ${pageName}Control 설정
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
}
/**************************************************************************

@ -542,7 +542,7 @@
}
// 초기 기본 설정
initForm${pageName}(taskSeCd);
initForm${pageName}();
// URL 설정
setURL${pageName}(taskSeCd);
@ -736,7 +736,7 @@
}
/**************************************************************************
* 초기 셋팅
* 초기 설정
**************************************************************************/
// 이벤트
setEvent${pageName} = () => {
@ -768,12 +768,10 @@
}
// 화면 초기 설정
initForm${pageName} = (taskSeCd) => {
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");

@ -32,6 +32,7 @@
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="deptCd--${pageName}" name="deptCd" />
<input type="hidden" id="egpConOrg--${pageName}" name="egpConOrg" />
<!-- 메인 조건 -->
<div class="container-search">
@ -192,11 +193,11 @@
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}${pageDataName3}">
<div class="table-responsive" id="table-responsive--${pageName}${pageDataName3}" style="overflow-x:scroll; height:160px; overflow-y:scroll;">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}${pageDataName3}" aria-describedby="DataTables_Table_0_info">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}${pageDataName2}">
<div class="table-responsive" id="table-responsive--${pageName}${pageDataName2}" style="overflow-x:scroll; height:160px; overflow-y:scroll;">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}${pageDataName2}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}${pageDataName3}">
<tr id="theadTr--${pageName}${pageDataName2}">
<th class="cmn" style="width: 160px;">취급구분</th>
<th class="cmn" style="width: 120px;">발송건수</th>
<th class="cmn" style="width: 200px;">결제금액</th>
@ -205,9 +206,9 @@
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbody--${pageName}${pageDataName3}">
<tbody id="tbody--${pageName}${pageDataName2}">
</tbody>
<template id="${infoPrefix}Row--${pageName}${pageDataName3}">
<template id="${infoPrefix}Row--${pageName}${pageDataName2}">
<tr data-key="{DIV_KB}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DIV_KB_NM}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCEPT_CNT}</td>
@ -217,7 +218,7 @@
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}${pageDataName3}">
<template id="${infoPrefix}NotFound--${pageName}${pageDataName2}">
<tr class="odd">
<td valign="top" colspan="6" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
@ -271,22 +272,8 @@
}
});
// 부서 정보 Dataset
var ${pageName}${pageDataName2}Dataset = new Dataset({
prefix : "dept"
, prefixName : "부서"
, keymapper : info => info ? info.DEPT_CD : ""
, dataGetter : obj => obj.deptInfo
, onDatasetChange : obj => {
//
}
, onCurrentChange : item => {
if (!item) return;
}
});
// 합계 금액 정보 Dataset
var ${pageName}${pageDataName3}Dataset = new Dataset({
var ${pageName}${pageDataName2}Dataset = new Dataset({
prefix : "sumAmt"
, prefixName : "합계 금액"
, keymapper : info => info ? info.DIV_KB : ""
@ -298,14 +285,14 @@
, TOTPOST_PRC : numberFormat
}
, onDatasetChange : obj => {
renderList${pageName}${pageDataName3}();
renderList${pageName}${pageDataName2}();
}
, onCurrentChange : item => {
if (!item) return;
let key = item.data.DIV_KB;
$("#tbody--${pageName}${pageDataName3}").setCurrentRow(key);
$("#tbody--${pageName}${pageDataName2}").setCurrentRow(key);
}
});
@ -379,19 +366,19 @@
}
// DataTables에 click, dbclick 이벤트
renderList${pageName}${pageDataName3} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName3}Dataset;
renderList${pageName}${pageDataName2} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName2}Dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}${pageDataName3}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
[document.getElementById("${infoPrefix}NotFound--${pageName}${pageDataName2}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}${pageDataName3}").innerHTML, <%-- from template#${infoPrefix}Row --%>
document.getElementById("${infoPrefix}Row--${pageName}${pageDataName2}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}${pageDataName3}Dataset.setCurrent('" + dataItem.getValue("DIV_KB") + "');")
.replace(/{onclick}/gi, "${pageName}${pageDataName2}Dataset.setCurrent('" + dataItem.getValue("DIV_KB") + "');")
);
$("#tbody--${pageName}${pageDataName3}").html(trs.join());
$("#tbody--${pageName}${pageDataName2}").html(trs.join());
}
/**************************************************************************
@ -403,7 +390,7 @@
url : wctx.url(query.taskSeCd + ${pageName}PrefixUrl + "/050/sumAmt.do")
, data : query
, success : resp => {
${pageName}${pageDataName3}Dataset.setData(resp.sumAmt);
${pageName}${pageDataName2}Dataset.setData(resp.sumAmt);
}
});
}
@ -453,7 +440,7 @@
}
// 초기 기본 설정
initForm${pageName}(taskSeCd);
initForm${pageName}();
// URL 설정
setURL${pageName}(taskSeCd);
@ -467,9 +454,9 @@
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.conOrg = ${pageName}${pageDataName2}Dataset.getValue("EGP_CON_ORG"); // 외부기관구분코드
${pageName}Control.query.relorsectCd = ${pageName}${pageDataName2}Dataset.getValue("DEPT_CD"); // 결제부서코드(부서코드)
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.conOrg = $("#egpConOrg--${pageName}").val(); // 외부기관구분코드
${pageName}Control.query.relorsectCd = $("#deptCd--${pageName}").val(); // 결제부서코드(부서코드)
// 검색
${pageName}Control.load(1);
@ -528,19 +515,17 @@
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
$("#DataTables_Table_0--${pageName}${pageDataName3}").find("th").resizable( {handles : "e"} );
$("#DataTables_Table_0--${pageName}${pageDataName2}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트 생성
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName});
}
// 화면 초기 설정
initForm${pageName} = (taskSeCd) => {
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
@ -556,6 +541,7 @@
// dataset 초기화
${pageName}Control.dataset.clear();
${pageName}${pageDataName2}Dataset.clear();
}
// URL 설정
@ -568,6 +554,7 @@
// 화면 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#deptCd--${pageName}").val("${deptCd}"); // 부서 코드
$("#egpConOrg--${pageName}").val("${egpConOrg}"); // E그린 외부기관구분코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
// ${pageName}Control 설정
@ -586,9 +573,6 @@
// 화면 초기 설정 및 업무 구분 변경
fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val());
// 부서 정보
${pageName}${pageDataName2}Dataset.setData([${deptInfo}]);
});
</script>

@ -88,32 +88,34 @@
</div>
</div>
</div> <!-- / 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 단속 등록일자, 단속 수정일자 -->
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailCrdnRegDtOpt--${pageName}" name="schDetailCrdnRegDtOpt">
<option value="regDt">단속 등록일자</option>
<option value="mdfcnDt">단속 수정일자</option>
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<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="시작 날짜 선택" />
<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="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 단속 등록자명, 단속 수정자명 -->
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailCrdnRgtrOpt--${pageName}" name="schDetailCrdnRgtrOpt">
<option value="rgtr">단속 등록자</option>
<option value="mdfr">단속 수정자</option>
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</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>
@ -198,7 +200,7 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_TRSM_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-start" onclick="{onclick}" ondblclick="{ondblclick}">{ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_ADDR}</td>
@ -364,6 +366,32 @@
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// callback 사용자 검색
callbackFindUser${pageName} = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
getFindUser${pageName} = () => {
let params = {
callbackFuncName : "callbackFindUser${pageName}"
}
ajax.get({
url : wctx.url("/user/user02/010/main.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "userDialog"
, title : "사용자 검색"
, content : resp
, size : "lg"
});
}
});
}
// 개별총정보 dialog
getTotalInfo${pageName} = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -384,8 +412,6 @@
, title : "개별총정보"
, content : resp
, size : "xxl"
, init : () => { }
, onClose : () => { }
});
}
});
@ -410,13 +436,13 @@
}
// 초기 기본 설정
initForm${pageName}(taskSeCd);
initForm${pageName}();
// URL 설정
setURL${pageName}(taskSeCd);
// 기본 데이터 설정
setFormData${pageName}();
setFormData${pageName}(taskSeCd);
}
// 검색 버튼 이벤트
@ -424,7 +450,7 @@
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load(1);
@ -432,12 +458,24 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
dialog.alert({
content : "검색된 자료가 없습니다."
, onOK : () => { }
});
return;
}
let headerInfo = $("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").getHeaderInfo();
${pageName}Control.query.excelTitle = headerInfo.excelTitle;
${pageName}Control.query.excelTitleWidth = headerInfo.excelTitleWidth;
${pageName}Control.download();
}
// 사용자 조회 버튼 이벤트
fnFindUser${pageName} = () => {
getFindUser${pageName}();
}
// 감경부과등록 버튼 이벤트
@ -484,12 +522,10 @@
}
// 화면 초기 설정
initForm${pageName} = (taskSeCd) => {
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
@ -500,6 +536,9 @@
$("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-465).date);
$("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date());
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
// dataset 초기화
${pageName}Control.dataset.clear();
}
@ -510,9 +549,13 @@
}
// 기본 데이터 설정
setFormData${pageName} = () => {
setFormData${pageName} = (taskSeCd) => {
// 화면 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
// ${pageName}Control 설정
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
}
/**************************************************************************
@ -522,18 +565,11 @@
// 이벤트 설정
setEvent${pageName}();
// 시군구 코드 설정
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
// 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 화면 초기 설정 및 업무 구분 변경
fnResetAndChangeBiz${pageName}(defaultBizValue);
fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val());
});
</script>

@ -145,27 +145,28 @@
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRegDtOpt--${pageName}" name="schDetailRegDtOpt">
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDetailRegDtFrom--${pageName}" name="schDetailRegDtFrom"
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schDetailRegDtTo--${pageName}" name="schDetailRegDtTo"
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRgtrOpt--${pageName}" name="schDetailRgtrOpt">
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="text" class="form-control" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" />
<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>
@ -187,7 +188,6 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
</span>
</span>
</div>
@ -202,9 +202,7 @@
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);"></th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('FYR', this.innerText, 'match', 'part');">회계연도</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ACNTG_SE_CD', this.innerText, 'codeValue', 'FIM074');">회계코드</th>
@ -234,25 +232,26 @@
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('SZR_THING', this.innerText, 'match', 'part');">압류물건</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RPM_SZR_VHRNO', this.innerText, 'match', 'part');">대체압류차량</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SZR_RMV_YMD', this.innerText, 'match', 'part');">압류해제일자</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('EPAYNO', this.innerText, 'match', 'part');">전자납부번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('BANK_NM', this.innerText, 'match', 'part');">은행명</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('VR_ACTNO', this.innerText, 'match', 'part');">가상계좌번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('BANK_NM2', this.innerText, 'match', 'part');">은행명2</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('VR_ACTNO2', this.innerText, 'match', 'part');">가상계좌번호2</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('BANK_NM3', this.innerText, 'match', 'part');">은행명3</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('VR_ACTNO3', this.innerText, 'match', 'part');">가상계좌번호3</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: 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: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', 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: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</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, 'ymd', '');">납부자생일</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('ADDR', this.innerText, 'match', 'part');">주소</th>
<th class="cmn" style="width: 340px;" onclick="searchFromGridTitle('DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('EPAYNO', this.innerText, 'match', 'part');">전자납부번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('BANK_NM', this.innerText, 'match', 'part');">은행명</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('VR_ACTNO', this.innerText, 'match', 'part');">가상계좌번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('BANK_NM2', this.innerText, 'match', 'part');">은행명2</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('VR_ACTNO2', this.innerText, 'match', 'part');">가상계좌번호2</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('BANK_NM3', this.innerText, 'match', 'part');">은행명3</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('VR_ACTNO3', this.innerText, 'match', 'part');">가상계좌번호3</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
@ -265,9 +264,7 @@
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{LEVY_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{LEVY_ID}" onchange="${pageName}Control.select('{LEVY_ID}', this.checked);">
</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" value="{LEVY_ID}" onchange="${pageName}Control.select('{LEVY_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}">{FYR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ACNTG_SE_CD}</td>
@ -297,25 +294,26 @@
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{SZR_THING}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RPM_SZR_VHRNO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SZR_RMV_YMD}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{EPAYNO_MASK}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{BANK_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VR_ACTNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{BANK_NM2}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VR_ACTNO2}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{BANK_NM3}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VR_ACTNO3}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</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}">{VLTN_ARTCL}</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-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_SE_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-start" onclick="{onclick}" ondblclick="{ondblclick}">{ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{EPAYNO_MASK}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{BANK_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VR_ACTNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{BANK_NM2}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VR_ACTNO2}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{BANK_NM3}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VR_ACTNO3}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
@ -489,6 +487,32 @@
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// callback 사용자 검색
callbackFindUser${pageName} = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
getFindUser${pageName} = () => {
let params = {
callbackFuncName : "callbackFindUser${pageName}"
}
ajax.get({
url : wctx.url("/user/user02/010/main.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "userDialog"
, title : "사용자 검색"
, content : resp
, size : "lg"
});
}
});
}
// 개별총정보 dialog
getTotalInfo${pageName} = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -509,8 +533,6 @@
, title : "개별총정보"
, content : resp
, size : "xxl"
, init : () => { }
, onClose : () => { }
});
}
});
@ -535,13 +557,13 @@
}
// 초기 기본 설정
initForm${pageName}(taskSeCd);
initForm${pageName}();
// URL 설정
setURL${pageName}(taskSeCd);
// 기본 데이터 설정
setFormData${pageName}();
setFormData${pageName}(taskSeCd);
}
// 검색 버튼 이벤트
@ -557,12 +579,24 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
dialog.alert({
content : "검색된 자료가 없습니다."
, onOK : () => { }
});
return;
}
let headerInfo = $("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").getHeaderInfo();
${pageName}Control.query.excelTitle = headerInfo.excelTitle;
${pageName}Control.query.excelTitleWidth = headerInfo.excelTitleWidth;
${pageName}Control.download();
}
// 사용자 조회 버튼 이벤트
fnFindUser${pageName} = () => {
getFindUser${pageName}();
}
/**************************************************************************
@ -598,12 +632,10 @@
}
// 화면 초기 설정
initForm${pageName} = (taskSeCd) => {
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
@ -617,6 +649,12 @@
initDatepicker("frmSearch--${pageName}");
// $("#schLevyYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
// $("#schLevyYmdTo--${pageName}").datepicker("setDate", new Date());
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
// dataset 초기화
${pageName}Control.dataset.clear();
}
// URL 설정
@ -625,9 +663,13 @@
}
// 기본 데이터 설정
setFormData${pageName} = () => {
setFormData${pageName} = (taskSeCd) => {
// 화면 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
// ${pageName}Control 설정
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
}
/**************************************************************************
@ -637,18 +679,11 @@
// 이벤트 설정
setEvent${pageName}();
// 시군구 코드 설정
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
// 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 화면 초기 설정 및 업무 구분 변경
fnResetAndChangeBiz${pageName}(defaultBizValue);
fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val());
});
</script>

@ -331,7 +331,7 @@
// 이벤트 설정
setEvent${pageName}();
// 화면 초기화
// 초기 기본 설정
initForm${pageName}();
// Dataset 설정

Loading…
Cancel
Save