diff --git a/src/main/java/cokr/xit/fims/epst/dao/EpostRcptDtlMapper.java b/src/main/java/cokr/xit/fims/epst/dao/EpostRcptDtlMapper.java new file mode 100644 index 00000000..a2de64ef --- /dev/null +++ b/src/main/java/cokr/xit/fims/epst/dao/EpostRcptDtlMapper.java @@ -0,0 +1,106 @@ +package cokr.xit.fims.epst.dao; + +import java.util.List; +import java.util.Map; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.epst.EpostRcptDtl; +import cokr.xit.fims.epst.EpostQuery; + +/** 전자우편 접수 상세 정보 DAO + * + *
상세 설명: + * + *
+ * ============ 변경 이력 ============ + * 2023-12-15 JoJH 최초 작성 + * ================================ + *+ */ +@Mapper("epostRcptDtlMapper") +public interface EpostRcptDtlMapper extends AbstractMapper { + + /**지정한 조건에 따라 전자우편 접수 상세 목록을 조회하여 반환한다.
상세 설명: + * + *
+ * ============ 변경 이력 ============ + * 2023-12-15 JoJH 최초 작성 + * ================================ + *+ */ +public interface EpostRcptDtlService { + /**지정한 조건에 따라 전자우편 접수 상세 목록을 조회하여 반환한다. + * @param req 전자우편 접수 상세 조회 조건 + * @return 전자우편 접수 상세 목록 + */ + List
상세 설명: + * + *
+ * ============ 변경 이력 ============ + * 2023-12-15 JoJH 최초 작성 + * ================================ + *+ */ +@Component("epostRcptDtlBean") +public class EpostRcptDtlBean extends AbstractComponent { + + /** 전자우편 접수 상세 정보 DAO */ + @Resource(name = "epostRcptDtlMapper") + private EpostRcptDtlMapper epostRcptDtlMapper; + + /**지정한 조건에 따라 전자우편 접수 상세 목록을 조회하여 반환한다. + * @param req 전자우편 접수 상세 조회 조건 + * @return 전자우편 접수 상세 목록 + */ + public List
상세 설명: + * + *
+ * ============ 변경 이력 ============ + * 2023-12-15 JoJH 최초 작성 + * ================================ + *+ */ +@Service("epostRcptDtlService") +public class EpostRcptDtlServiceBean extends AbstractServiceBean implements EpostRcptDtlService { + + /** 전자우편 접수 상세 정보 Bean */ + @Resource(name = "epostRcptDtlBean") + private EpostRcptDtlBean epostRcptDtlBean; + + @Override + public List
{
- * "saved": 등록되었으면 true, 그렇지 않으면 false
- * }
- */
- public ModelAndView create(EpostGdcc epostGdcc) {
- boolean saved = epostGdccService.create(epostGdcc);
- return new ModelAndView("jsonView")
- .addObject("saved", saved);
- }
-
- /**전자우편 안내문 정보를 수정한다.
- * @param epostGdcc 전자우편 안내문 정보
- * @return jsonView
- * {
- * "saved": 수정되었으면 true, 그렇지 않으면 false
- * }
- */
- public ModelAndView update(EpostGdcc epostGdcc) {
- boolean saved = epostGdccService.update(epostGdcc);
- return new ModelAndView("jsonView")
- .addObject("saved", saved);
- }
-
- /**지정한 전자우편 안내문를 제거한다.
- * @param epostGdccIDs 전자우편 안내문 아이디
- * @return jsonView
- * {
- * "affected": 저장된 정보수
- * "saved": 저장되었으면 true, 그렇지 않으면 false
- * }
- */
- public ModelAndView remove(EpostGdcc epostGdcc) {
- boolean saved = epostGdccService.remove(epostGdcc);
- return new ModelAndView("jsonView")
- .addObject("saved", saved);
- }
-
/**전자우편 접수 등록 관리 메인화면(epostRcptReg/epostRcptReg-main)을 연다.
* 조건없는 {@link #getEpostRcptRegList(EpostRcptRegQuery) 전자우편 접수 등록 조회 결과}를 포함시킨다.
* @return /epostRcptReg/epostRcptReg-main
@@ -280,9 +291,53 @@ public class Epst02Controller extends ApplicationController {
* }
*/
public ModelAndView getEpostReceiptRegistrationList(EpostQuery req) {
- List> result = epostRcptRegService.getEpostRcptRegList(setFetchSize(req));
+ if (!"xls".equals(req.getDownload())) {
+ List> result = epostRcptRegService.getEpostRcptRegList(setFetchSize(req));
+ return setCollectionInfo(new ModelAndView("jsonView"), result, "epostRcptReg");
+ } else {
+ XLSWriter xlsx = new XLSWriter()
+ .setFilename("우편통합 발송상태 목록.xlsx")
+ .worksheet(0);
- return setCollectionInfo(new ModelAndView("jsonView"), result, "epostRcptReg");
+ 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(); // 연월일 시간
+
+ xlsx.cell(0, 0)
+ .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)
+ );
+
+ return new ModelAndView("xlsView")
+ .addObject("xls", xlsx);
+ }
}
/**전자우편 접수 등록 단건의 정보(info)를 반환한다.
@@ -372,16 +427,17 @@ public class Epst02Controller extends ApplicationController {
XLSWriter.Styler header = new XLSWriter.Styler()
.width(16)
- .foregroundColor(HSSFColor.HSSFColorPredefined.LIGHT_BLUE.getIndex())
+ .foregroundColor(HSSFColor.HSSFColorPredefined.GREY_25_PERCENT.getIndex())
.configure(styler -> {
Font font = xlsx.workbook().createFont();
- font.setColor(HSSFColor.HSSFColorPredefined.WHITE.getIndex());
+ font.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
styler.font(font);
styler.alignment(HorizontalAlignment.CENTER);
});
- CellStyle numeric = xlsx.n_nn0()
- , dateYmd = xlsx.yyyy_mm_dd();
+ CellStyle numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,)
+ , dateYMD = xlsx.yyyy_mm_dd() // 연월일
+ , dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일 시간
xlsx.cell(0, 0)
.value("우편통합 접수결과 목록", XLSWriter.Styler.CENTER)
@@ -397,14 +453,15 @@ public class Epst02Controller extends ApplicationController {
, 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.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)
- , "REG_DT", "RGTR_NM"
+ , xlsx.format(r -> xlsx.str2datetime(r.get("REG_DT"))).style(dateDT)
+ , xlsx.style("RGTR_NM", XLSWriter.Styler.LEFT)
);
return new ModelAndView("xlsView")
diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java
index 23fd3723..f58e7617 100644
--- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java
+++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java
@@ -16,6 +16,7 @@ import cokr.xit.fims.cmmn.service.bean.VltnBean;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.epst.EpostRcptDtl;
import cokr.xit.fims.epst.EpostRcptReg;
+import cokr.xit.fims.epst.service.bean.EpostRcptDtlBean;
import cokr.xit.fims.epst.service.bean.EpostRcptRegBean;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.service.bean.LevyBean;
@@ -74,6 +75,10 @@ public class SndngBean extends AbstractComponent {
@Resource(name = "epostRcptRegBean")
private EpostRcptRegBean epostRcptRegBean;
+ /** 전자우편 접수 상세 정보 Bean */
+ @Resource(name = "epostRcptDtlBean")
+ private EpostRcptDtlBean epostRcptDtlBean;
+
/** 파일 Bean */
@Resource(name="fileBean")
private FileBean fileBean;
@@ -600,7 +605,7 @@ public class SndngBean extends AbstractComponent {
int seqNo = 0;
if (sndng.getPostSndngSeCd().equals("0")) {
- seqNo = epostRcptRegBean.getEpostSenderDetailSeq(sndngInfo.string("TODAY"));
+ seqNo = epostRcptDtlBean.getEpostSenderDetailSeq(sndngInfo.string("TODAY"));
}
// 포맷: 등록일(REG_YMD)-발송기관코드(RECEV_SENDER_ORG_CODE)-업무코드(WORK_ID)-우편물구분(POST_SE)일련번호(RECEV_SEQ_NO)
// 예시: 20170719-40504370000-003-1001
@@ -694,7 +699,7 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
// 6. 전자우편 접수 등록
- retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg);
+ retSuccess = epostRcptRegBean.create(epostRcptReg);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다.");
@@ -1110,7 +1115,7 @@ public class SndngBean extends AbstractComponent {
}
// 10. 전자우편 접수 상세
- retSuccess = epostRcptRegBean.createEpostRcptDtl(epostRcptDtl);
+ retSuccess = epostRcptDtlBean.create(epostRcptDtl);
if (!retSuccess) {
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
diff --git a/src/main/resources/sql/mapper/fims/epst/epostGdcc-mapper.xml b/src/main/resources/sql/mapper/fims/epst/epostGdcc-mapper.xml
index 8ad3b76a..b34b73c9 100644
--- a/src/main/resources/sql/mapper/fims/epst/epostGdcc-mapper.xml
+++ b/src/main/resources/sql/mapper/fims/epst/epostGdcc-mapper.xml
@@ -57,34 +57,34 @@
AND EG.USE_YN = #{useYN} /* 사용 여부 */