1. 부과제외 - 엑셀 수정.

2. 부과제외 - 등록자 검색 수정.
3. 우편통합 - 수정.
main
jjh 11 months ago
parent e9026d34b1
commit 68fe09fd26

@ -30,6 +30,7 @@ import javax.imageio.ImageIO;
import org.apache.commons.io.FilenameUtils;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import cokr.xit.base.file.xls.XLSWriter;
import cokr.xit.base.file.xls.XLSWriter.Styler;
@ -460,11 +461,12 @@ public class CmmnUtil {
widths.get(i),
new XLSWriter.Styler()
.width(widths.get(i))
.foregroundColor(HSSFColor.HSSFColorPredefined.LIGHT_BLUE.getIndex())
.foregroundColor(HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex())
.configure(styler -> {
Font font = xlsxWriter.workbook().createFont();
font.setColor(HSSFColor.HSSFColorPredefined.WHITE.getIndex());
font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
styler.font(font);
styler.alignment(HorizontalAlignment.CENTER);
})
);
}
@ -474,4 +476,5 @@ public class CmmnUtil {
return result;
}
}

@ -39,6 +39,10 @@ public class EpostGdccBean extends AbstractComponent {
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
if (req.getBy() == null) {

@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.epst.EpostRcptDtl;
import cokr.xit.fims.epst.dao.EpostRcptDtlMapper;
@ -35,6 +35,23 @@ public class EpostRcptDtlBean extends AbstractComponent {
* @return
*/
public List<DataObject> getEpostRcptDtlList(EpostQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return epostRcptDtlMapper.selectEpostRcptDtlList(req);
}

@ -35,9 +35,13 @@ public class EpostRcptRegBean extends AbstractComponent {
* @return
*/
public List<DataObject> getEpostRcptRegList(EpostQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
@ -47,6 +51,7 @@ public class EpostRcptRegBean extends AbstractComponent {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return epostRcptRegMapper.selectEpostRcptRegList(req);
}

@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.epst.EpostRcptRslt;
import cokr.xit.fims.epst.dao.EpostRcptRsltMapper;
@ -35,6 +35,23 @@ public class EpostRcptRsltBean extends AbstractComponent {
* @return
*/
public List<DataObject> getEpostRcptRsltList(EpostQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return epostRcptRsltMapper.selectEpostRcptRsltList(req);
}

@ -1,7 +1,9 @@
package cokr.xit.fims.epst.web;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import javax.annotation.Resource;
@ -13,9 +15,11 @@ 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.DeptService;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery;
@ -116,46 +120,53 @@ public class Epst02Controller extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), result, "epostGdcc");
} else {
XLSWriter xlsx = new XLSWriter()
.setFilename("우편통합 안내문관리 목록.xlsx")
.setFilename("우편통합 안내문 목록.xlsx")
.worksheet(0);
XLSWriter.Styler header = new XLSWriter.Styler()
.width(16)
.foregroundColor(HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex())
.configure(styler -> {
Font font = xlsx.workbook().createFont();
font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
styler.font(font);
styler.alignment(HorizontalAlignment.CENTER);
});
/*
CellStyle numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,)
, dateYMD = xlsx.yyyy_mm_dd() // 연월일
, dateTM = xlsx.hh_mm_ss() // 시간
, dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일 시간
*/
CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일 시간
CellStyle 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)
.value("우편통합 안내문", XLSWriter.Styler.CENTER)
.merge(0, 8)
.cell(3, 0)
.rowValues(List.of(
"업무구분", header, "발송구분", header, "사용여부", header, "최종사용일시", header, "제목", header
, "등록일시", header, "등록사용자", header, "수정일시", header, "수정사용자", header
))
.cell(4, 0)
.values( epostGdccService.getEpostGdccList(req.setFetchSize(0))
, xlsx.style("TASK_SE_NM", XLSWriter.Styler.CENTER)
, xlsx.style("SNDNG_SE_NM", XLSWriter.Styler.CENTER)
, xlsx.style("USE_YN_NM", XLSWriter.Styler.CENTER)
, xlsx.format(r -> xlsx.str2datetime(r.get("LAST_USE_DT"))).style(dateDT)
, xlsx.style("TTL_NM", XLSWriter.Styler.LEFT)
, xlsx.format(r -> xlsx.str2datetime(r.get("REG_DT"))).style(dateDT)
, xlsx.style("RGTR_NM", XLSWriter.Styler.LEFT)
, xlsx.format(r -> xlsx.str2datetime(r.get("MDFCN_DT"))).style(dateDT)
, xlsx.style("MDFR_NM", XLSWriter.Styler.LEFT)
);
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = epostGdccService.getEpostGdccList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (title1, noting) -> {
switch (title1) {
case "업무구분" : return xlsx.style("TASK_SE_NM", XLSWriter.Styler.CENTER);
case "발송구분" : return xlsx.style("SNDNG_SE_NM", XLSWriter.Styler.CENTER);
case "사용여부" : return xlsx.style("USE_YN_NM", XLSWriter.Styler.CENTER);
case "최종사용일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("LAST_USE_DT"))).style(dateDT);
case "제목" : return xlsx.style("TTL_NM", XLSWriter.Styler.LEFT);
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", XLSWriter.Styler.CENTER);
case "수정일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT);
case "수정사용자" : return xlsx.style("MDFR_NM", XLSWriter.Styler.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);
@ -299,41 +310,52 @@ public class Epst02Controller extends ApplicationController {
.setFilename("우편통합 발송상태 목록.xlsx")
.worksheet(0);
XLSWriter.Styler header = new XLSWriter.Styler()
.width(16)
.foregroundColor(HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex())
.configure(styler -> {
Font font = xlsx.workbook().createFont();
font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
styler.font(font);
styler.alignment(HorizontalAlignment.CENTER);
});
CellStyle numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,)
, dateYMD = xlsx.yyyy_mm_dd() // 연월일
, dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일 시간
, 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)
.value("우편통합 발송상태", XLSWriter.Styler.CENTER)
.merge(0, 8)
.cell(3, 0)
.rowValues(List.of(
"발송일자", header, "발송내역", header, "취급구분", header, "접수일자", header, "자료키", header
, "발송건수", header, "우편처리상태", header
, "등록일시", header, "등록사용자", header
))
.cell(4, 0)
.values( epostRcptRegService.getEpostRcptRegList(req.setFetchSize(0))
, xlsx.format(r -> xlsx.str2date(r.get("SEND_DATE"))).style(dateYMD)
, xlsx.style("JOB_CD", XLSWriter.Styler.CENTER)
, xlsx.style("DIV_KB_NM", XLSWriter.Styler.CENTER)
, xlsx.format(r -> xlsx.str2date(r.get("RCEPT_YMD"))).style(dateYMD)
, xlsx.style("CON_KEY", XLSWriter.Styler.CENTER)
, xlsx.style("RECEV_CNT", numeric)
, xlsx.style("POST_PRCS_STTS_NM", XLSWriter.Styler.CENTER)
, xlsx.format(r -> xlsx.str2datetime(r.get("REG_DT"))).style(dateDT)
, xlsx.style("RGTR_NM", XLSWriter.Styler.LEFT)
);
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = epostRcptRegService.getEpostRcptRegList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (title1, noting) -> {
switch (title1) {
case "발송일자" : return xlsx.format(o -> xlsx.str2date(o.get("SEND_DATE"))).style(dateYMD);
case "발송내역" : return xlsx.style("JOB_CD", XLSWriter.Styler.CENTER);
case "취급구분" : return xlsx.style("DIV_KB_NM", XLSWriter.Styler.CENTER);
case "접수일자" : return xlsx.format(o -> xlsx.str2date(o.get("RCEPT_YMD"))).style(dateYMD);
case "자료키" : return xlsx.style("CON_KEY", XLSWriter.Styler.CENTER);
case "발송건수" : return xlsx.style("RECEV_CNT", numeric);
case "우편처리상태" : return xlsx.style("POST_PRCS_STTS_NM", XLSWriter.Styler.CENTER);
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", XLSWriter.Styler.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);
@ -425,44 +447,55 @@ public class Epst02Controller extends ApplicationController {
.setFilename("우편통합 접수결과 목록.xlsx")
.worksheet(0);
XLSWriter.Styler header = new XLSWriter.Styler()
.width(16)
.foregroundColor(HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex())
.configure(styler -> {
Font font = xlsx.workbook().createFont();
font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
styler.font(font);
styler.alignment(HorizontalAlignment.CENTER);
});
CellStyle numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,)
, dateYMD = xlsx.yyyy_mm_dd() // 연월일
, dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일 시간
, 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)
.value("우편통합 접수결과", XLSWriter.Styler.CENTER)
.merge(0, 11)
.cell(3, 0)
.rowValues(List.of(
"발송자료키", header, "우편물코드", header, "우편물종류", header, "발송일자", header, "접수일자", header
, "취급구분", header, "발송건수", header, "결제금액", header, "제작수수료", header, "우편요금", header
, "등록일시", header, "등록사용자", header
))
.cell(4, 0)
.values( epostRcptRsltService.getEpostRcptRsltList(req.setFetchSize(0))
, xlsx.style("RELETCDATA", XLSWriter.Styler.CENTER)
, xlsx.style("JOB_CD", XLSWriter.Styler.CENTER)
, xlsx.style("JOB_CD3_NM", XLSWriter.Styler.CENTER)
, xlsx.format(r -> xlsx.str2date(r.get("EXTRI_REGYMD"))).style(dateYMD)
, xlsx.format(r -> xlsx.str2date(r.get("RCEPT_YMD"))).style(dateYMD)
, xlsx.style("DIV_KB_NM", XLSWriter.Styler.CENTER)
, xlsx.style("RCEPT_CNT", numeric)
, xlsx.style("RCEPT_AMT", numeric)
, xlsx.style("USEFEE_AMT", numeric)
, xlsx.style("TOTPOST_PRC", numeric)
, xlsx.format(r -> xlsx.str2datetime(r.get("REG_DT"))).style(dateDT)
, xlsx.style("RGTR_NM", XLSWriter.Styler.LEFT)
);
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = epostRcptRsltService.getEpostRcptRsltList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (title1, noting) -> {
switch (title1) {
case "발송자료키" : return xlsx.style("RELETCDATA", XLSWriter.Styler.CENTER);
case "우편물코드" : return xlsx.style("JOB_CD", XLSWriter.Styler.CENTER);
case "우편물종류" : return xlsx.style("JOB_CD3_NM", XLSWriter.Styler.CENTER);
case "발송일자" : return xlsx.format(r -> xlsx.str2date(r.get("EXTRI_REGYMD"))).style(dateYMD);
case "접수일자" : return xlsx.format(r -> xlsx.str2date(r.get("RCEPT_YMD"))).style(dateYMD);
case "취급구분" : return xlsx.style("DIV_KB_NM", XLSWriter.Styler.CENTER);
case "발송건수" : return xlsx.style("RCEPT_CNT", numeric);
case "결제금액" : return xlsx.style("RCEPT_AMT", numeric);
case "제작수수료" : return xlsx.style("USEFEE_AMT", numeric);
case "우편요금" : return xlsx.style("TOTPOST_PRC", numeric);
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", XLSWriter.Styler.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);

@ -13,6 +13,7 @@ import cokr.xit.base.file.FileInfo;
import cokr.xit.base.file.service.FileQuery;
import cokr.xit.base.file.service.bean.FileBean;
import cokr.xit.base.file.web.FileInfoFactory;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.service.bean.CrdnBean;
import cokr.xit.fims.excl.CrdnReReg;
@ -51,11 +52,21 @@ public class CrdnReRegBean extends AbstractComponent {
* @return
*/
public List<DataObject> getCrdnReRegList(LevyExclQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return crdnReRegMapper.selectCrdnReRegList(req);

@ -42,6 +42,10 @@ public class LevyExclBean extends AbstractComponent {
* @return
*/
public List<DataObject> getLevyExclList(LevyExclQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");

@ -9,6 +9,7 @@ import org.springframework.stereotype.Component;
import cokr.xit.base.file.FileInfo;
import cokr.xit.base.file.service.FileQuery;
import cokr.xit.base.file.service.bean.FileBean;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.crdn.Crdn;
@ -55,11 +56,21 @@ public class OpnnSbmsnBean extends AbstractComponent {
* @return
*/
public List<DataObject> getOpnnSbmsnList(LevyExclQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
}
// 정렬 확인
if (req.getOrderBy() == null) {
if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
}
return opnnSbmsnMapper.selectOpnnSbmsnList(req);

@ -3,9 +3,11 @@ package cokr.xit.fims.excl.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.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
@ -13,9 +15,12 @@ import cokr.xit.base.code.CommonCode;
import cokr.xit.base.file.FileInfo;
import cokr.xit.base.file.service.FileService;
import cokr.xit.base.file.web.FileInfoFactory;
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.excl.OpnnSbmsn;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.service.OpnnSbmsnService;
import cokr.xit.fims.sprt.PrintOption;
@ -94,9 +99,79 @@ public class Excl02Controller extends ApplicationController {
* }</code></pre>
*/
public ModelAndView getOpinionSubmissionList(LevyExclQuery req) {
if (!"xls".equals(req.getDownload())) {
List<?> result = opnnSbmsnService.getOpnnSbmsnList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "opnnSbmsn");
} else {
XLSWriter xlsx = new XLSWriter()
.setFilename("의견제출 목록.xlsx")
.worksheet(0);
CellStyle 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, 23)
.cell(3, 0)
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = opnnSbmsnService.getOpnnSbmsnList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (title1, noting) -> {
switch (title1) {
case "업무구분" : return xlsx.style("TASK_SE_NM", XLSWriter.Styler.CENTER);
case "접수일자" : return xlsx.format(o -> xlsx.str2date(o.get("RCPT_YMD"))).style(dateYMD);
case "접수번호" : return xlsx.style("RCPT_NO", XLSWriter.Styler.CENTER);
case "접수구분" : return xlsx.style("RCPT_SE_NM", XLSWriter.Styler.CENTER);
case "통보구분" : return xlsx.style("NTFCTN_SE_NM", XLSWriter.Styler.CENTER);
case "진술자명" : return xlsx.style("STTR_NM", XLSWriter.Styler.LEFT);
case "의견제출상태" : return xlsx.style("OPNN_SBMSN_STTS_NM", XLSWriter.Styler.CENTER);
case "의견제출분류" : return xlsx.style("OPNN_SBMSN_SE_NM", XLSWriter.Styler.LEFT);
case "의견제출요지" : return xlsx.style("OPNN_SBMSN_GIST", XLSWriter.Styler.LEFT);
case "단속일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT);
case "차량번호" : return xlsx.style("VHRNO", XLSWriter.Styler.LEFT);
case "단속장소" : return xlsx.style("CRDN_PLC", XLSWriter.Styler.LEFT);
case "최초단속금액" : return xlsx.style("FFNLG_CRDN_AMT", numeric);
case "과태료금액" : return xlsx.style("FFNLG_AMT", numeric);
case "처리상태" : return xlsx.style("CRDN_STTS_NM", XLSWriter.Styler.LEFT);
case "문서번호" : return xlsx.style("DOC_NO", XLSWriter.Styler.LEFT);
case "답변일자" : return xlsx.format(o -> xlsx.str2date(o.get("ANS_YMD"))).style(dateYMD);
case "답변내용" : return xlsx.style("ANS_CN", XLSWriter.Styler.LEFT);
case "납부자명" : return xlsx.style("RTPYR_NM", XLSWriter.Styler.LEFT);
case "납부자생일" : return xlsx.format(o -> xlsx.str2date(o.get("RTPYR_BRDT"))).style(dateYMD);
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", XLSWriter.Styler.CENTER);
case "수정일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT);
case "수정사용자" : return xlsx.style("MDFR_NM", XLSWriter.Styler.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);
}
}
/** ID .

@ -1,20 +1,27 @@
package cokr.xit.fims.excl.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.bind.annotation.RequestMapping;
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.CmmnUtil;
import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.service.CrdnReRegService;
import cokr.xit.foundation.data.DataObject;
/**
*
@ -77,9 +84,67 @@ public class Excl03Controller extends ApplicationController {
*/
@RequestMapping(name = "단속 재등록 리스트 조회", value = "/010/list.do")
public ModelAndView getCrackdownReRegistrationList(LevyExclQuery req) {
if (!"xls".equals(req.getDownload())) {
List<?> result = crdnReRegService.getCrdnReRegList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "crdnReReg");
} else {
XLSWriter xlsx = new XLSWriter()
.setFilename("단속 재등록 목록.xlsx")
.worksheet(0);
CellStyle 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, 11)
.cell(3, 0)
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = crdnReRegService.getCrdnReRegList(req.setFetchSize(0));
BiFunction<String, String, ?> getValue = (title1, noting) -> {
switch (title1) {
case "업무구분" : return xlsx.style("TASK_SE_NM", XLSWriter.Styler.CENTER);
case "재등록일자" : return xlsx.format(o -> xlsx.str2date(o.get("RE_REG_YMD"))).style(dateYMD);
case "단속등록구분" : return xlsx.style("CRDN_REG_SE_NM", XLSWriter.Styler.CENTER);
case "기타내용" : return xlsx.style("ETC_CN", XLSWriter.Styler.LEFT);
case "단속일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT);
case "차량번호" : return xlsx.style("VHRNO", XLSWriter.Styler.LEFT);
case "법정동" : return xlsx.style("CRDN_STDG_NM", XLSWriter.Styler.CENTER);
case "단속장소" : return xlsx.style("CRDN_PLC", XLSWriter.Styler.LEFT);
case "최초단속금액" : return xlsx.style("FFNLG_CRDN_AMT", numeric);
case "처리상태" : return xlsx.style("CRDN_STTS_NM", XLSWriter.Styler.LEFT);
case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT);
case "등록사용자" : return xlsx.style("RGTR_NM", XLSWriter.Styler.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);
}
}
/** .

@ -33,6 +33,7 @@
<result property="recevOcr1" column="RECEV_OCR1" /> <!-- OCR1 -->
<result property="recevOcr2" column="RECEV_OCR2" /> <!-- OCR2 -->
<result property="recevOnlinePayNumber" column="RECEV_ONLINE_PAY_NUMBER" /> <!-- 전자납부번호 -->
<result property="vractno" column="VRACTNO" /> <!-- 가상계좌번호 -->
<result property="recevFinePrice" column="RECEV_FINE_PRICE" /> <!-- 과태료 -->
<result property="recevPayPrice" column="RECEV_PAY_PRICE" /> <!-- 납부금액 -->
<result property="recevPayDt" column="RECEV_PAY_DT" /> <!-- 납부기한 -->
@ -56,7 +57,6 @@
<result property="recevPhotoFilename2" column="RECEV_PHOTO_FILENAME2" /> <!-- 사진파일명2 -->
<result property="recevPhotoFilename3" column="RECEV_PHOTO_FILENAME3" /> <!-- 사진파일명3 -->
<result property="recevPhotoFilename4" column="RECEV_PHOTO_FILENAME4" /> <!-- 사진파일명4 -->
<result property="vractno" column="VRACTNO" /> <!-- 가상계좌번호 -->
<result property="vractno2" column="VRACTNO2" /> <!-- 가상계좌번호2 -->
<result property="vractno3" column="VRACTNO3" /> <!-- 가상계좌번호3 -->
<result property="vractno4" column="VRACTNO4" /> <!-- 가상계좌번호4 -->
@ -84,86 +84,122 @@
</resultMap>
<sql id="select">
SELECT CON_KEY <!-- 외부연계식별키 -->
, RGST_NMBR <!-- 등기번호 -->
, RECEV_SEQ <!-- 일련번호 -->
, RECEV_CODE <!-- 발송코드 -->
, RECEV_BAR1D <!-- 바코드 -->
, RECEV_BAR2D <!-- 이차원바코드 -->
, RECEV_BILL_NUMBER <!-- 고지번호 -->
, RECEV_DOC_CD1 <!-- 문서종류1 -->
, RECEV_DOC_CD2 <!-- 문서종류2 -->
, RECEV_DOC_CD3 <!-- 문서종류3 -->
, RECEV_DOC_CD4 <!-- 문서종류4 -->
, RECEV_DOC_CD5 <!-- 문서종류5 -->
, RECEV_SUBJ1 <!-- 과목명1 -->
, RECEV_SUBJ2 <!-- 과목명2 -->
, RECEV_SUBJ3 <!-- 과목명3 -->
, RECEV_VIOLATE_DT <!-- 위반일시 -->
, RECEV_VIOLATE_DONG <!-- 위반동 -->
, RECEV_VIOLATE_PLACE <!-- 위반장소 -->
, RECEV_LAWS <!-- 법조항 -->
, RECEV_PAY_NUMBER1 <!-- 납부번호1 -->
, RECEV_PAY_NUMBER2 <!-- 납부번호2 -->
, RECEV_OCR0 <!-- OCR0 -->
, RECEV_OCR1 <!-- OCR1 -->
, RECEV_OCR2 <!-- OCR2 -->
, RECEV_ONLINE_PAY_NUMBER <!-- 전자납부번호 -->
, VRACTNO <!-- 가상계좌번호 -->
, RECEV_FINE_PRICE <!-- 과태료 -->
, RECEV_PAY_PRICE <!-- 납부금액 -->
, RECEV_PAY_DT <!-- 납부기한 -->
, RECEV_PAY_IN_DATE <!-- 납기내기한 -->
, RECEV_PAY_IN_PRICE <!-- 납기내금액 -->
, RECEV_PAY_IN_ADD_PRICE <!-- 납기내가산금 -->
, RECEV_PAY_IN_DEFAULT_PRICE <!-- 납기내합계금액 -->
, RECEV_PAY_OUT_DATE <!-- 납기후기한 -->
, RECEV_PAY_OUT_PRICE <!-- 납기후금액 -->
, RECEV_PAY_OUT_ADD_PRICE <!-- 납기후가산금 -->
, RECEV_PAY_OUT_DEFAULT_PRICE <!-- 납기후합계금액 -->
, RECEV_CAR_NUMBER <!-- 차량번호 -->
, RECEV_CAR_OWNER_ZIPCODE <!-- 우편번호 -->
, RECEV_CAR_OWNER_ADDR <!-- 주소 -->
, RECEV_CAR_OWNER_DETAILADDR <!-- 상세주소 -->
, RECEV_CAR_OWNER_NM <!-- 소유자명 -->
, RECEV_CAR_OWNER_SSN <!-- 주민번호 -->
, RECEV_EVIDENCE_NUMBER <!-- 증거번호 -->
, RECEV_PHOTO_CNT <!-- 사진장수 -->
, RECEV_PHOTO_FILENAME1 <!-- 사진파일명1 -->
, RECEV_PHOTO_FILENAME2 <!-- 사진파일명2 -->
, RECEV_PHOTO_FILENAME3 <!-- 사진파일명3 -->
, RECEV_PHOTO_FILENAME4 <!-- 사진파일명4 -->
, VRACTNO2 <!-- 가상계좌번호2 -->
, VRACTNO3 <!-- 가상계좌번호3 -->
, VRACTNO4 <!-- 가상계좌번호4 -->
, VRACTNO5 <!-- 가상계좌번호5 -->
, VRACTNO6 <!-- 가상계좌번호6 -->
, VRACTNO7 <!-- 가상계좌번호7 -->
, VRACTNO8 <!-- 가상계좌번호8 -->
, VRACTNO9 <!-- 가상계좌번호9 -->
, VRACTNO10 <!-- 가상계좌번호10 -->
, VRACTNO11 <!-- 가상계좌번호11 -->
, DTL_VAR_DATA1 <!-- 추가 데이터1 -->
, DTL_VAR_DATA2 <!-- 추가 데이터2 -->
, DTL_VAR_DATA3 <!-- 추가 데이터3 -->
, DTL_VAR_DATA4 <!-- 추가 데이터4 -->
, DTL_VAR_DATA5 <!-- 추가 데이터5 -->
, MAKE_RSLT_CD <!-- 제작 결과 코드 -->
, DLVR_RSLT_ID <!-- 배달 결과 ID -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, DEL_YN <!-- 삭제 여부 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
FROM TB_EPOST_RCPT_DTL
SELECT ERD.CON_KEY <!-- 외부연계식별키 -->
, ERD.RGST_NMBR <!-- 등기번호 -->
, ERD.RECEV_SEQ <!-- 일련번호 -->
, ERD.RECEV_CODE <!-- 발송코드 -->
, ERD.RECEV_BAR1D <!-- 바코드 -->
, ERD.RECEV_BAR2D <!-- 이차원바코드 -->
, ERD.RECEV_BILL_NUMBER <!-- 고지번호 -->
, ERD.RECEV_DOC_CD1 <!-- 문서종류1 -->
, ERD.RECEV_DOC_CD2 <!-- 문서종류2 -->
, ERD.RECEV_DOC_CD3 <!-- 문서종류3 -->
, ERD.RECEV_DOC_CD4 <!-- 문서종류4 -->
, ERD.RECEV_DOC_CD5 <!-- 문서종류5 -->
, ERD.RECEV_SUBJ1 <!-- 과목명1 -->
, ERD.RECEV_SUBJ2 <!-- 과목명2 -->
, ERD.RECEV_SUBJ3 <!-- 과목명3 -->
, ERD.RECEV_VIOLATE_DT <!-- 위반일시 -->
, ERD.RECEV_VIOLATE_DONG <!-- 위반동 -->
, ERD.RECEV_VIOLATE_PLACE <!-- 위반장소 -->
, ERD.RECEV_LAWS <!-- 법조항 -->
, ERD.RECEV_PAY_NUMBER1 <!-- 납부번호1 -->
, ERD.RECEV_PAY_NUMBER2 <!-- 납부번호2 -->
, ERD.RECEV_OCR0 <!-- OCR0 -->
, ERD.RECEV_OCR1 <!-- OCR1 -->
, ERD.RECEV_OCR2 <!-- OCR2 -->
, ERD.RECEV_ONLINE_PAY_NUMBER <!-- 전자납부번호 -->
, ERD.VRACTNO <!-- 가상계좌번호 -->
, ERD.RECEV_FINE_PRICE <!-- 과태료 -->
, ERD.RECEV_PAY_PRICE <!-- 납부금액 -->
, ERD.RECEV_PAY_DT <!-- 납부기한 -->
, ERD.RECEV_PAY_IN_DATE <!-- 납기내기한 -->
, ERD.RECEV_PAY_IN_PRICE <!-- 납기내금액 -->
, ERD.RECEV_PAY_IN_ADD_PRICE <!-- 납기내가산금 -->
, ERD.RECEV_PAY_IN_DEFAULT_PRICE <!-- 납기내합계금액 -->
, ERD.RECEV_PAY_OUT_DATE <!-- 납기후기한 -->
, ERD.RECEV_PAY_OUT_PRICE <!-- 납기후금액 -->
, ERD.RECEV_PAY_OUT_ADD_PRICE <!-- 납기후가산금 -->
, ERD.RECEV_PAY_OUT_DEFAULT_PRICE <!-- 납기후합계금액 -->
, ERD.RECEV_CAR_NUMBER <!-- 차량번호 -->
, ERD.RECEV_CAR_OWNER_ZIPCODE <!-- 우편번호 -->
, ERD.RECEV_CAR_OWNER_ADDR <!-- 주소 -->
, ERD.RECEV_CAR_OWNER_DETAILADDR <!-- 상세주소 -->
, ERD.RECEV_CAR_OWNER_NM <!-- 소유자명 -->
, ERD.RECEV_CAR_OWNER_SSN <!-- 주민번호 -->
, ERD.RECEV_EVIDENCE_NUMBER <!-- 증거번호 -->
, ERD.RECEV_PHOTO_CNT <!-- 사진장수 -->
, ERD.RECEV_PHOTO_FILENAME1 <!-- 사진파일명1 -->
, ERD.RECEV_PHOTO_FILENAME2 <!-- 사진파일명2 -->
, ERD.RECEV_PHOTO_FILENAME3 <!-- 사진파일명3 -->
, ERD.RECEV_PHOTO_FILENAME4 <!-- 사진파일명4 -->
, ERD.VRACTNO2 <!-- 가상계좌번호2 -->
, ERD.VRACTNO3 <!-- 가상계좌번호3 -->
, ERD.VRACTNO4 <!-- 가상계좌번호4 -->
, ERD.VRACTNO5 <!-- 가상계좌번호5 -->
, ERD.VRACTNO6 <!-- 가상계좌번호6 -->
, ERD.VRACTNO7 <!-- 가상계좌번호7 -->
, ERD.VRACTNO8 <!-- 가상계좌번호8 -->
, ERD.VRACTNO9 <!-- 가상계좌번호9 -->
, ERD.VRACTNO10 <!-- 가상계좌번호10 -->
, ERD.VRACTNO11 <!-- 가상계좌번호11 -->
, ERD.DTL_VAR_DATA1 <!-- 추가 데이터1 -->
, ERD.DTL_VAR_DATA2 <!-- 추가 데이터2 -->
, ERD.DTL_VAR_DATA3 <!-- 추가 데이터3 -->
, ERD.DTL_VAR_DATA4 <!-- 추가 데이터4 -->
, ERD.DTL_VAR_DATA5 <!-- 추가 데이터5 -->
, ERD.MAKE_RSLT_CD <!-- 제작 결과 코드 -->
, ERD.DLVR_RSLT_ID <!-- 배달 결과 ID -->
, ERD.DEL_YN <!-- 삭제 여부 -->
, ERD.REG_DT <!-- 등록 일시 -->
, ERD.RGTR <!-- 등록자 -->
, ERD.MDFCN_DT <!-- 수정 일시 -->
, ERD.MDFR <!-- 수정자 -->
, ERD.DEL_DT <!-- 삭제 일시 -->
, ERD.DLTR <!-- 삭제자 -->
FROM TB_EPOST_RCPT_DTL ERD
</sql>
<select id="selectEpostRcptDtlList" parameterType="map" resultType="dataobject">/* 전자우편 접수 상세 목록 조회(epostRcptDtlMapper.selectEpostRcptDtlList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where></where>
<where>
</where>
<choose>
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(ERD.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schRegDateTo != null">
AND SUBSTR(ERD.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(ERD.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schRegDateTo != null">
AND SUBSTR(ERD.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND ERD.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND ERD.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
@ -181,13 +217,15 @@
</select>
<insert id="insertEpostRcptDtl" parameterType="map">/* 전자우편 접수 상세 등록(epostRcptDtlMapper.insertEpostRcptDtl) */
INSERT INTO TB_EPOST_RCPT_DTL (
INSERT
INTO TB_EPOST_RCPT_DTL (
CON_KEY <!-- 외부연계식별키 -->
, RGST_NMBR <!-- 등기번호 -->
, RECEV_SEQ <!-- 일련번호 -->
, RECEV_CODE <!-- 발송코드 -->
, RECEV_BAR1D <!-- 바코드 -->
, RECEV_BAR2D <!-- 이차원바코드 -->
, RECEV_BILL_NUMBER <!-- 고지번호 -->
, RECEV_DOC_CD1 <!-- 문서종류1 -->
, RECEV_DOC_CD2 <!-- 문서종류2 -->
, RECEV_DOC_CD3 <!-- 문서종류3 -->
@ -206,6 +244,7 @@ INSERT INTO TB_EPOST_RCPT_DTL (
, RECEV_OCR1 <!-- OCR1 -->
, RECEV_OCR2 <!-- OCR2 -->
, RECEV_ONLINE_PAY_NUMBER <!-- 전자납부번호 -->
, VRACTNO <!-- 가상계좌번호 -->
, RECEV_FINE_PRICE <!-- 과태료 -->
, RECEV_PAY_PRICE <!-- 납부금액 -->
, RECEV_PAY_DT <!-- 납부기한 -->
@ -239,29 +278,26 @@ INSERT INTO TB_EPOST_RCPT_DTL (
, VRACTNO9 <!-- 가상계좌번호9 -->
, VRACTNO10 <!-- 가상계좌번호10 -->
, VRACTNO11 <!-- 가상계좌번호11 -->
, DLVR_RSLT_ID <!-- 배달 결과 ID -->
, MAKE_RSLT_CD <!-- 제작 결과 코드 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, RECEV_BILL_NUMBER <!-- 고지번호 -->
, VRACTNO <!-- 가상계좌번호 -->
, DTL_VAR_DATA1 <!-- 추가 데이터1 -->
, DTL_VAR_DATA2 <!-- 추가 데이터2 -->
, DTL_VAR_DATA3 <!-- 추가 데이터3 -->
, DTL_VAR_DATA4 <!-- 추가 데이터4 -->
, DTL_VAR_DATA5 <!-- 추가 데이터5 -->
, MAKE_RSLT_CD <!-- 제작 결과 코드 -->
, DLVR_RSLT_ID <!-- 배달 결과 ID -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
) VALUES (
) VALUES (
#{epostRcptDtl.conKey} <!-- 외부연계식별키 -->
, #{epostRcptDtl.rgstNmbr} <!-- 등기번호 -->
, #{epostRcptDtl.recevSeq} <!-- 일련번호 -->
, #{epostRcptDtl.recevCode} <!-- 발송코드 -->
, #{epostRcptDtl.recevBar1d} <!-- 바코드 -->
, #{epostRcptDtl.recevBar2d} <!-- 이차원바코드 -->
, #{epostRcptDtl.recevBillNumber} <!-- 고지번호 -->
, #{epostRcptDtl.recevDocCd1} <!-- 문서종류1 -->
, #{epostRcptDtl.recevDocCd2} <!-- 문서종류2 -->
, #{epostRcptDtl.recevDocCd3} <!-- 문서종류3 -->
@ -280,6 +316,7 @@ INSERT INTO TB_EPOST_RCPT_DTL (
, #{epostRcptDtl.recevOcr1} <!-- OCR1 -->
, #{epostRcptDtl.recevOcr2} <!-- OCR2 -->
, #{epostRcptDtl.recevOnlinePayNumber} <!-- 전자납부번호 -->
, #{epostRcptDtl.vractno} <!-- 가상계좌번호 -->
, #{epostRcptDtl.recevFinePrice} <!-- 과태료 -->
, #{epostRcptDtl.recevPayPrice} <!-- 납부금액 -->
, #{epostRcptDtl.recevPayDt} <!-- 납부기한 -->
@ -313,31 +350,28 @@ INSERT INTO TB_EPOST_RCPT_DTL (
, #{epostRcptDtl.vractno9} <!-- 가상계좌번호9 -->
, #{epostRcptDtl.vractno10} <!-- 가상계좌번호10 -->
, #{epostRcptDtl.vractno11} <!-- 가상계좌번호11 -->
, #{epostRcptDtl.dlvrRsltId} <!-- 배달 결과 ID -->
, #{epostRcptDtl.makeRsltCd} <!-- 제작 결과 코드 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
, #{epostRcptDtl.recevBillNumber} <!-- 고지번호 -->
, #{epostRcptDtl.vractno} <!-- 가상계좌번호 -->
, #{epostRcptDtl.dtlVarData1} <!-- 추가 데이터1 -->
, #{epostRcptDtl.dtlVarData2} <!-- 추가 데이터2 -->
, #{epostRcptDtl.dtlVarData3} <!-- 추가 데이터3 -->
, #{epostRcptDtl.dtlVarData4} <!-- 추가 데이터4 -->
, #{epostRcptDtl.dtlVarData5} <!-- 추가 데이터5 -->
, #{epostRcptDtl.delYn} <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{currentUser.id} <!-- 수정자 -->
, #{epostRcptDtl.removedAt} <!-- 삭제 일시 -->
, #{epostRcptDtl.removedBy} <!-- 삭제자 -->
)
, #{epostRcptDtl.makeRsltCd} <!-- 제작 결과 코드 -->
, #{epostRcptDtl.dlvrRsltId} <!-- 배달 결과 ID -->
, 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> /* 등록 일시 */
, #{epostRcptDtl.createdBy} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */
, #{epostRcptDtl.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateEpostRcptDtl" parameterType="map">/* 전자우편 접수 상세 수정(epostRcptDtlMapper.updateEpostRcptDtl) */
UPDATE TB_EPOST_RCPT_DTL SET
RECEV_SEQ = #{epostRcptDtl.recevSeq} <!-- 일련번호 -->
UPDATE TB_EPOST_RCPT_DTL
SET RECEV_SEQ = #{epostRcptDtl.recevSeq} <!-- 일련번호 -->
, RECEV_CODE = #{epostRcptDtl.recevCode} <!-- 발송코드 -->
, RECEV_BAR1D = #{epostRcptDtl.recevBar1d} <!-- 바코드 -->
, RECEV_BAR2D = #{epostRcptDtl.recevBar2d} <!-- 이차원바코드 -->
, RECEV_BILL_NUMBER = #{epostRcptDtl.recevBillNumber} <!-- 고지번호 -->
, RECEV_DOC_CD1 = #{epostRcptDtl.recevDocCd1} <!-- 문서종류1 -->
, RECEV_DOC_CD2 = #{epostRcptDtl.recevDocCd2} <!-- 문서종류2 -->
, RECEV_DOC_CD3 = #{epostRcptDtl.recevDocCd3} <!-- 문서종류3 -->
@ -356,6 +390,7 @@ UPDATE TB_EPOST_RCPT_DTL SET
, RECEV_OCR1 = #{epostRcptDtl.recevOcr1} <!-- OCR1 -->
, RECEV_OCR2 = #{epostRcptDtl.recevOcr2} <!-- OCR2 -->
, RECEV_ONLINE_PAY_NUMBER = #{epostRcptDtl.recevOnlinePayNumber} <!-- 전자납부번호 -->
, VRACTNO = #{epostRcptDtl.vractno} <!-- 가상계좌번호 -->
, RECEV_FINE_PRICE = #{epostRcptDtl.recevFinePrice} <!-- 과태료 -->
, RECEV_PAY_PRICE = #{epostRcptDtl.recevPayPrice} <!-- 납부금액 -->
, RECEV_PAY_DT = #{epostRcptDtl.recevPayDt} <!-- 납부기한 -->
@ -389,31 +424,28 @@ UPDATE TB_EPOST_RCPT_DTL SET
, VRACTNO9 = #{epostRcptDtl.vractno9} <!-- 가상계좌번호9 -->
, VRACTNO10 = #{epostRcptDtl.vractno10} <!-- 가상계좌번호10 -->
, VRACTNO11 = #{epostRcptDtl.vractno11} <!-- 가상계좌번호11 -->
, DLVR_RSLT_ID = #{epostRcptDtl.dlvrRsltId} <!-- 배달 결과 ID -->
, MAKE_RSLT_CD = #{epostRcptDtl.makeRsltCd} <!-- 제작 결과 코드 -->
, RECEV_BILL_NUMBER = #{epostRcptDtl.recevBillNumber} <!-- 고지번호 -->
, VRACTNO = #{epostRcptDtl.vractno} <!-- 가상계좌번호 -->
, DTL_VAR_DATA1 = #{epostRcptDtl.dtlVarData1} <!-- 추가 데이터1 -->
, DTL_VAR_DATA2 = #{epostRcptDtl.dtlVarData2} <!-- 추가 데이터2 -->
, DTL_VAR_DATA3 = #{epostRcptDtl.dtlVarData3} <!-- 추가 데이터3 -->
, DTL_VAR_DATA4 = #{epostRcptDtl.dtlVarData4} <!-- 추가 데이터4 -->
, DTL_VAR_DATA5 = #{epostRcptDtl.dtlVarData5} <!-- 추가 데이터5 -->
, DEL_YN = #{epostRcptDtl.delYn} <!-- 삭제 여부 -->
, MAKE_RSLT_CD = #{epostRcptDtl.makeRsltCd} <!-- 제작 결과 코드 -->
, DLVR_RSLT_ID = #{epostRcptDtl.dlvrRsltId} <!-- 배달 결과 ID -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{currentUser.id} <!-- 수정자 -->
, DEL_DT = #{epostRcptDtl.removedAt} <!-- 삭제 일시 -->
, DLTR = #{epostRcptDtl.removedBy} <!-- 삭제자 -->
WHERE CON_KEY = #{epostRcptDtl.conKey}
AND RGST_NMBR = #{epostRcptDtl.rgstNmbr}
AND DEL_YN = 'N'
</update>
<update id="deleteEpostRcptDtl" parameterType="map">/* 전자우편 접수 상세 삭제(epostRcptDtlMapper.deleteEpostRcptDtl) */
UPDATE TB_EPOST_RCPT_DTL SET
USE_YN = 'N'
, MDFCN_DT =<include refid="utility.now" />
, MDFR = #{currentUser.id}
UPDATE TB_EPOST_RCPT_DTL
SET DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */
, DLTR = #{epostRcptDtl.removedBy} /* 삭제자 */
WHERE CON_KEY = #{epostRcptDtl.conKey}
AND RGST_NMBR = #{epostRcptDtl.rgstNmbr}
AND DEL_YN = 'N'
</update>
</mapper>

@ -9,10 +9,10 @@
<resultMap id="epostRcptRegRow" type="cokr.xit.fims.epst.EpostRcptReg">
<result property="conKey" column="CON_KEY" /> <!-- 외부연계식별키 -->
<result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID -->
<result property="rceptYmd" column="RCEPT_YMD" /> <!-- 접수 일자 -->
<result property="conOrg" column="CON_ORG" /> <!-- 외부기관구분코드 -->
<result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID -->
<result property="rceptId" column="RCEPT_ID" /> <!-- 접수우체국국기호 -->
<result property="rceptYmd" column="RCEPT_YMD" /> <!-- 접수 일자 -->
<result property="dataCd" column="DATA_CD" /> <!-- 접수코드 -->
<result property="divKb" column="DIV_KB" /> <!-- 취급구분 -->
<result property="dfpayyn" column="DFPAYYN" /> <!-- 결재방법 -->
@ -64,7 +64,10 @@
<sql id="selectEpostRcptReg">
SELECT ERR.CON_KEY <!-- 외부연계식별키 -->
, ERR.CON_ORG <!-- 외부기관구분코드 -->
, ERR.SNDNG_ID <!-- 발송 ID -->
, ERR.RCEPT_ID <!-- 접수우체국국기호 -->
, ERR.RCEPT_YMD <!-- 접수 일자 -->
, ERR.DATA_CD <!-- 접수코드 -->
, ERR.DIV_KB <!-- 취급구분 -->
, ERR.DFPAYYN <!-- 결재방법 -->
@ -105,16 +108,17 @@
, ERR.REG_VAR_DATA5 <!-- 추가 데이터5 -->
, ERR.JOB_CD <!-- 작업 코드 -->
, ERR.POST_PRCS_STTS_CD <!-- 우편 처리 상태 코드 -->
, ERR.SNDNG_ID <!-- 발송 ID -->
, ERR.RCEPT_YMD <!-- 접수 일자 -->
, ERR.DEL_YN <!-- 삭제 여부 -->
, ERR.REG_DT <!-- 등록 일시 -->
, ERR.RGTR <!-- 등록자 -->
, ERR.MDFCN_DT <!-- 수정 일시 -->
, ERR.MDFR <!-- 수정자 -->
, ERR.DEL_DT <!-- 삭제 일시 -->
, ERR.DLTR <!-- 삭제자 -->
, (SELECT GET_CODE_NM('EGP002', ERR.DIV_KB) FROM DUAL) AS DIV_KB_NM /* 취급 구분 명 */
, (SELECT GET_CODE_NM('EGP012', ERR.POST_PRCS_STTS_CD) FROM DUAL) AS POST_PRCS_STTS_NM /* 우편 처리 상태 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = ERR.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = ERR.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = ERR.DLTR) AS DLTR_NM /* 삭제자 명 */
FROM TB_EPOST_RCPT_REG ERR
</sql>
@ -204,15 +208,79 @@
<include refid="utility.paging-suffix" />
</select>
<select id="selectEpostRcptRegs" parameterType="map" resultType="dataobject">/* 전자우편 접수 등록 객체 가져오기(epostRcptRegMapper.selectEpostRcptRegs) */
<include refid="selectEpostRcptReg" />
<where></where>
<include refid="utility.orderBy" /></select>
<select id="selectEpostRcptRegs" parameterType="map" resultType="dataobject">/* 전자우편 접수 등록 객체 가져오기(epostRcptRegMapper.selectEpostRcptRegs) */
<include refid="selectEpostRcptReg" />
<where>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectEpostSenderRegSeq" parameterType="String" resultType="String">/* 전자우편 접수 CON_KEY 조회(epostRcptRegMapper.selectEpostSenderRegSeq) */
SELECT LPAD(IFNULL(RIGHT(MAX(CON_KEY), 3), '000') + 1, 3, '0') AS CON_KEY <!-- 외부연계식별키 -->
FROM TB_EPOST_RCPT_REG
WHERE CON_KEY LIKE CONCAT(#{conKey}, '%')
</select>
<select id="selectEpostRgNo" parameterType="String" resultType="String">/* 전자우편 등기번호 조회(epostRcptRegMapper.selectEpostRgNo) */
SELECT RG_NO <!-- 등기 번호 -->
, RG_NO_NEXT <!-- 다음 등기 번호 -->
FROM TB_EPOST_RG_NO
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
AND USE_PSBLTY_PSTN = 'Y'
</select>
<select id="selectDeptSggInfo" parameterType="String" resultType="dataobject">/* 시군구 및 부서 정보 조회(epostRcptRegMapper.selectDeptSggInfo) */
SELECT D.DEPT_CD <!-- 부서 코드 -->
, D.DEPT_NM <!-- 부서 명 -->
, D.DEPT_TELNO <!-- 부서 전화번호 -->
, D.DEPT_FXNO <!-- 부서 팩스번호 -->
, D.VRBACNT_LINK_SE_CD <!-- 가상계좌 연계 구분 코드 -->
, D.PSTOFC_NM <!-- 우체국 명 -->
, D.RG_NO_HEADER <!-- 등기 번호 헤더 -->
, D.SNDNG_LINK_SE_CD <!-- 발송 연계 구분 코드 -->
, D.EGP_CON_ORG <!-- E그린 외부기관구분코드 -->
, D.EGP_RCEPT_ID <!-- E그린 접수우체국국기호 -->
, D.EGP_APVL_NB <!-- E그린 후납계약승인번호 -->
, D.EGP_ESB_PATH <!-- E그린 ESB경로 -->
, D.EGP_CERT_CN <!-- E그린 인증서CN -->
, D.ENS_INTERFACE_ID <!-- 세외수입 인터페이스ID -->
, D.ENS_SOURCE_CD <!-- 세외수입 소스코드 -->
, D.ENS_TARGET_CD <!-- 세외수입 타겟코드 -->
, D.ENS_URL <!-- 세외수입 URL -->
, D.SRVR_OS <!-- 서버 OS -->
, S.SGG_CD <!-- 시군구 코드 -->
, S.SGG_NM <!-- 시군구 명 -->
, S.INST_SE_CD <!-- 기관 구분 코드 -->
, S.INST_CD <!-- 기관 코드 -->
, S.INST_NM <!-- 기관 명 -->
, S.INST_ADDR <!-- 기관 주소 -->
, S.INST_DADDR <!-- 기관 상세주소 -->
, S.INST_ZIP <!-- 기관 우편번호 -->
, S.UP_INST_CD <!-- 상위 기관 코드 -->
, S.UP_INST_NM <!-- 상위 기관 명 -->
, CASE WHEN S.INST_SE_CD = '01' THEN CONCAT(S.SGG_NM, '장')
WHEN S.INST_SE_CD = '02' THEN CONCAT(S.SGG_NM, '청장')
WHEN S.INST_SE_CD = '03' THEN CONCAT(S.SGG_NM, '수')
WHEN S.INST_SE_CD = '04' THEN CONCAT(S.SGG_NM, '지사')
WHEN S.INST_SE_CD = '05' THEN CONCAT(S.SGG_NM, '장')
ELSE S.SGG_NM
END AS INST_CHIEF_NM <!-- 기관 장 명 -->
FROM TB_DEPT D
INNER JOIN TB_SGG S ON (D.SGG_CD = S.SGG_CD AND D.INST_CD = S.INST_CD)
WHERE D.DEPT_CD = #{deptCd}
AND D.USE_YN = 'Y'
</select>
<insert id="insertEpostRcptReg" parameterType="map">/* 전자우편 접수 등록 등록(epostRcptRegMapper.insertEpostRcptReg) */
INSERT INTO TB_EPOST_RCPT_REG (
<insert id="insertEpostRcptReg" parameterType="map">/* 전자우편 접수 등록 등록(epostRcptRegMapper.insertEpostRcptReg) */
INSERT
INTO TB_EPOST_RCPT_REG (
CON_KEY <!-- 외부연계식별키 -->
, CON_ORG <!-- 외부기관구분코드 -->
, SNDNG_ID <!-- 발송 ID -->
, RCEPT_ID <!-- 접수우체국국기호 -->
, RCEPT_YMD <!-- 접수 일자 -->
, DATA_CD <!-- 접수코드 -->
, DIV_KB <!-- 취급구분 -->
, DFPAYYN <!-- 결재방법 -->
@ -251,18 +319,20 @@ INSERT INTO TB_EPOST_RCPT_REG (
, REG_VAR_DATA3 <!-- 추가 데이터3 -->
, REG_VAR_DATA4 <!-- 추가 데이터4 -->
, REG_VAR_DATA5 <!-- 추가 데이터5 -->
, SNDNG_ID <!-- 발송 ID -->
, JOB_CD <!-- 작업 코드 -->
, POST_PRCS_STTS_CD <!-- 우편 처리 상태 -->
, RCEPT_YMD <!-- 접수 일자 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
) VALUES (
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{epostRcptReg.conKey} <!-- 외부연계식별키 -->
, #{epostRcptReg.conOrg} <!-- 외부기관구분코드 -->
, #{epostRcptReg.sndngId} <!-- 발송 ID -->
, #{epostRcptReg.rceptId} <!-- 접수우체국국기호 -->
, #{epostRcptReg.rceptYmd} <!-- 접수 일자 -->
, #{epostRcptReg.dataCd} <!-- 접수코드 -->
, #{epostRcptReg.divKb} <!-- 취급구분 -->
, #{epostRcptReg.dfpayyn} <!-- 결재방법 -->
@ -301,20 +371,21 @@ INSERT INTO TB_EPOST_RCPT_REG (
, #{epostRcptReg.regVarData3} <!-- 추가 데이터3 -->
, #{epostRcptReg.regVarData4} <!-- 추가 데이터4 -->
, #{epostRcptReg.regVarData5} <!-- 추가 데이터5 -->
, #{epostRcptReg.sndngId} <!-- 발송 ID -->
, #{epostRcptReg.jobCd} <!-- 작업 코드 -->
, #{epostRcptReg.postPrcsSttsCd} <!-- 우편 처리 상태 -->
, #{epostRcptReg.rceptYmd} <!-- 접수 일자 -->
, #{epostRcptReg.delYn} <!-- 삭제 여부 -->
, 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
, #{epostRcptReg.removedAt} <!-- 삭제 일시 -->
, #{epostRcptReg.removedBy} <!-- 삭제자 -->
)</insert>
, #{epostRcptReg.createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{epostRcptReg.modifiedBy} <!-- 수정자 -->
)
</insert>
<update id="updateEpostRcptReg" parameterType="map">/* 전자우편 접수 등록 수정(epostRcptRegMapper.updateEpostRcptReg) */
UPDATE TB_EPOST_RCPT_REG SET
RCEPT_ID = #{epostRcptReg.rceptId} <!-- 접수우체국국기호 -->
<update id="updateEpostRcptReg" parameterType="map">/* 전자우편 접수 등록 수정(epostRcptRegMapper.updateEpostRcptReg) */
UPDATE TB_EPOST_RCPT_REG
SET RCEPT_YMD = #{epostRcptReg.rceptYmd} <!-- 접수 일자 -->
, CON_ORG = #{epostRcptReg.conOrg} <!-- 접수우체국국기호 -->
, RCEPT_ID = #{epostRcptReg.rceptId} <!-- 접수우체국국기호 -->
, DATA_CD = #{epostRcptReg.dataCd} <!-- 접수코드 -->
, DIV_KB = #{epostRcptReg.divKb} <!-- 취급구분 -->
, DFPAYYN = #{epostRcptReg.dfpayyn} <!-- 결재방법 -->
@ -348,83 +419,26 @@ UPDATE TB_EPOST_RCPT_REG SET
, RECEV_SENDER_FAX = #{epostRcptReg.recevSenderFax} <!-- 부과부서 팩스번호 -->
, RECEV_SERDER_STAFF = #{epostRcptReg.recevSerderStaff} <!-- 부과부서 담당자 -->
, RECEV_SENDER_EMAIL = #{epostRcptReg.recevSenderEmail} <!-- 부과부서 이메일 -->
, SNDNG_ID = #{epostRcptReg.sndngId} <!-- 발송 ID -->
, JOB_CD = #{epostRcptReg.jobCd} <!-- 작업 코드 -->
, POST_PRCS_STTS_CD = #{epostRcptReg.postPrcsSttsCd} <!-- 우편 처리 상태 -->
, RCEPT_YMD = #{epostRcptReg.rceptYmd} <!-- 접수 일자 -->
, DEL_YN = #{epostRcptReg.delYn} <!-- 삭제 여부 -->
, DEL_DT = #{epostRcptReg.removedAt} <!-- 삭제 일시 -->
, DLTR = #{epostRcptReg.removedBy} <!-- 삭제자 -->
, REG_VAR_DATA1 = #{epostRcptReg.regVarData1} <!-- 추가 데이터1 -->
, REG_VAR_DATA2 = #{epostRcptReg.regVarData2} <!-- 추가 데이터2 -->
, REG_VAR_DATA3 = #{epostRcptReg.regVarData3} <!-- 추가 데이터3 -->
, REG_VAR_DATA4 = #{epostRcptReg.regVarData4} <!-- 추가 데이터4 -->
, REG_VAR_DATA5 = #{epostRcptReg.regVarData5} <!-- 추가 데이터5 -->
WHERE CON_KEY = #{epostRcptReg.conKey}</update>
<update id="deleteEpostRcptReg" parameterType="map">/* 전자우편 접수 등록 삭제(epostRcptRegMapper.deleteEpostRcptReg) */
UPDATE TB_EPOST_RCPT_REG SET
USE_YN = 'N'
, MDFCN_DT =<include refid="utility.now" />
, MDFR = #{currentUser.id}
WHERE CON_KEY = #{epostRcptReg.conKey}</update>
<select id="selectEpostSenderRegSeq" parameterType="String" resultType="String">/* 전자우편 접수 CON_KEY 조회(epostRcptRegMapper.selectEpostSenderRegSeq) */
SELECT LPAD(IFNULL(RIGHT(MAX(CON_KEY), 3), '000') + 1, 3, '0') AS CON_KEY <!-- 외부연계식별키 -->
FROM TB_EPOST_RCPT_REG
WHERE CON_KEY LIKE CONCAT(#{conKey}, '%')
</select>
<select id="selectEpostRgNo" parameterType="String" resultType="String">/* 전자우편 등기번호 조회(epostRcptRegMapper.selectEpostRgNo) */
SELECT RG_NO <!-- 등기 번호 -->
, RG_NO_NEXT <!-- 다음 등기 번호 -->
FROM TB_EPOST_RG_NO
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
AND USE_PSBLTY_PSTN = 'Y'
</select>
, JOB_CD = #{epostRcptReg.jobCd} <!-- 작업 코드 -->
, POST_PRCS_STTS_CD = #{epostRcptReg.postPrcsSttsCd} <!-- 우편 처리 상태 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{epostRcptReg.modifiedBy} <!-- 수정자 -->
WHERE CON_KEY = #{epostRcptReg.conKey}
AND DEL_YN = 'N'
</update>
<select id="selectDeptSggInfo" parameterType="String" resultType="dataobject">/* 시군구 및 부서 정보 조회(epostRcptRegMapper.selectDeptSggInfo) */
SELECT D.DEPT_CD <!-- 부서 코드 -->
, D.DEPT_NM <!-- 부서 명 -->
, D.DEPT_TELNO <!-- 부서 전화번호 -->
, D.DEPT_FXNO <!-- 부서 팩스번호 -->
, D.VRBACNT_LINK_SE_CD <!-- 가상계좌 연계 구분 코드 -->
, D.PSTOFC_NM <!-- 우체국 명 -->
, D.RG_NO_HEADER <!-- 등기 번호 헤더 -->
, D.SNDNG_LINK_SE_CD <!-- 발송 연계 구분 코드 -->
, D.EGP_CON_ORG <!-- E그린 외부기관구분코드 -->
, D.EGP_RCEPT_ID <!-- E그린 접수우체국국기호 -->
, D.EGP_APVL_NB <!-- E그린 후납계약승인번호 -->
, D.EGP_ESB_PATH <!-- E그린 ESB경로 -->
, D.EGP_CERT_CN <!-- E그린 인증서CN -->
, D.ENS_INTERFACE_ID <!-- 세외수입 인터페이스ID -->
, D.ENS_SOURCE_CD <!-- 세외수입 소스코드 -->
, D.ENS_TARGET_CD <!-- 세외수입 타겟코드 -->
, D.ENS_URL <!-- 세외수입 URL -->
, D.SRVR_OS <!-- 서버 OS -->
, S.SGG_CD <!-- 시군구 코드 -->
, S.SGG_NM <!-- 시군구 명 -->
, S.INST_SE_CD <!-- 기관 구분 코드 -->
, S.INST_CD <!-- 기관 코드 -->
, S.INST_NM <!-- 기관 명 -->
, S.INST_ADDR <!-- 기관 주소 -->
, S.INST_DADDR <!-- 기관 상세주소 -->
, S.INST_ZIP <!-- 기관 우편번호 -->
, S.UP_INST_CD <!-- 상위 기관 코드 -->
, S.UP_INST_NM <!-- 상위 기관 명 -->
, CASE WHEN S.INST_SE_CD = '01' THEN CONCAT(S.SGG_NM, '장')
WHEN S.INST_SE_CD = '02' THEN CONCAT(S.SGG_NM, '청장')
WHEN S.INST_SE_CD = '03' THEN CONCAT(S.SGG_NM, '수')
WHEN S.INST_SE_CD = '04' THEN CONCAT(S.SGG_NM, '지사')
WHEN S.INST_SE_CD = '05' THEN CONCAT(S.SGG_NM, '장')
ELSE S.SGG_NM
END AS INST_CHIEF_NM <!-- 기관 장 명 -->
FROM TB_DEPT D
INNER JOIN TB_SGG S ON (D.SGG_CD = S.SGG_CD AND D.INST_CD = S.INST_CD)
WHERE D.DEPT_CD = #{deptCd}
AND D.USE_YN = 'Y'
</select>
<update id="deleteEpostRcptReg" parameterType="map">/* 전자우편 접수 등록 삭제(epostRcptRegMapper.deleteEpostRcptReg) */
UPDATE TB_EPOST_RCPT_REG
SET DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */
, DLTR = #{epostRcptReg.removedBy} /* 삭제자 */
WHERE CON_KEY = #{epostRcptReg.conKey}
AND DEL_YN = 'N'
</update>
</mapper>

@ -89,34 +89,34 @@
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(CRR.REG_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 등록 일자 시작 */
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(CRR.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(CRR.REG_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 등록 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(CRR.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(CRR.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 수정 일자 시작 */
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(CRR.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(CRR.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 수정 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(CRR.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND CRR.RGTR = #{schDetailRgtrCd} /* 등록자 코드 */
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND CRR.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND CRR.MDFR = #{schDetailRgtrCd} /* 수정자 코드 */
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND CRR.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>

@ -128,68 +128,34 @@
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 등록 일자 시작 */
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 등록 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 수정 일자 시작 */
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 수정 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND LE.RGTR = #{schDetailRgtrCd} /* 등록자 코드 */
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND LE.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND LE.MDFR = #{schDetailRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 등록 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 등록 일자 종료 */
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 수정 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 단속 등록자 코드 */
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 단속 수정자 코드 */
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND LE.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>

@ -168,34 +168,34 @@
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(OS.REG_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 등록 일자 시작 */
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(OS.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(OS.REG_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 등록 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(OS.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(OS.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 수정 일자 시작 */
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(OS.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(OS.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 수정 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(OS.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND OS.RGTR = #{schDetailRgtrCd} /* 등록자 코드 */
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND OS.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND OS.MDFR = #{schDetailRgtrCd} /* 수정자 코드 */
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND OS.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>

@ -147,11 +147,9 @@
<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: 120px;">발송구분</th>
<th class="cmn" style="width: 140px;">발송구분</th>
<th class="cmn" style="width: 100px;">사용여부</th>
<th class="cmn" style="width: 180px;">최종사용일시</th>
<th class="cmn" style="width: 300px;" onclick="searchFromGridTitle('TTL_NM', this.innerText, 'match', 'part');">제목</th>
@ -459,6 +457,28 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
alert("조회된 자료가 없습니다.");
return;
}
let excelTitle = [];
let excelTitleWidth = [];
$("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() {
let title = $(this).text();
if (title != "" ) {
excelTitle.push(title);
let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2;
excelTitleWidth.push(titleWidth);
}
});
${pageName}Control.query.excelTitle = excelTitle.join(",");
${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(",");
${pageName}Control.download();
}

@ -234,9 +234,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: 120px;" onclick="searchFromGridTitle('SEND_DATE', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('JOB_CD', this.innerText, 'match', 'part');">발송내역</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('DIV_KB', this.innerText, 'codeValue', 'EGP002');">취급구분</th>
@ -564,6 +562,29 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
alert("조회된 자료가 없습니다.");
return;
}
let excelTitle = [];
let excelTitleWidth = [];
$("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() {
let title = $(this).text();
if (title != "" ) {
excelTitle.push(title);
let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2;
excelTitleWidth.push(titleWidth);
}
});
${pageName}Control.query.excelTitle = excelTitle.join(",");
${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(",");
${pageName}Control.download();
}

@ -481,6 +481,29 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
alert("조회된 자료가 없습니다.");
return;
}
let excelTitle = [];
let excelTitleWidth = [];
$("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() {
let title = $(this).text();
if (title != "" ) {
excelTitle.push(title);
let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2;
excelTitleWidth.push(titleWidth);
}
});
${pageName}Control.query.excelTitle = excelTitle.join(",");
${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(",");
${pageName}Control.download();
}

@ -133,27 +133,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"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<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"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택">
<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 w-px-160" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" autocomplete="off" />
<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>
@ -195,9 +196,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: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_YMD', this.innerText, 'ymd', '');">부과제외일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_SE_CD', this.innerText, 'codeValue', 'FIM021');">부과제외구분</th>
@ -226,9 +225,7 @@
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{LEVY_EXCL_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_EXCL_ID}" onchange="${pageName}Control.select('{LEVY_EXCL_ID}', this.checked);">
</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" value="{LEVY_EXCL_ID}" onchange="${pageName}Control.select('{LEVY_EXCL_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}">{LEVY_EXCL_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_SE_NM}</td>
@ -450,6 +447,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;
@ -533,11 +556,35 @@
}
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => ${pageName}Control.download();
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
alert("조회된 자료가 없습니다.");
return;
}
let excelTitle = [];
let excelTitleWidth = [];
$("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() {
let title = $(this).text();
if (title != "" ) {
excelTitle.push(title);
let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2;
excelTitleWidth.push(titleWidth);
}
});
${pageName}Control.query.excelTitle = excelTitle.join(",");
${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(",");
${pageName}Control.download();
}
// 사용자 조회 버튼 이벤트
fnFindUser${pageName} = () => {
getFindUser${pageName}();
}
// 수정 버튼 이벤트
@ -633,6 +680,9 @@
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
// dataset 초기화
${pageName}Control.dataset.clear();
}

@ -136,27 +136,28 @@
</div>
<!-- 등록일자, 수정일자 -->
<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>
@ -201,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: 120px;" onclick="searchFromGridTitle('RCPT_YMD', this.innerText, 'ymd', '');">접수일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_NO', this.innerText, 'match', 'part');">접수번호</th>
@ -216,6 +215,7 @@
<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: 280px;" onclick="searchFromGridTitle('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_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: 140px;" onclick="searchFromGridTitle('DOC_NO', this.innerText, 'ymd', '');">문서번호</th>
@ -235,9 +235,7 @@
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{OPNN_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="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_ID}', this.checked);">
</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" value="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_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}">{RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_NO}</td>
@ -250,6 +248,7 @@
<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_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_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
@ -266,7 +265,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="27" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -458,6 +457,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;
@ -543,7 +568,7 @@
setURL${pageName}(taskSeCd);
// 기본 데이터 설정
setFormData${pageName}();
setFormData${pageName}(taskSeCd);
}
// 검색 버튼 이벤트
@ -559,12 +584,34 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
alert("조회된 자료가 없습니다.");
return;
}
let excelTitle = [];
let excelTitleWidth = [];
$("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() {
let title = $(this).text();
if (title != "" ) {
excelTitle.push(title);
let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2;
excelTitleWidth.push(titleWidth);
}
});
${pageName}Control.query.excelTitle = excelTitle.join(",");
${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(",");
${pageName}Control.download();
}
// 사용자 조회 버튼 이벤트
fnFindUser${pageName} = () => {
getFindUser${pageName}();
}
// 수정 버튼 클릭 이벤트
@ -675,6 +722,9 @@
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date());
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
// dataset 초기화
${pageName}Control.dataset.clear();
}
@ -688,7 +738,11 @@
}
// 기본 데이터 설정
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
}
@ -700,18 +754,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>

@ -103,27 +103,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>
@ -170,7 +171,7 @@
<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: 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: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
@ -325,6 +326,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, callSection) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -382,7 +409,7 @@
setURL${pageName}(taskSeCd);
// 기본 데이터 설정
setFormData${pageName}();
setFormData${pageName}(taskSeCd);
}
// 검색 버튼 이벤트
@ -398,12 +425,34 @@
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
alert("조회된 자료가 없습니다.");
return;
}
let excelTitle = [];
let excelTitleWidth = [];
$("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() {
let title = $(this).text();
if (title != "" ) {
excelTitle.push(title);
let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2;
excelTitleWidth.push(titleWidth);
}
});
${pageName}Control.query.excelTitle = excelTitle.join(",");
${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(",");
${pageName}Control.download();
}
// 사용자 조회 버튼 이벤트
fnFindUser${pageName} = () => {
getFindUser${pageName}();
}
// 이전 단속정보 보기 버튼 이벤트
@ -466,6 +515,9 @@
$("#schReRegYmdFrom--${pageName}").datepicker("setDate", new Date());
$("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date());
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
// dataset 초기화
${pageName}Control.dataset.clear();
}
@ -478,7 +530,11 @@
}
// 기본 데이터 설정
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
}
@ -490,18 +546,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>

Loading…
Cancel
Save