1. 우편통합 엑셀저장 수정.

2. 기타 수정.
main
jjh 9 months ago
parent ff512b8d91
commit cfae145996

@ -50,7 +50,7 @@ public class EpostGdcc extends AbstractEntity {
/**
* IDs
*/
private String[] gdccIDs;
private String[] gdccIds;
}

@ -17,18 +17,18 @@ public class EpostQuery extends CmmnQuery {
private static final long serialVersionUID = 1L;
// ID
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] sndngIds; // 발송 IDs
private String sndngId; // 발송 ID
private String[] sndngDtlIds; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
private String[] svbtcIDs; // 공시송달 IDs
private String svbtcId; // 공시송달 ID
private String[] gdccIDs; // 안내문 IDs
private String gdccId; // 안내문 ID
private String[] rcptRsltIDs; // 접수 결과 IDs
private String rcptRsltId; // 접수 결과 ID
private String[] crdnIds; // 단속 Ids
private String crdnId; // 단속 Id
private String[] sndngIds; // 발송 Ids
private String sndngId; // 발송 Id
private String[] sndngDtlIds; // 발송 상세 Ids
private String sndngDtlId; // 발송 상세 Id
private String[] svbtcIds; // 공시송달 Ids
private String svbtcId; // 공시송달 Id
private String[] gdccIds; // 안내문 Ids
private String gdccId; // 안내문 Id
private String[] rcptRsltIds; // 접수 결과 Ids
private String rcptRsltId; // 접수 결과 Id
private String conKey; // 외부연계식별키
private String regino; // 등기번호
// 검색 조건
@ -66,12 +66,12 @@ public class EpostQuery extends CmmnQuery {
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
public String[] getCrdnIDs() {
return ifEmpty(crdnIDs, () -> null);
public String[] getCrdnIds() {
return ifEmpty(crdnIds, () -> null);
}
public <T extends EpostQuery> T setCrdnIDs(String... crdnIDs) {
this.crdnIDs = crdnIDs;
public <T extends EpostQuery> T setCrdnIds(String... crdnIds) {
this.crdnIds = crdnIds;
return self();
}
@ -120,12 +120,12 @@ public class EpostQuery extends CmmnQuery {
return self();
}
public String[] getSvbtcIDs() {
return ifEmpty(svbtcIDs, () -> null);
public String[] getSvbtcIds() {
return ifEmpty(svbtcIds, () -> null);
}
public <T extends EpostQuery> T setSvbtcIDs(String... svbtcIDs) {
this.svbtcIDs = svbtcIDs;
public <T extends EpostQuery> T setSvbtcIds(String... svbtcIds) {
this.svbtcIds = svbtcIds;
return self();
}
@ -138,12 +138,12 @@ public class EpostQuery extends CmmnQuery {
return self();
}
public String[] getGdccIDs() {
return ifEmpty(gdccIDs, () -> null);
public String[] getGdccIds() {
return ifEmpty(gdccIds, () -> null);
}
public <T extends EpostQuery> T setGdccIDs(String... gdccIDs) {
this.gdccIDs = gdccIDs;
public <T extends EpostQuery> T setGdccIds(String... gdccIds) {
this.gdccIds = gdccIds;
return self();
}
@ -156,12 +156,12 @@ public class EpostQuery extends CmmnQuery {
return self();
}
public String[] getRcptRsltIDs() {
return ifEmpty(rcptRsltIDs, () -> null);
public String[] getRcptRsltIds() {
return ifEmpty(rcptRsltIds, () -> null);
}
public <T extends EpostQuery> T setRcptRsltIDs(String... rcptRsltIDs) {
this.rcptRsltIDs = rcptRsltIDs;
public <T extends EpostQuery> T setRcptRsltIds(String... rcptRsltIds) {
this.rcptRsltIds = rcptRsltIds;
return self();
}

@ -58,7 +58,7 @@ public interface EpostRcptRegMapper extends AbstractMapper {
* @param req
* @return
*/
List<DataObject> selectEpostSndngSttses(EpostQuery req);
List<DataObject> selectEpostRcptRegDtlList(EpostQuery req);
/** .<br />
* @param req

@ -41,7 +41,7 @@ public interface EpostRcptRegService {
* @param req
* @return
*/
List<DataObject> getEpostSndngSttsInfo(EpostQuery req);
List<DataObject> getEpostRcptRegDtlList(EpostQuery req);
/** .
* @param epostRcptReg

@ -148,17 +148,10 @@ public class EpostGdccBean extends AbstractComponent {
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// ID를 확인하여 자료가 없다면.. 종료
if (epostGdcc.getGdccId() == null && epostGdcc.getGdccIDs().length < 1) {
rtnMsg = "작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 전자우편 안내문 정보를 삭제한다.
rtnScs = epostGdccMapper.delete(epostGdcc); // 삭제
if (!rtnScs) {
rtnMsg = "전자우편 안내문 정보 수정에 실패하였습니다.";
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("전자우편 안내문 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";

@ -57,7 +57,23 @@ public class EpostGdccServiceBean extends AbstractServiceBean implements EpostGd
@Override
public String removeEpostGdcc(EpostGdcc epostGdcc) {
return epostGdccBean.removeEpostGdcc(epostGdcc);
// 변수 선언
String rtnMsg = "[F] "; // 처리 결과 메시지
// ID를 확인하여 자료가 없다면.. 종료
if (epostGdcc.getGdccId() == null && epostGdcc.getGdccIds().length < 1) {
rtnMsg = "작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 삭제 호출
rtnMsg = epostGdccBean.removeEpostGdcc(epostGdcc);
// 오류가 발생하였으면 종료..
if (rtnMsg.contains("[F]")) {
return rtnMsg;
}
return rtnMsg;
}
@Override

@ -97,11 +97,7 @@ public class EpostRcptRegBean extends AbstractComponent {
* @param req
* @return
*/
List<DataObject> getEpostSndngSttsInfo(EpostQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
List<DataObject> getEpostRcptRegDtlList(EpostQuery req) {
// 삭제 여부 확인
if (req.getDelYN() == null) {
req.setDelYN("N");
@ -115,7 +111,7 @@ public class EpostRcptRegBean extends AbstractComponent {
}
}
return epostRcptRegMapper.selectEpostSndngSttses(req);
return epostRcptRegMapper.selectEpostRcptRegDtlList(req);
}
/**

@ -46,8 +46,8 @@ public class EpostRcptRegServiceBean extends AbstractServiceBean implements Epos
}
@Override
public List<DataObject> getEpostSndngSttsInfo(EpostQuery req) {
return epostRcptRegBean.getEpostSndngSttsInfo(req);
public List<DataObject> getEpostRcptRegDtlList(EpostQuery req) {
return epostRcptRegBean.getEpostRcptRegDtlList(req);
}
@Override

@ -1,7 +1,7 @@
package cokr.xit.fims.epst.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -10,8 +10,6 @@ import javax.annotation.Resource;
import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.web.servlet.ModelAndView;
import com.fasterxml.jackson.core.type.TypeReference;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.file.xls.XLSWriter;
import cokr.xit.base.file.xls.XLSWriter.CellDef;
@ -45,20 +43,21 @@ public class Epst02Controller extends ApplicationController {
public class METHOD_URL {
public static final String
epostGuidanceDocumentMain = "/010/main.do" // 전자우편 안내문 메인
, getEpostGuidanceDocumentList = "/010/list.do" // 전자우편 안내문 목록 조회
, getEpostGuidanceDocumentInfo = "/020/info.do" // 전자우편 안내문 상세 정보 조회
, createEpostGuidanceDocument = "/020/create.do" // 전자우편 안내문 등록
, updateEpostGuidanceDocument = "/020/update.do" // 전자우편 안내문 수정
, removeEpostGuidanceDocument = "/010/remove.do" // 전자우편 안내문 삭제
, epostSendingStatusMain = "/030/main.do" // 전자우편 우편발송 메인
, getEpostSendingStatusList = "/030/list.do" // 전자우편 발송 목록 조회
, getEpostSendingStatusInfo = "/040/info.do" // 전자우편 발송 상세 정보 조회
, updateEpostSendingProcessStatus = "/030/updateSttsCd.do" // 전자우편 발송 처리상태코드 수정
, removeEpostSendingStatus = "/030/remove.do" // 전자우편 발송 삭제
, epostReceiptResultMain = "/050/main.do" // 전자우편 접수 결과 메인
, getEpostReceiptResultList = "/050/list.do" // 전자우편 접수 결과 목록 조회
, getEpostReceiptResultSumAmount = "/050/sumAmt.do" // 전자우편 접수 결과 합계 금액 조회
epostGuidanceDocumentMain = "/010/main.do" // 전자우편 안내문 메인
, getEpostGuidanceDocumentList = "/010/list.do" // 전자우편 안내문 목록 조회
, removeEpostGuidanceDocument = "/010/remove.do" // 전자우편 안내문 삭제
, getEpostGuidanceDocumentInfo = "/020/info.do" // 전자우편 안내문 상세 정보 조회
, createEpostGuidanceDocument = "/020/create.do" // 전자우편 안내문 등록
, updateEpostGuidanceDocument = "/020/update.do" // 전자우편 안내문 수정
, epostReceiptRegistrationMain = "/030/main.do" // 전자우편 우편발송 메인
, getEpostReceiptRegistrationList = "/030/list.do" // 전자우편 우편발송 목록 조회
, updateEpostSendingProcessStatus = "/030/updateSttsCd.do" // 전자우편 우편발송 처리상태코드 수정
, removeEpostSendingStatus = "/030/remove.do" // 전자우편 우편발송 삭제
, getEpostReceiptRegistrationDetailInfo = "/040/info.do" // 전자우편 발송 상세 정보 조회
, getEpostReceiptRegistrationDetailList = "/040/list.do" // 전자우편 발송 상세 정보 조회
, epostReceiptResultMain = "/050/main.do" // 전자우편 접수 결과 메인
, getEpostReceiptResultList = "/050/list.do" // 전자우편 접수 결과 목록 조회
, getEpostReceiptResultSumAmount = "/050/sumAmt.do" // 전자우편 접수 결과 합계 금액 조회
;
}
@ -78,7 +77,6 @@ public class Epst02Controller extends ApplicationController {
@Resource(name="epostRcptRsltService")
private EpostRcptRsltService epostRcptRsltService;
@Resource(name="stngBean")
private StngBean stngBean;
@ -125,7 +123,7 @@ public class Epst02Controller extends ApplicationController {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
List<CellDef> cellDefs = fromJson(req.getCellDefs(), CellDef.listType());
XLSWriter xlsx = new XLSWriter()
.setFilename("우편통합안내문" + "_목록_" + dateTime + ".xlsx")
@ -137,19 +135,20 @@ public class Epst02Controller extends ApplicationController {
List<DataObject> list = epostGdccService.getEpostGdccList(req.setFetchSize(0));
CellDef.setValues(cellDefs, Map.ofEntries(
Map.entry("업무구분", xlsx.style("TASK_SE_NM", center))
, Map.entry("발송구분", xlsx.style("SNDNG_SE_NM", center))
, Map.entry("사용여부", xlsx.style("USE_YN_NM", center))
, Map.entry("최종사용일시", xlsx.format(o -> xlsx.str2date(o.get("LAST_USE_DT"))).style(dateDT))
, Map.entry("제목", "TTL_NM")
, Map.entry("문구내용", "WORDS_CN")
, Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT))
, Map.entry("등록사용자", xlsx.style("RGTR_NM", center))
, Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT))
, Map.entry("수정사용자", xlsx.style("MDFR_NM", center))
)
);
Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("업무구분", xlsx.style("TASK_SE_NM", center));
valueMap.put("발송구분", xlsx.style("SNDNG_SE_NM", center));
valueMap.put("사용여부", xlsx.style("USE_YN_NM", center));
valueMap.put("최종사용일시", xlsx.format(o -> xlsx.str2date(o.get("LAST_USE_DT"))).style(dateDT));
valueMap.put("제목", "TTL_NM");
valueMap.put("문구내용", "WORDS_CN");
valueMap.put("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT));
valueMap.put("등록사용자", xlsx.style("RGTR_NM", center));
valueMap.put("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT));
valueMap.put("수정사용자", xlsx.style("MDFR_NM", center));
CellDef.setValues(cellDefs, valueMap);
xlsx.cell(0, 0)
.value("우편통합 안내문", center)
@ -261,7 +260,7 @@ public class Epst02Controller extends ApplicationController {
/** (fims/epst/epst02030-main) .
* @return /fims/epst/epst02030-main
*/
public ModelAndView epostSendingStatusMain() {
public ModelAndView epostReceiptRegistrationMain() {
ModelAndView mav = new ModelAndView("fims/epst/epst02030-main");
// 사용자 정보
@ -295,7 +294,7 @@ public class Epst02Controller extends ApplicationController {
* "epostRcptRegTotal":
* }</code></pre>
*/
public ModelAndView getEpostSendingStatusList(EpostQuery req) {
public ModelAndView getEpostReceiptRegistrationList(EpostQuery req) {
if (!"xls".equals(req.getDownload())) {
List<?> result = epostRcptRegService.getEpostRcptRegList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "epostRcptReg");
@ -304,7 +303,7 @@ public class Epst02Controller extends ApplicationController {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
List<CellDef> cellDefs = fromJson(req.getCellDefs(), CellDef.listType());
XLSWriter xlsx = new XLSWriter()
.setFilename("우편통합우편발송" + "_목록_" + dateTime + ".xlsx")
@ -318,18 +317,18 @@ public class Epst02Controller extends ApplicationController {
List<DataObject> list = epostRcptRegService.getEpostRcptRegList(req.setFetchSize(0));
CellDef.setValues(cellDefs, Map.ofEntries(
Map.entry("발송일자", xlsx.format(o -> xlsx.str2date(o.get("SEND_DATE"))).style(dateYMD))
, Map.entry("발송내역", xlsx.style("JOB_CD", center))
, Map.entry("취급구분", xlsx.style("DIV_KB_NM", center))
, Map.entry("접수일자", xlsx.format(o -> xlsx.str2date(o.get("RCEPT_YMD"))).style(dateYMD))
, Map.entry("자료키", xlsx.style("CON_KEY", center))
, Map.entry("발송건수", xlsx.style("RECEV_CNT", numeric))
, Map.entry("우편처리상태", xlsx.style("POST_PRCS_STTS_NM", center))
, Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT))
, Map.entry("등록사용자", xlsx.style("RGTR_NM", center))
)
);
Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("발송일자", xlsx.format(o -> xlsx.str2date(o.get("SEND_DATE"))).style(dateYMD));
valueMap.put("발송내역", xlsx.style("JOB_CD", center));
valueMap.put("취급구분", xlsx.style("DIV_KB_NM", center));
valueMap.put("접수일자", xlsx.format(o -> xlsx.str2date(o.get("RCEPT_YMD"))).style(dateYMD));
valueMap.put("자료키", xlsx.style("CON_KEY", center));
valueMap.put("발송건수", xlsx.style("RECEV_CNT", numeric));
valueMap.put("우편처리상태", xlsx.style("POST_PRCS_STTS_NM", center));
valueMap.put("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT));
valueMap.put("등록사용자", xlsx.style("RGTR_NM", center));
CellDef.setValues(cellDefs, valueMap);
xlsx.cell(0, 0)
.value("우편통합 우편발송", center)
@ -351,28 +350,40 @@ public class Epst02Controller extends ApplicationController {
* "epostRcptReg":
* }</pre>
*/
public ModelAndView getEpostSendingStatusInfo(EpostQuery req) {
// 엑셀 저장이 아니라면.. 검색
if (!"xls".equals(req.getDownload())) {
List<DataObject> epostSndngSttsInfo = epostRcptRegService.getEpostSndngSttsInfo(req);
public ModelAndView getEpostReceiptRegistrationDetailInfo(EpostQuery req) {
//
ModelAndView mav = getEpostReceiptRegistrationDetailList(req);
boolean json = jsonResponse();
mav.setViewName("fims/epst/epst02040-info");
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/epst/epst02040-info");
return mav
.addObject("pageName", "epst02040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "epostRcptRegDtl") // prefix
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("mainQuery", toJson(req)) // 검색 조건
.addObject("epostRcptRegDtlList", toJson(mav.getModel().get("epostRcptRegDtlList"))) // 자료
;
}
return mav
.addObject("pageName", "epst02040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("epostSndngSttsInfo", json ? epostSndngSttsInfo : toJson(epostSndngSttsInfo))
;
/** (info) .
* @param req
* @return fims/epst/epst02040-info jsonView
* <pre>{
* "epostRcptReg":
* }</pre>
*/
public ModelAndView getEpostReceiptRegistrationDetailList(EpostQuery req) {
// 엑셀 저장이 아니라면.. 검색
if (!"xls".equals(req.getDownload())) {
List<?> result = epostRcptRegService.getEpostRcptRegDtlList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "epostRcptRegDtl");
} else {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
List<CellDef> cellDefs = fromJson(req.getCellDefs(), CellDef.listType());
XLSWriter xlsx = new XLSWriter()
.setFilename("우편통합발송상세" + "_목록_" + dateTime + ".xlsx")
@ -382,25 +393,25 @@ public class Epst02Controller extends ApplicationController {
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬
CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간
List<DataObject> list = epostRcptRegService.getEpostSndngSttsInfo(req.setFetchSize(0));
CellDef.setValues(cellDefs, Map.ofEntries(
Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT))
, Map.entry("등기번호", xlsx.style("RGST_NMBR", center))
, Map.entry("우편번호", xlsx.style("RECEV_CAR_OWNER_ZIPCODE", center))
, Map.entry("수취인명", "RECEV_CAR_OWNER_NM")
, Map.entry("배달일시", xlsx.format(o -> xlsx.str2datetime(o.get("DELIV_YMD_TM"))).style(dateDT))
, Map.entry("배달결과", xlsx.style("DELIVRSLTCD_NM", center))
, Map.entry("수령인명", "SUBRECPRSNNM")
, Map.entry("수령인관계", xlsx.style("RELRECPRSNCDNM", center))
, Map.entry("미배달사유", "NONDELIVREASNCDNM")
, Map.entry("주소", "RECEV_CAR_OWNER_ADDR")
, Map.entry("상세주소", "RECEV_CAR_OWNER_DETAILADDR")
, Map.entry("등록사용자", xlsx.style("RGTR_NM", center))
, Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT))
, Map.entry("수정사용자", xlsx.style("MDFR_NM", center))
)
);
List<DataObject> list = epostRcptRegService.getEpostRcptRegDtlList(req.setFetchSize(0));
Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT));
valueMap.put("등기번호", xlsx.style("RGST_NMBR", center));
valueMap.put("우편번호", xlsx.style("RECEV_CAR_OWNER_ZIPCODE", center));
valueMap.put("수취인명", "RECEV_CAR_OWNER_NM");
valueMap.put("배달일시", xlsx.format(o -> xlsx.str2datetime(o.get("DELIV_YMD_TM"))).style(dateDT));
valueMap.put("배달결과", xlsx.style("DELIVRSLTCD_NM", center));
valueMap.put("수령인명", "SUBRECPRSNNM");
valueMap.put("수령인관계", xlsx.style("RELRECPRSNCDNM", center));
valueMap.put("미배달사유", "NONDELIVREASNCDNM");
valueMap.put("주소", "RECEV_CAR_OWNER_ADDR");
valueMap.put("상세주소", "RECEV_CAR_OWNER_DETAILADDR");
valueMap.put("등록사용자", xlsx.style("RGTR_NM", center));
valueMap.put("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT));
valueMap.put("수정사용자", xlsx.style("MDFR_NM", center));
CellDef.setValues(cellDefs, valueMap);
xlsx.cell(0, 0)
.value("우편통합 발송상세", center)
@ -513,7 +524,7 @@ public class Epst02Controller extends ApplicationController {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = dateFormat.format(System.currentTimeMillis());
ArrayList<CellDef> cellDefs = fromJson(req.getCellDefs(), new TypeReference<ArrayList<CellDef>>() {});
List<CellDef> cellDefs = fromJson(req.getCellDefs(), CellDef.listType());
XLSWriter xlsx = new XLSWriter()
.setFilename("우편통합접수결과" + "_목록_" + dateTime + ".xlsx")
@ -527,21 +538,21 @@ public class Epst02Controller extends ApplicationController {
List<DataObject> list = epostRcptRsltService.getEpostRcptRsltList(req.setFetchSize(0));
CellDef.setValues(cellDefs, Map.ofEntries(
Map.entry("발송자료키", xlsx.style("RELETCDATA", center))
, Map.entry("우편물코드", xlsx.style("JOB_CD", center))
, Map.entry("우편물종류", xlsx.style("JOB_CD3_NM", center))
, Map.entry("발송일자", xlsx.format(o -> xlsx.str2date(o.get("EXTRI_REGYMD"))).style(dateYMD))
, Map.entry("접수일자", xlsx.format(o -> xlsx.str2date(o.get("RCEPT_YMD"))).style(dateYMD))
, Map.entry("취급구분", xlsx.style("DIV_KB_NM", center))
, Map.entry("발송건수", xlsx.style("RCEPT_CNT", numeric))
, Map.entry("결제금액", xlsx.style("RCEPT_AMT", numeric))
, Map.entry("제작수수료", xlsx.style("USEFEE_AMT", numeric))
, Map.entry("우편요금", xlsx.style("TOTPOST_PRC", numeric))
, Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT))
, Map.entry("등록사용자", xlsx.style("RGTR_NM", center))
)
);
Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("발송자료키", xlsx.style("RELETCDATA", center));
valueMap.put("우편물코드", xlsx.style("JOB_CD", center));
valueMap.put("우편물종류", xlsx.style("JOB_CD3_NM", center));
valueMap.put("발송일자", xlsx.format(o -> xlsx.str2date(o.get("EXTRI_REGYMD"))).style(dateYMD));
valueMap.put("접수일자", xlsx.format(o -> xlsx.str2date(o.get("RCEPT_YMD"))).style(dateYMD));
valueMap.put("취급구분", xlsx.style("DIV_KB_NM", center));
valueMap.put("발송건수", xlsx.style("RCEPT_CNT", numeric));
valueMap.put("결제금액", xlsx.style("RCEPT_AMT", numeric));
valueMap.put("제작수수료", xlsx.style("USEFEE_AMT", numeric));
valueMap.put("우편요금", xlsx.style("TOTPOST_PRC", numeric));
valueMap.put("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT));
valueMap.put("등록사용자", xlsx.style("RGTR_NM", center));
CellDef.setValues(cellDefs, valueMap);
xlsx.cell(0, 0)
.value("우편통합 접수결과", center)

@ -495,12 +495,6 @@ public class BpvController {
return super.createCrackdownReRegistration(crdnReReg);
}
@Override
@RequestMapping(name="단속재등록 대장 삭제", value=METHOD_URL.removeCrackdownReRegistration)
public ModelAndView removeCrackdownReRegistration(CrdnReReg crdnReReg) {
return super.removeCrackdownReRegistration(crdnReReg);
}
}
@Controller

@ -680,9 +680,9 @@ public class CmnController {
}
@Override
@RequestMapping(name="우편발송", value=METHOD_URL.epostSendingStatusMain)
public ModelAndView epostSendingStatusMain() {
return super.epostSendingStatusMain();
@RequestMapping(name="우편발송", value=METHOD_URL.epostReceiptRegistrationMain)
public ModelAndView epostReceiptRegistrationMain() {
return super.epostReceiptRegistrationMain();
}
@Override

@ -958,15 +958,21 @@ public class DpvController {
}
@Override
@RequestMapping(name="전자우편 발송 목록 조회", value=METHOD_URL.getEpostSendingStatusList)
public ModelAndView getEpostSendingStatusList(EpostQuery req) {
return super.getEpostSendingStatusList(req);
@RequestMapping(name="전자우편 발송 목록 조회", value=METHOD_URL.getEpostReceiptRegistrationList)
public ModelAndView getEpostReceiptRegistrationList(EpostQuery req) {
return super.getEpostReceiptRegistrationList(req);
}
@Override
@RequestMapping(name="전자우편 발송 상세 정보 조회", value=METHOD_URL.getEpostSendingStatusInfo)
public ModelAndView getEpostSendingStatusInfo(EpostQuery req) {
return super.getEpostSendingStatusInfo(req);
@RequestMapping(name="전자우편 발송 상세 화면", value=METHOD_URL.getEpostReceiptRegistrationDetailInfo)
public ModelAndView getEpostReceiptRegistrationDetailInfo(EpostQuery req) {
return super.getEpostReceiptRegistrationDetailInfo(req);
}
@Override
@RequestMapping(name="전자우편 발송 상세 목록 조회", value=METHOD_URL.getEpostReceiptRegistrationDetailList)
public ModelAndView getEpostReceiptRegistrationDetailList(EpostQuery req) {
return super.getEpostReceiptRegistrationDetailList(req);
}
@Override

@ -410,12 +410,6 @@ public class EcaController {
return super.createCrackdownReRegistration(crdnReReg);
}
@Override
@RequestMapping(name="단속재등록 대장 삭제", value=METHOD_URL.removeCrackdownReRegistration)
public ModelAndView removeCrackdownReRegistration(CrdnReReg crdnReReg) {
return super.removeCrackdownReRegistration(crdnReReg);
}
}
@Controller

@ -465,12 +465,6 @@ public class PvsController {
return super.createCrackdownReRegistration(crdnReReg);
}
@Override
@RequestMapping(name="단속재등록 대장 삭제", value=METHOD_URL.removeCrackdownReRegistration)
public ModelAndView removeCrackdownReRegistration(CrdnReReg crdnReReg) {
return super.removeCrackdownReRegistration(crdnReReg);
}
}
@Controller

@ -113,9 +113,9 @@
<select id="selectEpostGdccs" parameterType="map" resultType="dataobject">/* 전자우편 안내문 객체 가져오기(epostGdccMapper.selectEpostGdccs) */
<include refid="select" />
<where>
<if test="gdccIDs != null">
AND EG.GDCC_ID IN ( /* 안내문 IDs */
<foreach collection="gdccIDs" item="gdccId" separator=","> #{gdccIDs} </foreach>
<if test="gdccIds != null">
AND EG.GDCC_ID IN ( /* 안내문 Ids */
<foreach collection="gdccIds" item="gdccId" separator=","> #{gdccIds} </foreach>
)
</if>
<if test="gdccId != null">
@ -182,9 +182,9 @@
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{epostGdcc.modifiedBy} /* 수정자 */
<choose>
<when test="epostGdcc.gdccIDs != null">
WHERE GDCC_ID IN ( /* 안내문 IDs */
<foreach collection="epostGdcc.gdccIDs" item="epostGdcc.gdccId" separator=","> #{epostGdcc.gdccId} </foreach>
<when test="epostGdcc.gdccIds != null">
WHERE GDCC_ID IN ( /* 안내문 Ids */
<foreach collection="epostGdcc.gdccIds" item="epostGdcc.gdccId" separator=","> #{epostGdcc.gdccId} </foreach>
)
</when>
<otherwise>

@ -228,37 +228,38 @@
<include refid="utility.orderBy" />
</select>
<select id="selectEpostSndngSttses" parameterType="map" resultType="dataobject">/* 전자우편 발송 상태 정보들을 가져오기(epostRcptRegMapper.selectEpostSndngSttses) */
<select id="selectEpostRcptRegDtlList" parameterType="map" resultType="dataobject">/* 전자우편 발송 상태 정보들을 가져오기(epostRcptRegMapper.selectEpostRcptRegDtlList) */
<include refid="utility.paging-prefix" />
SELECT ERR.CON_KEY <!-- 외부연계식별키 -->
, ERR.CON_ORG <!-- 외부기관구분코드 -->
, ERR.REG_DT <!-- 등록 일시 -->
, ERR.RGTR <!-- 등록자 -->
, ERR.MDFCN_DT <!-- 수정 일시 -->
, ERR.MDFR <!-- 수정자 -->
, ERD.RGST_NMBR <!-- 등기 번호 -->
, ERD.RECEV_CAR_OWNER_ZIPCODE <!-- 우편번호 -->
, ERD.RECEV_CAR_OWNER_ADDR <!-- 주소 -->
, ERD.RECEV_CAR_OWNER_DETAILADDR <!-- 상세주소 -->
, ERD.RECEV_CAR_OWNER_NM <!-- 소유자명 -->
, ERD.REG_DT <!-- 등록 일시 -->
, ERD.RGTR <!-- 등록자 -->
, ERD.MDFCN_DT <!-- 수정 일시 -->
, ERD.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = ERD.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = ERD.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, EDR.DELIVRSLTCD <!-- 배달결과코드 -->
, EDR.NONDELIVREASNCD <!-- 미배달사유코드 -->
, EDR.NONDELIVREASNCDNM <!-- 미배달사유명 -->
, EDR.SUBRECPRSNNM <!-- 수령인명 -->
, EDR.RELRECPRSNCD <!-- 수령인관계코드 -->
, EDR.RELRECPRSNCDNM <!-- 수령인관계명 -->
, EDR.MDFCN_DT <!-- 수정 일시 -->
, (CASE WHEN LENGTH(EDR.DELIVHHMI) = 4 THEN CONCAT(EDR.DELIVYMD, EDR.DELIVHHMI, '00')
ELSE CONCAT(EDR.DELIVYMD, EDR.DELIVHHMI)
END) AS DELIV_YMD_TM <!-- 배달일시 -->
, (SELECT GET_CODE_NM('EGP009', EDR.DELIVRSLTCD) FROM DUAL) AS DELIVRSLTCD_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 <!-- 수정자 명 -->
FROM TB_EPOST_RCPT_REG ERR
INNER JOIN TB_EPOST_RCPT_DTL ERD ON (ERR.CON_KEY = ERD.CON_KEY)
LEFT OUTER JOIN TB_EPOST_DLVR_RSLT EDR ON (ERD.DLVR_RSLT_ID = EDR.DLVR_RSLT_ID)
WHERE ERR.CON_KEY = #{conKey}
AND ERR.DEL_YN = 'N'
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectEpostSenderRegSeq" parameterType="String" resultType="String">/* 전자우편 접수 CON_KEY 조회(epostRcptRegMapper.selectEpostSenderRegSeq) */

@ -123,13 +123,13 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="안내문 등록">
<button type="button" class="btn btn-primary w-px-120" id="btnCreateEpostGdcc--${pageName}" title="안내문 등록">
등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="안내문 수정">
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateEpostGdcc--${pageName}" title="안내문 수정">
수정
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="안내문 삭제">
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveEpostGdcc--${pageName}" title="안내문 삭제">
삭제
</button>
</span>
@ -224,7 +224,7 @@
, prefixName : "전자우편 안내문"
, infoSize : "md"
, keymapper : info => info ? info.GDCC_ID : ""
, dataGetter : obj => obj.epostGdccList
, dataGetter : obj => obj.${infoPrefix}List
, appendData : true
, formats : {
LAST_USE_DT : datetimeFormat
@ -242,7 +242,7 @@
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
$P.control.onDatasetChange = obj => {
$P.control.onDatasetChange = (obj) => {
$P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({
@ -258,7 +258,7 @@
};
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.control.onCurrentChange = (item) => {
if (!item) return;
let key = item.data.GDCC_ID;
@ -267,7 +267,7 @@
};
// 선택(체크) 변경 이벤트
$P.control.onSelectionChange = selected => {
$P.control.onSelectionChange = (selected) => {
let ${infoPrefix}List = $P.control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
@ -277,7 +277,7 @@
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
$("#btnRemoveEpostGdcc--${pageName}").prop("disabled", keys.length < 1);
};
// 전자우편 안내문 정보 dialog
@ -317,7 +317,7 @@
// 삭제 callback
$P.control.onRemove = (selected, resp) => {
let btnTitle = $("#btnRemove--${pageName}").attr("title");
let btnTitle = $("#btnRemoveEpostGdcc--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력
@ -339,7 +339,7 @@
if (!params) {
params = {};
params["GdccIDs"] = selected.join(","); // params[$P.control.prefixed("IDs")] = selected.join(",");
params["GdccIds"] = selected.join(","); // params[$P.control.prefixed("IDs")] = selected.join(",");
}
ajax.post({
@ -485,12 +485,12 @@
}
// 전자우편 안내문 등록 버튼 이벤트
$P.fnCreate = () => {
$P.fnCreateEpostGdcc = (title) => {
$P.control.getInfo();
}
// 전자우편 안내문 수정 버튼 이벤트
$P.fnUpdate = () => {
$P.fnUpdateEpostGdcc = (title) => {
// 부과제외 ID
let gdccId = $P.control.dataset.getValue("GDCC_ID");
// 부과제외 ID 가 없다면.. return
@ -500,7 +500,7 @@
}
// 삭제 버튼 이벤트
$P.fnRemove = () => {
$P.fnRemoveEpostGdcc = (title) => {
dialog.alert({
content : "선택한 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : () => {
@ -540,13 +540,22 @@
});
});
//업무 버튼 이벤트
$("#btnCreate--${pageName}").on("click", () => $P.fnCreate()); // 안내문 등록
$("#btnUpdate--${pageName}").on("click", () => $P.fnUpdate()); // 안내문 수정
$("#btnRemove--${pageName}").on("click", () => $P.fnRemove()); // 안내문 삭제
// 안내문 등록 버튼 이벤트
$("#btnCreateEpostGdcc--${pageName}").on("click", function() {
$P.fnCreateEpostGdcc($(this).attr("title"));
}
// 안내문 수정 버튼 이벤트
$("#btnUpdateEpostGdcc--${pageName}").on("click", function() {
$P.fnUpdateEpostGdcc($(this).attr("title"));
}
// 안내문 삭제 버튼 이벤트
$("#btnRemoveEpostGdcc--${pageName}").on("click", function() {
$P.fnRemoveEpostGdcc($(this).attr("title"));
}
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
fnMakeResizableTable($("#table-responsive--${pageName}")[0]);
// DataTables 스크롤 이벤트 생성
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
}

@ -93,7 +93,7 @@
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.control.onCurrentChange = (item) => {
if (!item) return;
// Dataset 셋팅

@ -144,10 +144,10 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="발송 취소">
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateEpostRcptReg--${pageName}" title="발송 취소">
발송 취소
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="발송 삭제">
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveEpostRcptReg--${pageName}" title="발송 삭제">
발송 삭제
</button>
</span>
@ -311,7 +311,7 @@
, prefixName : "우편 발송"
, infoSize : "xxl"
, keymapper : info => info ? info.CON_KEY : ""
, dataGetter : obj => obj.epostRcptRegList
, dataGetter : obj => obj.${infoPrefix}List
, appendData : true
, formats : {
SEND_DATE : dateFormat
@ -331,7 +331,7 @@
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
$P.control.onDatasetChange = obj => {
$P.control.onDatasetChange = (obj) => {
$P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({
@ -347,7 +347,7 @@
};
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.control.onCurrentChange = (item) => {
if (!item) return;
let key = item.data.CON_KEY;
@ -356,7 +356,7 @@
};
// 선택(체크) 변경 이벤트
$P.control.onSelectionChange = selected => {
$P.control.onSelectionChange = (selected) => {
let ${infoPrefix}List = $P.control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
@ -366,7 +366,7 @@
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
$("#btnRemoveEpostRcptReg--${pageName}").prop("disabled", keys.length < 1);
};
// 우편통합 상세 정보 dialog
@ -399,11 +399,10 @@
, data : params || {}
, success : resp => {
dialog.open({
id : $P.control.prefixed("Dialog")
id : $P.control.prefixed("DtlDialog")
, title :dialogTitle
, content : resp
, size : $P.control.infoSize
, onClose : () => { $P.refreshList(); }
});
}
});
@ -411,7 +410,7 @@
// 저장 callback
$P.control.onSave = (resp) => {
let btnTitle = $("#btnUpdate--${pageName}").attr("title");
let btnTitle = $("#btnUpdateEpostRcptReg--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력
@ -438,7 +437,7 @@
// 삭제 callback
$P.control.onRemove = (selected, resp) => {
let btnTitle = $("#btnRemove--${pageName}").attr("title");
let btnTitle = $("#btnRemoveEpostRcptReg--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력
@ -639,7 +638,7 @@
}
// 발송 취소 버튼 이벤트
$P.fnUpdate = () => {
$P.fnUpdateEpostRcptReg = (title) => {
// 외부연계식별키
let conKey = $P.control.dataset.getValue("CON_KEY");
// 외부연계식별키 가 없다면.. return
@ -655,7 +654,8 @@
// 우편 처리 상태 확인
if (postPrcsSttsCd != "01") {
dialog.alert({
content : "처리상태가 발송대기 자료만 취소 가능합니다."
content : "우편통합 처리상태가 '" + postPrcsSttsNm + "' 입니다."
+ "<br>" + "[" + title + "]" + " 실행은 발송대기 자료만 가능합니다."
, onOK : () => { }
});
return;
@ -663,7 +663,8 @@
let params = {
callPurpose : "update"
, sggCd : $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, title : title
, sggCd : $P.control.dataset.getValue("SGG_CD")
, conKey : conKey // 외부연계식별키
, sndngId : sndngId // 발송 ID
};
@ -677,7 +678,7 @@
}
// 발송 삭제 버튼 이벤트
$P.fnRemove = () => {
$P.fnRemoveEpostRcptReg = (title) => {
// 외부연계식별키
let conKey = $P.control.dataset.getValue("CON_KEY");
// 외부연계식별키 가 없다면.. return
@ -690,7 +691,8 @@
&& postPrcsSttsCd != "21" && postPrcsSttsCd != "22" && postPrcsSttsCd != "23"
&& postPrcsSttsCd != "24" && postPrcsSttsCd != "61" && postPrcsSttsCd != "62") {
dialog.alert({
content : "처리상태가 '발송취소', '전송', '접수', '제작불가' 자료만 삭제 가능합니다."
content : "우편통합 처리상태가 '" + postPrcsSttsNm + "' 입니다."
+ "<br>" + "[" + title + "]" + " 실행은 '발송취소', '전송', '접수', '제작불가' 자료만 가능합니다."
, onOK : () => { }
});
return;
@ -798,9 +800,14 @@
});
});
//업무 버튼 이벤트
$("#btnUpdate--${pageName}").on("click", () => $P.fnUpdate()); // 발송 취소
$("#btnRemove--${pageName}").on("click", () => $P.fnRemove()); // 발송 삭제
// 발송 취소 버튼 이벤트
$("#btnUpdateEpostRcptReg--${pageName}").on("click", function() {
$P.fnUpdateEpostRcptReg($(this).attr("title"));
});
// 발송 삭제 버튼 이벤트
$("#btnRemoveEpostRcptReg--${pageName}").on("click", function() {
$P.fnRemoveEpostRcptReg($(this).attr("title"));
});
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
fnMakeResizableTable($("#table-responsive--${pageName}")[0]);
@ -863,9 +870,9 @@
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/list.do"); // 조회
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/list.do"); // 조회
$P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/updateSttsCd.do"); // 수정 (발송취소)
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/remove.do"); // 삭제
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/remove.do"); // 삭제
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/info.do"); // 정보
}

@ -12,13 +12,18 @@
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
<input type="hidden" id="conKey--${pageName}" name="conKey" />
</form> <!-- /입력 영역 -->
<!-- 업무 버튼 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<label class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></label>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
@ -37,6 +42,7 @@
<thead class="sticky-thead">
<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: 180px;">등록일시</th>
<th class="cmn" style="width: 160px;">등기번호</th>
<th class="cmn" style="width: 100px;">우편번호</th>
@ -59,6 +65,7 @@
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{RGST_NMBR}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGST_NMBR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RECEV_CAR_OWNER_ZIPCODE}</td>
@ -79,7 +86,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="15" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="17" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -111,15 +118,17 @@
$P.callPurpose = "${callPurpose}";
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
// main 의 검색 조건을 그대로 유지
$P.mainQuery = ${mainQuery};
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
prefix : "epostRcptReg"
prefix : "epostRcptRegDtl"
, prefixName : "우편 발송 정보"
, keymapper : info => info ? info.RGST_NMBR : ""
, dataGetter : obj => obj.epostRcptRegInfo
, dataGetter : obj => obj.${infoPrefix}List
, appendData : true
, formats : {
DELIV_YMD_TM : datetimeFormat
@ -137,7 +146,7 @@
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
$P.control.onDatasetChange = obj => {
$P.control.onDatasetChange = (obj) => {
$P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({
@ -146,14 +155,14 @@
, start : obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch
, func : "$P.control.load({index})"
, func : "pageObject['${pageName}'].control.load({index})"
});
$P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
};
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.control.onCurrentChange = (item) => {
if (!item) return;
let key = item.data.RGST_NMBR;
@ -166,8 +175,8 @@
/**************************************************************************
* DataTables 이벤트
**************************************************************************/
// DataTables에 click, dbclick 이벤트
$P.renderList = (totalSize) => {
// DataTables에 click, dbclick 이벤트
$P.renderList = (totalSize) => {
let ${infoPrefix}List = $P.control.dataset;
let empty = ${infoPrefix}List.empty;
@ -190,10 +199,7 @@
$P.control.untilPageNum = 0;
}
// checkbox 체크 해제
$("th input[type='checkbox']").prop("checked", false);
// 보안모드
// 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
@ -223,12 +229,9 @@
return;
}
$P.control.query = $P.formFields.get();
$P.control.query.conKey = $P.control.dataset.getValue("CON_KEY"); // conKey
// DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td"));
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
$P.control.query.cellDefs = cellDefs;
$P.control.download();
@ -249,22 +252,34 @@
// DataTables 스크롤 이벤트 생성
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
// DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다.
$("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) {
$P.control.setData({
${infoPrefix}List : ${epostRcptRegDtlList}
, ${infoPrefix}Start : ${epostRcptRegDtlStart}
, ${infoPrefix}Fetch : ${epostRcptRegDtlFetch}
, ${infoPrefix}Total : ${epostRcptRegDtlTotal}
});
// 초기 데이터 설정
$P.initData();
});
}
// 초기 화면 설정
$P.initForm = () => {
if ($P.callPurpose == "view") {
// input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
}
// 화면 초기화
$("#frmEdit--${pageName}")[0].reset();
}
// 기본 데이터 설정
// 기 데이터 설정
$P.initData = () => {
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 코드
$("#taskSeCd--${pageName}").val("${taskSeCd}");
// CON_KEY
$("#conKey--${pageName}").val($P.control.dataset.getValue("CON_KEY"));
// 검색 조건 설정
$P.control.query = $P.mainQuery;
// 업무구분에 따른 URL 변경
$P.setURL("${taskSeCd}");
@ -272,7 +287,7 @@
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/info.do"); // 엑셀
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/list.do"); // 엑셀
}
/**************************************************************************
@ -284,11 +299,8 @@
// 2. 초기 화면 설정
$P.initForm();
// 3. 기본 데이터 설정
$P.initData();
// 4. Dataset 설정
$P.control.setData(${epostSndngSttsInfo});
// 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
});
</script>

@ -424,7 +424,7 @@
ajax.post({
url : $P.control.urls.remove
, data : params
, data : params || {}
, success : resp => $P.control.onRemove(resp)
});
}

@ -579,9 +579,6 @@
**************************************************************************/
// 감경 등록
$P.fnCreateRduct = (title) => {
// 버튼 title
let btnTitle = $("#btnCreateRduct--${pageName}").attr("title");
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -605,7 +602,7 @@
if (Number(crdnSttsCd) < 21 || Number(crdnSttsCd) > 45) {
dialog.alert({
content : "단속상태가 '" + crdnSttsNm + "' 입니다."
+ "<br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
+ "<br>" + "[" + title + "]" + " 실행이 취소되었습니다."
, onOK : () => { }
});
return;
@ -613,7 +610,7 @@
let params = {
callPurpose : "create"
, btnTitle : btnTitle
, title : title
, crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
@ -626,9 +623,6 @@
// 감경 수정
$P.fnUpdateRduct = (title) => {
// 버튼 title
let btnTitle = $("#btnUpdateRduct--${pageName}").attr("title");
// 감경 ID
let rductId = $P.rductControl.dataset.getValue("RDUCT_ID");
// 감경 ID 가 없다면.. return
@ -641,7 +635,7 @@
if (Number(crdnSttsCd) > 45) {
dialog.alert({
content : "단속상태가 '" + crdnSttsNm + "' 입니다."
+ "<br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
+ "<br>" + "[" + title + "]" + " 실행이 취소되었습니다."
, onOK : () => { }
});
return;
@ -649,7 +643,7 @@
let params = {
callPurpose : "update"
, btnTitle : btnTitle
, title : title
, crdnId : $P.rductControl.dataset.getValue("CRDN_ID")
, sggCd : $P.rductControl.dataset.getValue("SGG_CD")
, taskSeCd : $P.rductControl.dataset.getValue("TASK_SE_CD")
@ -706,9 +700,6 @@
// 계고 등록
$P.fnCreateWrng = (title) => {
// 버튼 title
let btnTitle = $("#btnCreateWrng--${pageName}").attr("title");
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -721,7 +712,7 @@
if (Number(crdnSttsCd) < 01 || Number(crdnSttsCd) > 45 || Number(crdnSttsCd) == 31) {
dialog.alert({
content : "단속상태가 '" + crdnSttsNm + "' 입니다."
+ "<br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
+ "<br>" + "[" + title + "]" + " 실행이 취소되었습니다."
, onOK : () => { }
});
return;
@ -729,7 +720,7 @@
let params = {
callPurpose : "create"
, btnTitle : btnTitle
, title : title
, crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
@ -742,9 +733,6 @@
// 부과제외 등록
$P.fnCreateLevyExcl = (title) => {
// 버튼 title
let btnTitle = $("#btnCreateLevyExcl--${pageName}").attr("title");
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
@ -757,7 +745,7 @@
if (Number(crdnSttsCd) < 01 || Number(crdnSttsCd) > 45 || Number(crdnSttsCd) == 31) {
dialog.alert({
content : "단속상태가 '" + crdnSttsNm + "' 입니다."
+ "<br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
+ "<br>" + "[" + title + "]" + " 실행이 취소되었습니다."
, onOK : () => { }
});
return;
@ -765,7 +753,7 @@
let params = {
callPurpose : "create"
, btnTitle : btnTitle
, title : title
, crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val()
@ -778,9 +766,6 @@
// 부과제외 수정
$P.fnUpdateLevyExcl = (title) => {
// 버튼 title
let btnTitle = $("#btnUpdateLevyExcl--${pageName}").attr("title");
// 부과제외 ID
let levyExclId = $P.levyExclControl.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return
@ -788,7 +773,7 @@
let params = {
callPurpose : "update"
, btnTitle : btnTitle
, title : title
, crdnId : $P.levyExclControl.dataset.getValue("CRDN_ID")
, sggCd : $P.levyExclControl.dataset.getValue("SGG_CD")
, taskSeCd : $P.levyExclControl.dataset.getValue("TASK_SE_CD")
@ -801,9 +786,6 @@
// 부과제외 삭제
$P.fnRemoveLevyExcl = (title) => {
// 버튼 title
let btnTitle = $("#btnRemoveLevyExcl--${pageName}").attr("title");
// 부과제외 ID
let levyExclId = $P.levyExclControl.dataset.getValue("LEVY_EXCL_ID");
// 부과제외 ID 가 없다면.. return
@ -838,14 +820,34 @@
**************************************************************************/
// 이벤트 설정
$P.setEvent = () => {
// 업무 버튼 이벤트
$("#btnCreateRduct--${pageName}").on("click", () => $P.fnCreateRduct()); // 감경 등록 버튼 이벤트
$("#btnUpdateRduct--${pageName}").on("click", () => $P.fnUpdateRduct()); // 감경 수정 버튼 이벤트
$("#btnRemoveRduct--${pageName}").on("click", () => $P.fnRemoveRduct()); // 감경 삭제 버튼 이벤트
$("#btnCreateWrng--${pageName}").on("click", () => $P.fnCreateWrng()); // 계고 등록 버튼 이벤트
$("#btnCreateLevyExcl--${pageName}").on("click", () => $P.fnCreateLevyExcl()); // 비부과 등록 버튼 이벤트
$("#btnUpdateLevyExcl--${pageName}").on("click", () => $P.fnUpdateLevyExcl()); // 부과제외 수정 버튼 이벤트
$("#btnRemoveLevyExcl--${pageName}").on("click", () => $P.fnRemoveLevyExcl()); // 부과제외 삭제 버튼 이벤트
// 감경 등록 버튼 이벤트
$("#btnCreateRduct--${pageName}").on("click", function() {
$P.fnCreateRduct($(this).attr("title"));
});
// 감경 수정 버튼 이벤트
$("#btnUpdateRduct--${pageName}").on("click", function() {
$P.fnUpdateRduct($(this).attr("title"));
});
// 감경 삭제 버튼 이벤트
$("#btnRemoveRduct--${pageName}").on("click", function() {
$P.fnRemoveRduct($(this).attr("title"));
});
// 계고 등록 버튼 이벤트
$("#btnCreateWrng--${pageName}").on("click", function() {
$P.fnCreateWrng($(this).attr("title"));
});
// 비부과 등록 버튼 이벤트
$("#btnCreateLevyExcl--${pageName}").on("click", function() {
$P.fnCreateLevyExcl($(this).attr("title"));
});
// 부과제외 수정 버튼 이벤트
$("#btnUpdateLevyExcl--${pageName}").on("click", function() {
$P.fnUpdateLevyExcl($(this).attr("title"));
});
// 부과제외 삭제 버튼 이벤트
$("#btnRemoveLevyExcl--${pageName}").on("click", function() {
$P.fnRemoveLevyExcl($(this).attr("title"));
});
// DataTables width 변경 조정
fnMakeResizableTable($("#table-responsive-crdnSttsHstry--${pageName}")[0]);

Loading…
Cancel
Save