diff --git a/src/main/java/cokr/xit/fims/epst/EpostDlvrRslt.java b/src/main/java/cokr/xit/fims/epst/EpostDlvrRslt.java new file mode 100644 index 00000000..b22c8fc7 --- /dev/null +++ b/src/main/java/cokr/xit/fims/epst/EpostDlvrRslt.java @@ -0,0 +1,80 @@ +package cokr.xit.fims.epst; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 전자우편 배달 결과 + * @author JoJH + */ +@Getter +@Setter +public class EpostDlvrRslt extends AbstractEntity { + + /** + * 배달 결과 ID + */ + private String dlvrRsltId; + + /** + * 외부연계식별키 + */ + private String conKey; + + /** + * 외부기관구분코드 + */ + private String outsiduserid; + + /** + * 발송인별추가데이터 + */ + private String reletcdata; + + /** + * 등기번호 + */ + private String regino; + + /** + * 배달일자 + */ + private String delivymd; + + /** + * 배달시분 + */ + private String delivhhmi; + + /** + * 배달결과코드 + */ + private String delivrsltcd; + + /** + * 미배달사유코드 + */ + private String nondelivreasncd; + + /** + * 미배달사유명 + */ + private String nondelivreasncdnm; + + /** + * 수령인명 + */ + private String subrecprsnnm; + + /** + * 수령인관계코드 + */ + private String relrecprsncd; + + /** + * 수령인관계명 + */ + private String relrecprsncdnm; + +} diff --git a/src/main/java/cokr/xit/fims/epst/EpostQuery.java b/src/main/java/cokr/xit/fims/epst/EpostQuery.java index b9f950c1..bb7bcd46 100644 --- a/src/main/java/cokr/xit/fims/epst/EpostQuery.java +++ b/src/main/java/cokr/xit/fims/epst/EpostQuery.java @@ -30,6 +30,7 @@ public class EpostQuery extends CmmnQuery { private String[] rcptRsltIDs; // 접수 결과 IDs private String rcptRsltId; // 접수 결과 ID private String conKey; // 외부연계식별키 + private String regino; // 등기번호 // 검색 조건 private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작 private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료 @@ -182,6 +183,16 @@ public class EpostQuery extends CmmnQuery { return self(); } + public String getRegino() { + return ifEmpty(regino, () -> null); + } + + public T setRegino(String regino) { + this.regino = regino; + return self(); + } + + // 검색 조건 ////////////////////////////////////////////////////////////////// public String getSchLevyExclYmdFrom() { return ifEmpty(schLevyExclYmdFrom, () -> null); } @@ -327,6 +338,7 @@ public class EpostQuery extends CmmnQuery { this.schSndngSeCd = schSndngSeCd; return self(); } + // 검색 조건 ////////////////////////////////////////////////////////////////// // 상세 검색 조건 /////////////////////////////////////////////////////////////// diff --git a/src/main/java/cokr/xit/fims/epst/dao/EpostDlvrRsltMapper.java b/src/main/java/cokr/xit/fims/epst/dao/EpostDlvrRsltMapper.java new file mode 100644 index 00000000..abe337da --- /dev/null +++ b/src/main/java/cokr/xit/fims/epst/dao/EpostDlvrRsltMapper.java @@ -0,0 +1,110 @@ +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.EpostDlvrRslt; +import cokr.xit.fims.epst.EpostQuery; + +/** 전자우편 배달 결과 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-05	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("epostDlvrRsltMapper") +public interface EpostDlvrRsltMapper extends AbstractMapper { + + /**지정한 조건에 따라 전자우편 배달 결과 목록을 조회하여 반환한다.
+ * @param req 전자우편 배달 결과 조회 조건 + * @return 전자우편 배달 결과 목록 + */ + List selectEpostDlvrRsltList(EpostQuery req); + + /**지정한 조건에 따라 전자우편 배달 결과 객체들을 반환한다. + * @param req 전자우편 배달 결과 조회 조건 + * @return 전자우편 배달 결과 객체 목록 + */ + List selectEpostDlvrRslts(EpostQuery req); + + default DataObject selectEpostDlvrRsltInfo(EpostQuery req) { + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("DLVR_RSLT_ID DESC"); + } + + List epostDlvrRslts = selectEpostDlvrRslts(req); + + return !epostDlvrRslts.isEmpty() ? epostDlvrRslts.get(0) : null; + } + + /**전자우편 배달 결과 정보를 등록한다. + * @param params 파라미터 + *
  • "epostDlvrRslt" - 전자우편 배달 결과
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertEpostDlvrRslt(Map params); + + /**전자우편 배달 결과 정보를 등록한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean insert(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRslt != null && insertEpostDlvrRslt(params().set("epostDlvrRslt", epostDlvrRslt)) == 1; + } + + /**전자우편 배달 결과 정보를 수정한다. + * @param params 파라미터 + *
  • "epostDlvrRslt" - 전자우편 배달 결과
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateEpostDlvrRslt(Map params); + + /**전자우편 배달 결과 정보를 수정한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRslt != null && updateEpostDlvrRslt(params().set("epostDlvrRslt", epostDlvrRslt)) == 1; + } + + /**지정한 전자우편 배달 결과을 삭제한다. + * @param params 파라미터 + *
  • "epostDlvrRslt" - 전자우편 배달 결과
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteEpostDlvrRslt(Map params); + + /**전자우편 배달 결과 정보를 삭제한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean delete(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRslt != null && deleteEpostDlvrRslt(params().set("epostDlvrRslt", epostDlvrRslt)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/epst/service/EpostDlvrRsltService.java b/src/main/java/cokr/xit/fims/epst/service/EpostDlvrRsltService.java new file mode 100644 index 00000000..ae56fc09 --- /dev/null +++ b/src/main/java/cokr/xit/fims/epst/service/EpostDlvrRsltService.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.epst.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.epst.EpostDlvrRslt; +import cokr.xit.fims.epst.EpostQuery; + +/**전자우편 배달 결과 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-05	JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface EpostDlvrRsltService { + + /**지정한 조건에 따라 전자우편 배달 결과 목록을 조회하여 반환한다. + * @param req 전자우편 배달 결과 조회 조건 + * @return 전자우편 배달 결과 목록 + */ + List getEpostDlvrRsltList(EpostQuery req); + + /**지정한 조건에 따라 전자우편 배달 결과 객체들을 반환한다. + * @param req 전자우편 배달 결과 조회 조건 + * @return 전자우편 배달 결과 객체 목록 + */ + List getEpostDlvrRslts(EpostQuery req); + + /**전자우편 배달 결과 정보를 등록한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean create(EpostDlvrRslt epostDlvrRslt); + + /**전자우편 배달 결과 정보를 수정한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean update(EpostDlvrRslt epostDlvrRslt); + + /**전자우편 배달 결과 정보를 삭제한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean remove(EpostDlvrRslt epostDlvrRslt); + +} diff --git a/src/main/java/cokr/xit/fims/epst/service/bean/EpostDlvrRsltBean.java b/src/main/java/cokr/xit/fims/epst/service/bean/EpostDlvrRsltBean.java new file mode 100644 index 00000000..65733285 --- /dev/null +++ b/src/main/java/cokr/xit/fims/epst/service/bean/EpostDlvrRsltBean.java @@ -0,0 +1,82 @@ +package cokr.xit.fims.epst.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.epst.EpostDlvrRslt; +import cokr.xit.fims.epst.EpostQuery; +import cokr.xit.fims.epst.dao.EpostDlvrRsltMapper; + +/**전자우편 배달 결과 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-05	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("epostDlvrRsltBean") +public class EpostDlvrRsltBean extends AbstractComponent { + + /** 전자우편 배달 결과 정보 DAO */ + @Resource(name = "epostDlvrRsltMapper") + private EpostDlvrRsltMapper epostDlvrRsltMapper; + + /**지정한 조건에 따라 전자우편 배달 결과 목록을 조회하여 반환한다. + * @param req 전자우편 배달 결과 조회 조건 + * @return 전자우편 배달 결과 목록 + */ + public List getEpostDlvrRsltList(EpostQuery req) { + return epostDlvrRsltMapper.selectEpostDlvrRsltList(req); + } + + /**지정한 조건에 따라 전자우편 배달 결과 객체들을 반환한다. + * @param req 전자우편 배달 결과 조회 조건 + * @return 전자우편 배달 결과 객체 목록 + */ + public List getEpostDlvrRslts(EpostQuery req) { + return epostDlvrRsltMapper.selectEpostDlvrRslts(req); + } + + /**전자우편 배달 결과 정보를 등록한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean create(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRsltMapper.insert(epostDlvrRslt); + } + + /**전자우편 배달 결과 정보를 수정한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean update(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRsltMapper.update(epostDlvrRslt); + } + + /**전자우편 배달 결과 정보를 삭제한다. + * @param epostDlvrRslt 전자우편 배달 결과 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean remove(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRsltMapper.delete(epostDlvrRslt); + } + +} diff --git a/src/main/java/cokr/xit/fims/epst/service/bean/EpostDlvrRsltServiceBean.java b/src/main/java/cokr/xit/fims/epst/service/bean/EpostDlvrRsltServiceBean.java new file mode 100644 index 00000000..dcdbad4c --- /dev/null +++ b/src/main/java/cokr/xit/fims/epst/service/bean/EpostDlvrRsltServiceBean.java @@ -0,0 +1,58 @@ +package cokr.xit.fims.epst.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.epst.EpostDlvrRslt; +import cokr.xit.fims.epst.EpostQuery; +import cokr.xit.fims.epst.service.EpostDlvrRsltService; + +/**전자우편 배달 결과 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-05	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("epostDlvrRsltService") +public class EpostDlvrRsltServiceBean extends AbstractServiceBean implements EpostDlvrRsltService { + + /** 전자우편 배달 결과 정보 Bean */ + @Resource(name = "epostDlvrRsltBean") + private EpostDlvrRsltBean epostDlvrRsltBean; + + @Override + public List getEpostDlvrRsltList(EpostQuery req) { + return epostDlvrRsltBean.getEpostDlvrRsltList(req); + } + + @Override + public List getEpostDlvrRslts(EpostQuery req) { + return epostDlvrRsltBean.getEpostDlvrRslts(req); + } + + @Override + public boolean create(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRsltBean.create(epostDlvrRslt); + } + + @Override + public boolean update(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRsltBean.update(epostDlvrRslt); + } + + @Override + public boolean remove(EpostDlvrRslt epostDlvrRslt) { + return epostDlvrRsltBean.remove(epostDlvrRslt); + } + +} diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java index dba9f8fa..fcd0237e 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java @@ -90,57 +90,60 @@ public class NxrpMtchgBean extends AbstractComponent { // 세외수입 연계관련 정보 확인 // 발송상세 대상를 조회 - List sndngDtlIDs = sndngDtlMapper.selectSndngTrgtDtlIDs(new SndbQuery().setSndngId(req.getSndngId()) - .setDelYN("N")); + List sndngDtlIDs = sndngDtlMapper.selectSndngTrgtDtlIDs(new SndbQuery().setSndngId(req.getSndngId())); // 발송상세 대상 자료로 세외수입 매핑 내역 등록한다. for (int iLoop = 0; iLoop < sndngDtlIDs.size(); iLoop++) { // 단속 자료 조회 DataObject sndngDtlLevyInfo = sndngDtlMapper.selectSndngDtlLevyInfo(sndngDtlIDs.get(iLoop).string("SNDNG_DTL_ID")); - if (sndngDtlLevyInfo == null) { - throw new RuntimeException("세외수입 매칭 내역 등록 작업중 단속자료가 존재하지 않습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 세외수입 연계 등록 서비스 호출 ////////////////////////////////////////////// - String linkRsltId = "0000000000"; - // 세외수입 매칭 내역 정보 조회 - DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(new NxrpMtchgQuery().setCrdnId(sndngDtlLevyInfo.string("CRDN_ID")) - .setDelYN("N")); - - NxrpMtchg nxrpMtchg = new NxrpMtchg(); - if (nxrpMtchgInfo == null) { - nxrpMtchg.setCrdnId(sndngDtlLevyInfo.string("CRDN_ID")); // 단속 ID - nxrpMtchg.setCrdnDt(sndngDtlLevyInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시 - nxrpMtchg.setStdgNm(sndngDtlLevyInfo.string("CRDN_STDG_NM")); // 법정동 명 - nxrpMtchg.setCrdnPlc(sndngDtlLevyInfo.string("CRDN_PLC")); // 단속 장소 - nxrpMtchg.setLinkRsltId(linkRsltId); // 연계 결과 ID - nxrpMtchg.setAcntgYr(sndngDtlLevyInfo.string("FYR")); // 회계 연도 - nxrpMtchg.setLevyNo(sndngDtlLevyInfo.string("LEVY_NO")); // 부과 번호 - nxrpMtchg.setLevyAmt(sndngDtlLevyInfo.number("PCPTAX").intValue()); // 부과 금액 - nxrpMtchg.setAdtnAmt(sndngDtlLevyInfo.number("ADAMT").intValue()); // 가산 금액 - nxrpMtchg.setSumAmt(sndngDtlLevyInfo.number("SUM_AMT").intValue()); // 합계 금액 - nxrpMtchg.setNxrpMtchgSttsCd("01"); // FIM073(세외수입 매칭 상태 코드) - 01 처리전 - - rtnScs = nxrpMtchgMapper.insert(nxrpMtchg); // 세외수입 매칭 내역 등록 - } else { - nxrpMtchg.setMtchgId(nxrpMtchgInfo.string("MTCHG_ID")); // 매칭 ID - nxrpMtchg.setLinkRsltId(linkRsltId); // 연계 결과 ID - nxrpMtchg.setNxrpMtchgSttsCd("01"); // FIM073(세외수입 매칭 상태 코드) - 01 처리전 - - rtnScs = nxrpMtchgMapper.updateLinkRsltId(nxrpMtchg); // 세외수입 매칭 내역 수정 + // + if (sndngDtlLevyInfo == null) { + throw new RuntimeException("세외수입 등록 작업중 단속자료가 존재하지 않습니다."); // 예외를 발생시켜서 DB Rollback } - // 발송 상세 상태 코드 수정. - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setMtchgId(nxrpMtchg.getMtchgId()); // 매칭 ID - sndngDtl.setSndngDtlSttsCd("01"); // FIM050(발송 상세 상태 코드) - 01 세외수입부과 - sndngDtl.setSndngDtlId(sndngDtlIDs.get(iLoop).string("SNDNG_DTL_ID")); // 발송 상세 ID - - rtnScs = sndngDtlMapper.updateSndngDtlSttsCd(sndngDtl); - if (!rtnScs) { - throw new RuntimeException("세외수입 매칭 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + // 발송 상세 상태 코드 확인. + if ("00,01,02".contains(sndngDtlLevyInfo.string("SNDNG_DTL_STTS_CD"))) { + // 세외수입 연계 등록 서비스 호출 ////////////////////////////////////////////// + String linkRsltId = "0000000000"; + + // 세외수입 매칭 내역 정보 조회 + DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(new NxrpMtchgQuery().setCrdnId(sndngDtlLevyInfo.string("CRDN_ID"))); + + NxrpMtchg nxrpMtchg = new NxrpMtchg(); + if (nxrpMtchgInfo == null) { + nxrpMtchg.setCrdnId(sndngDtlLevyInfo.string("CRDN_ID")); // 단속 ID + nxrpMtchg.setCrdnDt(sndngDtlLevyInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시 + nxrpMtchg.setStdgNm(sndngDtlLevyInfo.string("CRDN_STDG_NM")); // 법정동 명 + nxrpMtchg.setCrdnPlc(sndngDtlLevyInfo.string("CRDN_PLC")); // 단속 장소 + nxrpMtchg.setLinkRsltId(linkRsltId); // 연계 결과 ID + nxrpMtchg.setAcntgYr(sndngDtlLevyInfo.string("FYR")); // 회계 연도 + nxrpMtchg.setLevyNo(sndngDtlLevyInfo.string("LEVY_NO")); // 부과 번호 + nxrpMtchg.setLevyAmt(sndngDtlLevyInfo.number("PCPTAX").intValue()); // 부과 금액 + nxrpMtchg.setAdtnAmt(sndngDtlLevyInfo.number("ADAMT").intValue()); // 가산 금액 + nxrpMtchg.setSumAmt(sndngDtlLevyInfo.number("SUM_AMT").intValue()); // 합계 금액 + nxrpMtchg.setNxrpMtchgSttsCd("01"); // FIM073(세외수입 매칭 상태 코드) - 01 처리전 + + rtnScs = nxrpMtchgMapper.insert(nxrpMtchg); // 세외수입 매칭 내역 등록 + } else { + nxrpMtchg.setMtchgId(nxrpMtchgInfo.string("MTCHG_ID")); // 매칭 ID + nxrpMtchg.setLinkRsltId(linkRsltId); // 연계 결과 ID + nxrpMtchg.setNxrpMtchgSttsCd("01"); // FIM073(세외수입 매칭 상태 코드) - 01 처리전 + + rtnScs = nxrpMtchgMapper.updateLinkRsltId(nxrpMtchg); // 세외수입 매칭 내역 수정 + } + + // 발송 상세 상태 코드 수정. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setMtchgId(nxrpMtchg.getMtchgId()); // 매칭 ID + sndngDtl.setSndngDtlSttsCd("01"); // FIM050(발송 상세 상태 코드) - 01 세외수입부과 + sndngDtl.setSndngDtlId(sndngDtlIDs.get(iLoop).string("SNDNG_DTL_ID")); // 발송 상세 ID + + rtnScs = sndngDtlMapper.updateSndngDtlSttsCd(sndngDtl); + if (!rtnScs) { + throw new RuntimeException("세외수입 매칭 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } } } diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java index e4449ca1..12c7d006 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java @@ -7,7 +7,6 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.data.DataObject; - import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.SndbQuery; @@ -23,6 +22,7 @@ import cokr.xit.fims.sndb.SndbQuery; */ @Mapper("sndngDtlMapper") public interface SndngDtlMapper extends AbstractMapper { + /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다.
* @param req 발송 상세 조회 조건 * @return 발송 상세 목록 @@ -36,17 +36,18 @@ public interface SndngDtlMapper extends AbstractMapper { List selectSndngDtls(SndbQuery req); default DataObject selectSndngDtlInfo(SndbQuery req) { - // 기본 정렬 + // 삭제여부 if (req.getDelYN() == null) { req.setDelYN("N"); } + // 기본 정렬 if (req.getOrderBy() == null) { req.setOrderBy("SD.SNDNG_DTL_ID DESC"); } - List sndngDtlInfo = selectSndngDtls(req); + List sndngDtls = selectSndngDtls(req); - return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null; + return !sndngDtls.isEmpty() ? sndngDtls.get(0) : null; } /**발송 ID에 따라 발송 상세 ID를 반환한다. @@ -147,4 +148,108 @@ public interface SndngDtlMapper extends AbstractMapper { return sndngDtl != null && deleteSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; } + + + + /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. + * @param req 발송 조회 조건 + * @return 발송 상세 반송 정보 + */ + List selectSndbkList(SndbQuery req); + + /**지정한 조건에 따라 발송 상세 객체들을 반환한다. + * @param req 발송 조회 조건 + * @return 발송 상세 반송 정보 + */ + List selectSndbks(SndbQuery req); + + /**지정한 조건에 따라 발송 상세 객체의 마지막 1개를 반환한다. + * @param req 발송 조회 조건 + * @return 발송 상세 반송 정보 + */ + default DataObject selectSndbkInfo(SndbQuery req) { + // 삭제여부 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("SD.SNDNG_DTL_ID DESC"); + } + + List sndbks = selectSndbks(req); + + return !sndbks.isEmpty() ? sndbks.get(0) : null; + } + + /**발송 상세의 반송 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장된 정보수 + */ + int createSndbk(Map params); + + default boolean createSndbk(SndngDtl sndngDtl) { + return sndngDtl != null && createSndbk(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**발송 상세의 반송 정보를 수정한다. + * @param sndngDtl 발송 상세 + * @return 저장된 정보수 + */ + int updateSndbk(Map params); + + default boolean updateSndbk(SndngDtl sndngDtl) { + return sndngDtl != null && updateSndbk(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**발송 상세의 반송 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장된 정보수 + */ + int deleteSndbk(Map params); + + default boolean deleteSndbk(SndngDtl sndngDtl) { + return sndngDtl != null && deleteSndbk(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기 + * @param svbtcId 공시송달 ID + * @return 총건수 + */ + int selectTnocsSndngDtlSvbtc(String svbtcId); + + /**발송 상세 정보의 반송 정보를 수정한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateSndngDtlSvbtc(Map params); + + default boolean updateSndngDtlSvbtc(SndngDtl sndngDtl) { + return sndngDtl != null && updateSndngDtlSvbtc(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**지정한 발송 상세을 삭제한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteSndngDtlSvbtc(Map params); + + /**발송 상세 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean deleteSndngDtlSvbtc(SndngDtl sndngDtl) { + return sndngDtl != null && deleteSndngDtlSvbtc(params().set("sndngDtl", sndngDtl)) >= 1; + } + + } diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java index 442bbf23..d467b8af 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java @@ -8,7 +8,6 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.Sndng; -import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.SndbQuery; /** 발송 대장 정보 DAO @@ -37,17 +36,18 @@ public interface SndngMapper extends AbstractMapper { List selectSndngs(SndbQuery req); default DataObject selectSndngInfo(SndbQuery req) { - // 기본 정렬 + // 삭제여부 if (req.getDelYN() == null) { req.setDelYN("N"); } + // 기본 정렬 if (req.getOrderBy() == null) { req.setOrderBy("S.SNDNG_ID DESC"); } - List sndngInfo = selectSndngs(req); + List sndngs = selectSndngs(req); - return !sndngInfo.isEmpty() ? sndngInfo.get(0) : null; + return !sndngs.isEmpty() ? sndngs.get(0) : null; } /**지정한 조건에 따라 계도장 발송 대상 목록을 조회하여 반환한다.
@@ -100,8 +100,23 @@ public interface SndngMapper extends AbstractMapper { */ List selectAdvntceTrgtCrdnIDs(SndbQuery req); + /**지정한 조건에 따라 단속, 납부자, 부과 객체들을 반환한다. + * @param req 발송 대장 조회 조건 + * @return 계도장 발송 대상 객체 목록 + */ + List selectCrdnPayerTrgts(SndbQuery req); + + default DataObject selectCrdnPayerInfo(String crdnId) { + List crdnPayerInfo = selectCrdnPayerTrgts(new SndbQuery().setCrdnId(crdnId)); + return !crdnPayerInfo.isEmpty() ? crdnPayerInfo.get(0) : null; + } + /**지정한 발송 ID에 따라 발송 대상 객체들을 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대상 객체 목록 + */ + List selectSndngTrgts(String sndngId); /**발송 대장 정보를 등록한다. * @param params 파라미터 @@ -176,109 +191,6 @@ public interface SndngMapper extends AbstractMapper { return sndng != null && updateSndngSttsCd(params().set("sndng", sndng)) == 1; } - - - - - /**지정한 조건에 따라 단속, 납부자, 부과 객체들을 반환한다. - * @param req 발송 대장 조회 조건 - * @return 계도장 발송 대상 객체 목록 - */ - List selectCrdnPayerTrgts(SndbQuery req); - - default DataObject selectCrdnPayerInfo(String crdnId) { - List crdnPayerInfo = selectCrdnPayerTrgts(new SndbQuery().setCrdnId(crdnId)); - - return !crdnPayerInfo.isEmpty() ? crdnPayerInfo.get(0) : null; - } - - - - - - - - - /**지정한 발송 ID에 따라 발송 대상 객체들을 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대상 객체 목록 - */ - List selectSndngTrgts(String sndngId); - - - - - - - - /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. - * @param req 발송 조회 조건 - * @return 발송 상세 반송 정보 - */ - List selectSndbkList(SndbQuery req); - - /**지정한 조건에 따라 발송 상세 객체들을 반환한다. - * @param req 발송 조회 조건 - * @return 발송 상세 반송 정보 - */ - List selectSndbks(SndbQuery req); - - /**지정한 조건에 따라 발송 상세 객체의 마지막 1개를 반환한다. - * @param req 발송 조회 조건 - * @return 발송 상세 반송 정보 - */ - default DataObject selectSndbkInfo(SndbQuery req) { - // 기본 정렬 - if (req.getOrderBy() == null) { - req.setOrderBy("SD.SNDNG_DTL_ID DESC"); - } - - List sndbkInfo = selectSndbks(req); - - return !sndbkInfo.isEmpty() ? sndbkInfo.get(0) : null; - } - - /**발송 상세의 반송 정보를 등록한다. - * @param sndngDtl 발송 상세 - * @return 저장된 정보수 - */ - int createSndbk(Map params); - - default boolean createSndbk(SndngDtl sndngDtl) { - return sndngDtl != null && createSndbk(params().set("sndngDtl", sndngDtl)) == 1; - } - - /**발송 상세의 반송 정보를 수정한다. - * @param sndngDtl 발송 상세 - * @return 저장된 정보수 - */ - int updateSndbk(Map params); - - default boolean updateSndbk(SndngDtl sndngDtl) { - return sndngDtl != null && updateSndbk(params().set("sndngDtl", sndngDtl)) == 1; - } - - /**발송 상세의 반송 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장된 정보수 - */ - int deleteSndbk(Map params); - - default boolean deleteSndbk(SndngDtl sndngDtl) { - return sndngDtl != null && deleteSndbk(params().set("sndngDtl", sndngDtl)) == 1; - } - - - - - - - /**발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기 - * @param svbtcId 공시송달 ID - * @return 총건수 - */ - int selectTnocsSndngDtlSvbtc(String svbtcId); - /**전자우편 발송 내역을 수정한다. * @param params 파라미터 *
  • "sndngDtl" - 발송 상세
  • @@ -292,39 +204,4 @@ public interface SndngMapper extends AbstractMapper { return sndng != null && updateEPostSndng(params().set("sndng", sndng)) == 1; } - - /**발송 상세 정보의 반송 정보를 수정한다. - * @param params 파라미터 - *
    • "sndngDtl" - 발송 상세
    • - *
    • "currentUser" - 현재 접속한 사용자
    • - *
    - * @return 저장된 정보수 - */ - int updateSndngDtlSvbtc(Map params); - - default boolean updateSndngDtlSvbtc(SndngDtl sndngDtl) { - return sndngDtl != null && updateSndngDtlSvbtc(params().set("sndngDtl", sndngDtl)) == 1; - } - - /**지정한 발송 상세을 삭제한다. - * @param params 파라미터 - *
    • "sndngDtl" - 발송 상세
    • - *
    • "currentUser" - 현재 접속한 사용자
    • - *
    - * @return 저장된 정보수 - */ - int deleteSndngDtlSvbtc(Map params); - - /**발송 상세 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    - */ - default boolean deleteSndngDtlSvbtc(SndngDtl sndngDtl) { - return sndngDtl != null && deleteSndngDtlSvbtc(params().set("sndngDtl", sndngDtl)) >= 1; - } - - } diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java index 67c9ead5..0c8f1107 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java @@ -5,6 +5,7 @@ import java.util.List; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.SndbQuery; /**발송 상세 관리 서비스 인터페이스. @@ -19,19 +20,19 @@ import cokr.xit.fims.sndb.SndbQuery; */ public interface SndngDtlService { - /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. + /**지정한 조건에 따라 발송상세 목록을 조회하여 반환한다. * @param req 발송 상세 조회 조건 * @return 발송 상세 목록 */ List getSndngDtlList(SndbQuery req); - /**지정한 조건에 따라 발송 상세 객체들을 반환한다. + /**지정한 조건에 따라 발송상세 객체들을 반환한다. * @param req 발송 상세 조회 조건 * @return 발송 상세 객체 목록 */ List getSndngDtls(SndbQuery req); - /**발송 상세 정보를 등록한다. + /**발송상세 정보를 등록한다. * @param sndngDtl 발송 상세 * @return 저장 여부 *
    • 저장됐으면 true
    • @@ -40,7 +41,7 @@ public interface SndngDtlService { */ boolean create(SndngDtl sndngDtl); - /**발송 상세 정보를 수정한다. + /**발송상세 정보를 수정한다. * @param sndngDtl 발송 상세 * @return 저장 여부 *
      • 저장됐으면 true
      • @@ -49,7 +50,7 @@ public interface SndngDtlService { */ boolean update(SndngDtl sndngDtl); - /**발송 상세 정보를 삭제한다. + /**발송상세 정보를 삭제한다. * @param sndngDtl 발송 상세 * @return 저장 여부 *
        • 저장됐으면 true
        • @@ -58,4 +59,131 @@ public interface SndngDtlService { */ boolean remove(SndngDtl sndngDtl); + + + + + + + /**지정한 발송상세 ID의 미배달 정보를 반환한다.
          + * @param sndngDtlId 발송 상세 ID + * @return 발송상세 미배달 정보 + */ + DataObject getSndbkInfo(SndbQuery req); + + /**발송상세 목록의 반송 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String createSndbkList(SndbQuery req); + + /**발송상세 정보의 반송 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String createSndbk(String... sndngDtlIDs); + + /**발송상세 정보의 반송 정보를 수정한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String updateSndbk(SndngDtl sndngDtl); + + /**발송상세 정보의 반송 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String deleteSndbk(SndngDtl sndngDtl); + + + + + + + + + + /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대장 객체 목록 + */ + List getSndbkList(SndbQuery req); + + /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 목록 + */ + List getSvbtcList(SndbQuery req); + + /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + List getSvbtcs(SndbQuery req); + + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + List getSvbtcDtls(SndbQuery req); + + /**공시송달 대장 정보를 등록한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String createSvbtc(Svbtc svbtc); + + /**공시송달 대장 정보를 수정한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String updateSvbtc(Svbtc svbtc); + + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String removeSvbtc(Svbtc svbtc); + + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String removeSvbtcList(SndbQuery req); + + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + String removeSvbtcEach(Svbtc svbtc); + + + } diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java index 390274b7..e52e2cef 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java @@ -4,8 +4,6 @@ import java.util.List; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; -import cokr.xit.fims.sndb.SndngDtl; -import cokr.xit.fims.sndb.Svbtc; import cokr.xit.foundation.data.DataObject; /**발송 대장 관리 서비스 인터페이스. @@ -20,6 +18,18 @@ import cokr.xit.foundation.data.DataObject; */ public interface SndngService { + /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대장 목록 + */ + List getSndngList(SndbQuery req); + + /**지정한 조건에 따라 발송 대장 객체들을 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대장 객체 목록 + */ + List getSndngs(SndbQuery req); + /**지정한 조건에 따라 계도장 발송 대상 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 발송 대장 목록 @@ -78,17 +88,6 @@ public interface SndngService { - - - /**발송 대장 정보를 등록한다. - * @param sndng 발송 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String createSndng(Sndng sndng); - /**전자우편(EPost) 대장 정보를 등록한다. * @param sndng 발송 대장 * @return 저장 여부 @@ -137,119 +136,5 @@ public interface SndngService { - /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대장 목록 - */ - List getSndngList(SndbQuery req); - - - /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대장 객체 목록 - */ - List getSndbkList(SndbQuery req); - - /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 목록 - */ - List getSvbtcList(SndbQuery req); - - /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - List getSvbtcs(SndbQuery req); - - /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - List getSvbtcDtls(SndbQuery req); - - /**발송 상세 정보의 반송 정보를 등록한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String createSndbk(SndngDtl sndngDtl); - - /**발송 상세 정보의 반송 정보를 수정한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String updateSndbk(SndngDtl sndngDtl); - - /**발송 상세 정보의 반송 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String deleteSndbk(SndngDtl sndngDtl); - - /**공시송달 대장 정보를 등록한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String createSvbtc(Svbtc svbtc); - - /**공시송달 대장 정보를 수정한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String updateSvbtc(Svbtc svbtc); - - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String removeSvbtc(Svbtc svbtc); - - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String removeSvbtcList(SndbQuery req); - - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - String removeSvbtcEach(Svbtc svbtc); - - /**지정한 발송상세 ID의 미배달 정보를 반환한다.
          - * @param sndngDtlId 발송 상세 ID - * @return 발송상세 미배달 정보 - */ - DataObject getSndbkInfo(SndbQuery req); - - /**지정한 조건에 따라 발송 대장 객체들을 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대장 객체 목록 - */ - List getSndngs(SndbQuery req); } 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 9a5eff97..bad88783 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 @@ -25,10 +25,8 @@ import cokr.xit.fims.nxrp.dao.NxrpMtchgMapper; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; -import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.dao.SndngDtlMapper; import cokr.xit.fims.sndb.dao.SndngMapper; -import cokr.xit.fims.sndb.dao.SvbtcMapper; import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.data.DataObject; @@ -53,10 +51,6 @@ public class SndngBean extends AbstractComponent { @Resource(name = "sndngDtlMapper") private SndngDtlMapper sndngDtlMapper; - /** 공시송달 대장 정보 DAO */ - @Resource(name = "svbtcMapper") - private SvbtcMapper svbtcMapper; - /** 세외수입 매칭 내역 정보 DAO */ @Resource(name = "nxrpMtchgMapper") private NxrpMtchgMapper nxrpMtchgMapper; @@ -180,7 +174,7 @@ public class SndngBean extends AbstractComponent { boolean rtnScs = false; // DB 처리 결과 String rtnMsg = "[F] "; // 처리 결과 메시지 - List wrngTrgtList = sndngMapper.selectWrngTrgtCrdnIDs(req);; + List wrngTrgtList = sndngMapper.selectWrngTrgtCrdnIDs(req); // 조회 건수 확인 if (wrngTrgtList == null || wrngTrgtList.size() < 1) { @@ -624,242 +618,6 @@ public class SndngBean extends AbstractComponent { return rtnMsg; } - - - - - - - - - - - - - - /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. - * @param req 발송 대장 조회 조건 - * @return 반송 목록 - */ - public List getSndbkList(SndbQuery req) { - return sndngMapper.selectSndbkList(req); - } - - /**발송 대장 정보를 등록한다. - * @param sndng 발송 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String createSndng(Sndng sndng) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - String newCrdnSttsCd = ""; // 단속 상태 코드 - int ffnlgAmt = 0; // 과태료 금액 - int pcptax = 0; // 본세 - int adamt = 0; // 가산금 - int sumAmt = 0; // 합계 금액 - - // 사용자 정보 - DataObject userInfo = userBean.getUserInfo(currentUser().getId()); - - sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드 - sndng.setVltnId(sndng.getVltnId()); // 위반 ID - - if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장 - sndng.setLevyBgngYmd(null); // 부과 시작 일자 - sndng.setLevyEndYmd(null); // 부과 종료 일자 - sndng.setSndngEndYmd(null); // 발송 종료 일자 - newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료 - } else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지 - sndng.setLevyBgngYmd(null); // 부과 시작 일자 - sndng.setLevyEndYmd(null); // 부과 종료 일자 - newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송 - } else { - newCrdnSttsCd = ""; - } - - if (sndng.getTnocs() == 1) { - sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별 - } else { - sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄 - } - - if (sndng.getResndYN() == null) { - sndng.setResndYN("N"); // 재발송 여부 - } - - if (sndng.getDelYN() == null) { - sndng.setDelYN("N"); // 삭제 여부 - } - - sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비 - - // 발송 등록 - rtnScs = sndngMapper.insert(sndng); - if (!rtnScs) { - throw new RuntimeException("발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length; iLoop++) { - // 단속, 납부자 정보 조회 - DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(sndng.getCrdnIDs()[iLoop]); - - if (crdnPayerInfo == null) { - throw new RuntimeException("발송상세 등록 작업중 단속 정보가 확인되지 않았습니다." + "

          단속ID : " + sndng.getCrdnIDs()[iLoop]); // 예외를 발생시켜서 DB Rollback - } - if (crdnPayerInfo.string("RTPYR_ID").equals("")) { - throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "

          차량번호 : " + crdnPayerInfo.string("VHRNO")); // 예외를 발생시켜서 DB Rollback - } - - if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장 - ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 - pcptax = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 - adamt = 0; - sumAmt = 0; - } else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지 - // 부과 ID가 없다면 부과대장 등록 - if (crdnPayerInfo.string("LEVY_ID").equals("")) { - Levy levy = new Levy(); - - levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID - levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 - levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 - levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 - - rtnMsg = levyBean.createRductLevy(levy); - if (rtnMsg.contains("[F]")) { - throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 단속, 납부자 정보 재조회 ///////////////////////////////////////// - crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(sndng.getCrdnIDs()[iLoop]); - } else { - if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) { - // 부과일자, 최초납기일자, 납기일자를 변경한다. - Levy levy = new Levy(); - - levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID - levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 - levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 - levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 - levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액 - levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액 - levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 - - rtnMsg = levyBean.updateRductLevyYmd(levy); - if (rtnMsg.contains("[F]")) { - throw new RuntimeException("발송 상세 등록 작업중 부과대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - } - - ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액 - pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과 본세 - adamt = 0; // 부과 가산금 - sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 부과 합계 금액 - } else { - ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액 - pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과본세 - 수납본세 - 감액본세 - adamt = crdnPayerInfo.number("ADAMT").intValue(); // 부과가산금 - 수납가산금 - 감액가산금 - sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 합계 금액 - } - - // 발송 상세(TB_SNDNG_DTL) 대장에 등록한다. - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID - sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID - sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드 - sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자 - sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자 - sndngDtl.setRtpyrNm(crdnPayerInfo.string("RTPYR_NM")); // 납부자 명 - sndngDtl.setRtpyrBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 납부자 생년월일 - sndngDtl.setRtpyrAddr(crdnPayerInfo.string("ADDR")); // 납부자 주소 - sndngDtl.setRtpyrDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 납부자 상세 주소 - sndngDtl.setRtpyrZip(crdnPayerInfo.string("ZIP")); // 납부자 우편번호 - sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전 - sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호 - sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시 - sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명 - sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소 - sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도 - sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호 - sndngDtl.setLevyYmd(crdnPayerInfo.string("LEVY_YMD")); // 부과 일자 - sndngDtl.setDudtYmd(crdnPayerInfo.string("DUDT_YMD")); // 납기 일자 - sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 - sndngDtl.setPcptax(pcptax); // 본세 - sndngDtl.setAdamt(adamt); // 가산금 - sndngDtl.setSumAmt(sumAmt); // 합계 금액 - sndngDtl.setDudtAftrAmt(crdnPayerInfo.number("DUDT_AFTR_AMT").intValue()); // 납기 후 금액 - sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호 - sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호 - sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명 - sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호 - sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2 - sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2 - sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3 - sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3 - sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4 - sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4 - sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5 - sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5 - sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6 - sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6 - sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7 - sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7 - sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8 - sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8 - sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9 - sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9 - sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10 - sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10 - sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11 - sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11 - sndngDtl.setDelYN("N"); // 삭제 여부 - - rtnScs = sndngDtlMapper.insert(sndngDtl); // 발송 상세 등록 - if (!rtnScs) { - throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 단속 상태 코드를 수정한다. - if (!newCrdnSttsCd.equals("")) { - CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - - crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID")); - crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD")); - crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); - crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); - - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. - rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!rtnScs) { - throw new RuntimeException("발송 상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**발송 대장 정보를 등록한다. - * @param sndng 발송 대장 - * @return 저장 여부 - *

          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public boolean create(Sndng sndng) { - return sndngMapper.insert(sndng); - } - /**발송 대장 정보를 수정한다. * @param sndng 발송 대장 * @return 저장 여부 @@ -1727,292 +1485,4 @@ public class SndngBean extends AbstractComponent { return retCode; } - /**지정한 발송 상세 ID의 미배달 정보를 반환한다.
          - * @param sndngDtlId 발송 상세 ID - * @return 발송상세 미배달 정보 - */ - public DataObject getSndbkInfo(SndbQuery req) { - return sndngMapper.selectSndbkInfo(req); - } - - /**발송 상세의 반송 정보를 등록한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String createSndbk(SndngDtl sndngDtl) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 반송 내역 조회 - DataObject sndbkInfo = sndngMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId()) - .setDelYN("N")); - - // 반송 등록이 가능한지 확인. - - // - sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 - sndngDtl.setSndngDtlSttsCd("05"); // 발송 상세 상태 코드 FIM050 - 05:반송 - - // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. - rtnScs = sndngMapper.createSndbk(sndngDtl); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다."); - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**발송 상세의 반송 정보를 수정한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String updateSndbk(SndngDtl sndngDtl) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. - rtnScs = sndngMapper.updateSndbk(sndngDtl); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송상세의 반송 정보 수정에 실패하였습니다."); - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**발송 상세의 반송 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String deleteSndbk(SndngDtl sndngDtl) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 반송 내역 조회 - DataObject sndbkInfo = sndngMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId()) - .setDelYN("N")); - - // 반송 삭제가 가능한지 확인. - - // - sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 <- 발송 상세 상태 코드 - sndngDtl.setSndngDtlSttsCd(sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD")); // 발송 상세 상태 코드 <- 전 발송 상세 상태 코드 - - // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. - rtnScs = sndngMapper.deleteSndbk(sndngDtl); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송상세의 반송 정보 삭제에 실패하였습니다."); - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - - - - /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 목록 - */ - public List getSvbtcList(SndbQuery req) { - return svbtcMapper.selectSvbtcList(req); - } - - /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - public List getSvbtcs(SndbQuery req) { - return svbtcMapper.selectSvbtcs(req); - } - - /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - public DataObject getSvbtcInfo(SndbQuery req) { - return svbtcMapper.selectSvbtcInfo(req); - } - - /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - public List getSvbtcDtls(SndbQuery req) { - return svbtcMapper.selectSvbtcDtls(req); - } - - /**공시송달 대장 정보를 등록한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String createSvbtc(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 등록 한다. - rtnScs = svbtcMapper.insert(svbtc); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); - } - - // 발송 상세 대장에 공시송달 정보 수정 - for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { - // 발송 상세 - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setSvbtcId(svbtc.getSvbtcId()); - sndngDtl.setSndngDtlSttsCd("06"); - sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); - - rtnScs = sndngMapper.updateSndngDtlSvbtc(sndngDtl); - if (!rtnScs) { - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**공시송달 대장 정보를 수정한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String updateSvbtc(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 수정 한다. - rtnScs = svbtcMapper.update(svbtc); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("공시송달 정보 수정에 실패하였습니다."); - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String removeSvbtc(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SVBTC) 대장을 삭제 한다. - rtnScs = svbtcMapper.delete(svbtc); - if (!rtnScs) { - throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**공시송달ID 조건에 따라 발송상세 대장의 총 건수를 조회한다. - * @param req 발송 대장 조회 조건 - * @return 계도장 발송 대상 목록 - */ - public int selectTnocsSndngDtlSvbtc(String svbtcId) { - return sndngMapper.selectTnocsSndngDtlSvbtc(svbtcId); - } - - /**발송 상세 대장의 공시송달 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String removeSndngDtlSvbtc(SndngDtl sndngDtl) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 발송 상세(TB_SNDNG_DTL) 대장에 공시송달 정보를 삭제 한다. - rtnScs = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송상세의 공시송달 정보 삭제에 실패하였습니다."); - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - - /**공시송달 대장 정보를 삭제하고 발송 상세 대장의 공시송달 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
          • 저장됐으면 true
          • - *
          • 그렇지 않으면 false
          • - *
          - */ - public String removeSvbtcSndngDtl(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SVBTC) 대장을 삭제 한다. - rtnScs = svbtcMapper.delete(svbtc); - if (!rtnScs) { - throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setSvbtcId(svbtc.getSvbtcId()); - sndngDtl.setSndngDtlSttsCd("05"); - - rtnScs = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); - if (!rtnScs) { - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java index 91e4fea1..6b33997b 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java @@ -10,9 +10,13 @@ import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.cmmn.CmmnUtil; +import cokr.xit.fims.epst.EpostQuery; +import cokr.xit.fims.epst.dao.EpostDlvrRsltMapper; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.dao.SndngDtlMapper; +import cokr.xit.fims.sndb.dao.SvbtcMapper; /**발송 상세 정보 관리 Bean * @@ -31,6 +35,14 @@ public class SndngDtlBean extends AbstractComponent { @Resource(name = "sndngDtlMapper") private SndngDtlMapper sndngDtlMapper; + /** 전자우편 배달 결과 정보 DAO */ + @Resource(name = "epostDlvrRsltMapper") + private EpostDlvrRsltMapper epostDlvrRsltMapper; + + /** 공시송달 대장 정보 DAO */ + @Resource(name = "svbtcMapper") + private SvbtcMapper svbtcMapper; + /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. * @param req 발송 상세 조회 조건 * @return 발송 상세 목록 @@ -101,4 +113,389 @@ public class SndngDtlBean extends AbstractComponent { return sndngDtlMapper.delete(sndngDtl); } + + + + + + + + /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. + * @param req 발송 대장 조회 조건 + * @return 반송 목록 + */ + public List getSndbkList(SndbQuery req) { + return sndngDtlMapper.selectSndbkList(req); + } + + /**지정한 발송 상세 ID의 미배달 정보를 반환한다.
          + * @param sndngDtlId 발송 상세 ID + * @return 발송상세 미배달 정보 + */ + public DataObject getSndbkInfo(SndbQuery req) { + return sndngDtlMapper.selectSndbkInfo(req); + } + + /**발송상세 목록의 반송 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String createSndbkList(SndbQuery req) { + // 변수 선언 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + List sndngDtlList = sndngDtlMapper.selectSndngTrgtDtlIDs(req); + + // 조회 건수 확인 + if (sndngDtlList == null || sndngDtlList.size() < 1) { + rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다."; + return rtnMsg; + } + + // 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다. + for (int iLoop = 0; iLoop < sndngDtlList.size(); iLoop++) { + // + rtnMsg = createSndbk(sndngDtlList.get(iLoop).string("SNDNG_DTL_ID")); + // 메시지 확인 + if (rtnMsg.contains("[F]")) { + throw new RuntimeException("반송 확인 작업중 반송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**발송 상세의 반송 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String createSndbk(String... sndngDtlIDs) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + for (int iLoop = 0; iLoop < sndngDtlIDs.length; iLoop++) { + // 반송 내역 조회 + DataObject sndbkInfo = sndngDtlMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtlIDs[iLoop])); + + // 반송 등록이 가능한지 확인. + if (!("03,05".contains(sndbkInfo.string("SNDNG_DTL_STTS_CD")))) { + rtnMsg = "[N] 반송 등록 대상자료가 아닙니다."; + return rtnMsg; + } + // 등기 번호가 있는지 확인 + if (sndbkInfo.string("RG_NO").equals("")) { + rtnMsg = "[N] 등기번호가 존재하지 않습니다."; + return rtnMsg; + } + // 등기 번호가 13자리인지 확인 + if (sndbkInfo.string("RG_NO").length() != 13) { + rtnMsg = "[N] 등기번호 자릿수(13)가 맞지 않습니다."; + return rtnMsg; + } + + // 전자우편 배달 결과 조회 + DataObject epostDlvrRsltInfo = epostDlvrRsltMapper.selectEpostDlvrRsltInfo(new EpostQuery().setConKey(sndbkInfo.string("CON_KEY")) + .setRegino(sndbkInfo.string("RG_NO"))); + + // 조회 건수 확인 + if (epostDlvrRsltInfo == null) { + rtnMsg = "[N] 반송 자료가 존재하지 않습니다."; + return rtnMsg; + } + + // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. + SndngDtl sndngDtl = new SndngDtl(); + + if (epostDlvrRsltInfo.string("DELIVRSLTCD").equals("1")) { + sndngDtl.setSndngDtlId(sndbkInfo.string("SNDNG_DTL_ID")); + sndngDtl.setDlvrYmd(epostDlvrRsltInfo.string("DELIVYMD")); // 배달일자 + sndngDtl.setDlvrTm(epostDlvrRsltInfo.string("DELIVHHMI")); // 배달시간 +// sndngDtl.setUndlvrRsnCd(epostDlvrRsltInfo.string("NONDELIVREASNCD")); // 미배달 사유 코드 +// sndngDtl.setUndlvrRsnNm(epostDlvrRsltInfo.string("NONDELIVREASNCDNM")); // 미배달 사유 명 + sndngDtl.setRcpnNm(epostDlvrRsltInfo.string("SUBRECPRSNNM")); // 수령인 명 + sndngDtl.setRcpnRelNm(epostDlvrRsltInfo.string("RELRECPRSNCDNM")); // 수령인 관계 명 + sndngDtl.setSndngDtlSttsCd("04"); // 발송 상세 상태 코드 FIM050 - 04:발송확인 + sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 + } else { + sndngDtl.setSndngDtlId(sndbkInfo.string("SNDNG_DTL_ID")); + sndngDtl.setDlvrYmd(epostDlvrRsltInfo.string("DELIVYMD")); // 배달일자 + sndngDtl.setDlvrTm(epostDlvrRsltInfo.string("DELIVHHMI")); // 배달시간 + sndngDtl.setUndlvrRsnCd(epostDlvrRsltInfo.string("NONDELIVREASNCD")); // 미배달 사유 코드 + sndngDtl.setUndlvrRsnNm(epostDlvrRsltInfo.string("NONDELIVREASNCDNM")); // 미배달 사유 명 +// sndngDtl.setRcpnNm(epostDlvrRsltInfo.string("SUBRECPRSNNM")); // 수령인 명 +// sndngDtl.setRcpnRelNm(epostDlvrRsltInfo.string("RELRECPRSNCDNM")); // 수령인 관계 명 + sndngDtl.setSndngDtlSttsCd("05"); // 발송 상세 상태 코드 FIM050 - 05:반송 + sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 + } + + rtnScs = sndngDtlMapper.createSndbk(sndngDtl); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다."); + } + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**발송 상세의 반송 정보를 수정한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String updateSndbk(SndngDtl sndngDtl) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. + rtnScs = sndngDtlMapper.updateSndbk(sndngDtl); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송상세의 반송 정보 수정에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**발송 상세의 반송 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String deleteSndbk(SndngDtl sndngDtl) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 반송 내역 조회 + DataObject sndbkInfo = sndngDtlMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId()) + .setDelYN("N")); + + // 반송 삭제가 가능한지 확인. + + // + sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 <- 발송 상세 상태 코드 + sndngDtl.setSndngDtlSttsCd(sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD")); // 발송 상세 상태 코드 <- 전 발송 상세 상태 코드 + + // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. + rtnScs = sndngDtlMapper.deleteSndbk(sndngDtl); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송상세의 반송 정보 삭제에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + + + + + + + /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 목록 + */ + public List getSvbtcList(SndbQuery req) { + return svbtcMapper.selectSvbtcList(req); + } + + /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public List getSvbtcs(SndbQuery req) { + return svbtcMapper.selectSvbtcs(req); + } + + /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public DataObject getSvbtcInfo(SndbQuery req) { + return svbtcMapper.selectSvbtcInfo(req); + } + + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public List getSvbtcDtls(SndbQuery req) { + return svbtcMapper.selectSvbtcDtls(req); + } + + /**공시송달 대장 정보를 등록한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String createSvbtc(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 등록 한다. + rtnScs = svbtcMapper.insert(svbtc); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); + } + + // 발송 상세 대장에 공시송달 정보 수정 + for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { + // 발송 상세 + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("06"); + sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); + + rtnScs = sndngDtlMapper.updateSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**공시송달 대장 정보를 수정한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String updateSvbtc(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 수정 한다. + rtnScs = svbtcMapper.update(svbtc); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("공시송달 정보 수정에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String removeSvbtc(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 대장을 삭제 한다. + rtnScs = svbtcMapper.delete(svbtc); + if (!rtnScs) { + throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**공시송달ID 조건에 따라 발송상세 대장의 총 건수를 조회한다. + * @param req 발송 대장 조회 조건 + * @return 계도장 발송 대상 목록 + */ + public int selectTnocsSndngDtlSvbtc(String svbtcId) { + return sndngDtlMapper.selectTnocsSndngDtlSvbtc(svbtcId); + } + + /**발송 상세 대장의 공시송달 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String removeSndngDtlSvbtc(SndngDtl sndngDtl) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 발송 상세(TB_SNDNG_DTL) 대장에 공시송달 정보를 삭제 한다. + rtnScs = sndngDtlMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송상세의 공시송달 정보 삭제에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + + /**공시송달 대장 정보를 삭제하고 발송 상세 대장의 공시송달 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
          • 저장됐으면 true
          • + *
          • 그렇지 않으면 false
          • + *
          + */ + public String removeSvbtcSndngDtl(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 대장을 삭제 한다. + rtnScs = svbtcMapper.delete(svbtc); + if (!rtnScs) { + throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("05"); + + rtnScs = sndngDtlMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java index 38a2ecd8..e3540201 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java @@ -10,6 +10,7 @@ import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.service.SndngDtlService; @@ -55,4 +56,165 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl return sndngDtlBean.remove(sndngDtl); } + + + + + + @Override + public List getSndbkList(SndbQuery req) { + return sndngDtlBean.getSndbkList(req); + } + + @Override + public DataObject getSndbkInfo(SndbQuery req) { + if (req.getCallPurpose() == null) { + req.setCallPurpose("view"); + } + + return sndngDtlBean.getSndbkInfo(req); + } + + @Override + public String createSndbkList(SndbQuery req) { + return sndngDtlBean.createSndbkList(req); + } + + @Override + public String createSndbk(String... sndngDtlIDs) { + return sndngDtlBean.createSndbk(sndngDtlIDs); + } + + @Override + public String updateSndbk(SndngDtl sndngDtl) { + return sndngDtlBean.updateSndbk(sndngDtl); + } + + @Override + public String deleteSndbk(SndngDtl sndngDtl) { + return sndngDtlBean.deleteSndbk(sndngDtl); + } + + + + + + + @Override + public List getSvbtcList(SndbQuery req) { + return sndngDtlBean.getSvbtcList(req); + } + + @Override + public List getSvbtcs(SndbQuery req) { + return sndngDtlBean.getSvbtcs(req); + } + + @Override + public List getSvbtcDtls(SndbQuery req) { + return sndngDtlBean.getSvbtcDtls(req); + } + + @Override + public String createSvbtc(Svbtc svbtc) { + return sndngDtlBean.createSvbtc(svbtc); + } + + @Override + public String updateSvbtc(Svbtc svbtc) { + return sndngDtlBean.updateSvbtc(svbtc); + } + + @Override + public String removeSvbtc(Svbtc svbtc) { + return sndngDtlBean.removeSvbtc(svbtc); + } + + @Override + public String removeSvbtcList(SndbQuery req) { + // 변수 선언 + String retMessage = ""; // 처리 결과 메시지 + + // 공시송달 IDs 건수를 확인하여 1건이하면.. 종료 + if (req.getSvbtcIDs().length < 1) { + retMessage = "작업 중 선택 자료가 존재하지 않습니다."; + return retMessage; + } + + // 공시송달 IDs 만큼 반복.. + for (int iLoop = 0; iLoop < req.getSvbtcIDs().length; iLoop++) { + Svbtc svbtc = new Svbtc(); + + svbtc.setSvbtcId(req.getSvbtcIDs()[iLoop]); // 공시송달 ID + svbtc.setDelRsn(req.getDelRsn()); // 삭제 사유 + + // 공시송달 삭제 호출 + retMessage = sndngDtlBean.removeSvbtcSndngDtl(svbtc); + // 오류가 발생하였으면 종료.. + if (retMessage.contains("[F]")) { + return retMessage; + } + } + + return retMessage; + } + + @Override + public String removeSvbtcEach(Svbtc svbtc) { + // 변수 선언 + String retMessage = ""; // 처리 결과 메시지 + + // 공시송달 IDs 건수를 확인하여 1건이하면.. 종료 + if (svbtc.getSndngDtlIDs().length < 1) { + retMessage = "작업 중 선택 자료가 존재하지 않습니다."; + return retMessage; + } + + // 공시송달 IDs 만큼 반복.. + for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("05"); + + retMessage = sndngDtlBean.removeSndngDtlSvbtc(sndngDtl); + if (retMessage.contains("[F]")) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + + // 공시송달 총건수 수정 호출 + int svbtcTnocs = sndngDtlBean.selectTnocsSndngDtlSvbtc(svbtc.getSvbtcId()); + + if (svbtcTnocs == 0) { // 총건수가 0건이라면 공시송달 대장에서 삭제 + retMessage = sndngDtlBean.removeSvbtc(svbtc); + } else { // 총건수를 확인하여 공시송달 대장에서 수정 + // 공시송달 정보 호출 + DataObject svbtcInfo = sndngDtlBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId()) + .setDelYN("N")); + + Svbtc mdfSvbtc = new Svbtc(); + + mdfSvbtc.setSvbtcYmd(svbtcInfo.string("SVBTC_YMD")); + mdfSvbtc.setTtlNm(svbtcInfo.string("TTL_NM")); + mdfSvbtc.setDocNo(svbtcInfo.string("DOC_NO")); + mdfSvbtc.setEtcCn(svbtcInfo.string("ETC_CN")); + mdfSvbtc.setTnocs(svbtcTnocs); + mdfSvbtc.setSvbtcId(svbtc.getSvbtcId()); + + retMessage = sndngDtlBean.updateSvbtc(mdfSvbtc); + } + + // 오류가 발생하였으면 종료.. + if (retMessage.contains("[F]")) { + return retMessage; + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java index 31cacef1..a361bd00 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java @@ -8,8 +8,6 @@ import org.springframework.stereotype.Service; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; -import cokr.xit.fims.sndb.SndngDtl; -import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.service.SndngService; import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.data.DataObject; @@ -35,6 +33,16 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic @Resource(name = "sndngDtlBean") private SndngDtlBean sndngDtlBean; + @Override + public List getSndngList(SndbQuery req) { + return sndngBean.getSndngList(req); + } + + @Override + public List getSndngs(SndbQuery req) { + return sndngBean.getSndngs(req); + } + @Override public List getWrngTrgtList(SndbQuery req) { return sndngBean.getWrngTrgtList(req); @@ -78,22 +86,6 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic - - @Override - public List getSndbkList(SndbQuery req) { - return sndngBean.getSndbkList(req); - } - - @Override - public List getSndngList(SndbQuery req) { - return sndngBean.getSndngList(req); - } - - @Override - public String createSndng(Sndng sndng) { - return sndngBean.createSndng(sndng); - } - @Override public String createSndngLink(Sndng sndng) { return sndngBean.createEPost(sndng); @@ -114,155 +106,4 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic return sndngBean.removeSndng(sndng); } - @Override - public DataObject getSndbkInfo(SndbQuery req) { - if (req.getCallPurpose() == null) { - req.setCallPurpose("view"); - } - - return sndngBean.getSndbkInfo(req); - } - - @Override - public String createSndbk(SndngDtl sndngDtl) { - return sndngBean.createSndbk(sndngDtl); - } - - @Override - public String updateSndbk(SndngDtl sndngDtl) { - return sndngBean.updateSndbk(sndngDtl); - } - - @Override - public String deleteSndbk(SndngDtl sndngDtl) { - return sndngBean.deleteSndbk(sndngDtl); - } - - - - - - - @Override - public List getSndngs(SndbQuery req) { - return sndngBean.getSndngs(req); - } - - @Override - public List getSvbtcList(SndbQuery req) { - return sndngBean.getSvbtcList(req); - } - - @Override - public List getSvbtcs(SndbQuery req) { - return sndngBean.getSvbtcs(req); - } - - @Override - public List getSvbtcDtls(SndbQuery req) { - return sndngBean.getSvbtcDtls(req); - } - - @Override - public String createSvbtc(Svbtc svbtc) { - return sndngBean.createSvbtc(svbtc); - } - - @Override - public String updateSvbtc(Svbtc svbtc) { - return sndngBean.updateSvbtc(svbtc); - } - - @Override - public String removeSvbtc(Svbtc svbtc) { - return sndngBean.removeSvbtc(svbtc); - } - - @Override - public String removeSvbtcList(SndbQuery req) { - // 변수 선언 - String retMessage = ""; // 처리 결과 메시지 - - // 공시송달 IDs 건수를 확인하여 1건이하면.. 종료 - if (req.getSvbtcIDs().length < 1) { - retMessage = "작업 중 선택 자료가 존재하지 않습니다."; - return retMessage; - } - - // 공시송달 IDs 만큼 반복.. - for (int iLoop = 0; iLoop < req.getSvbtcIDs().length; iLoop++) { - Svbtc svbtc = new Svbtc(); - - svbtc.setSvbtcId(req.getSvbtcIDs()[iLoop]); // 공시송달 ID - svbtc.setDelRsn(req.getDelRsn()); // 삭제 사유 - - // 공시송달 삭제 호출 - retMessage = sndngBean.removeSvbtcSndngDtl(svbtc); - // 오류가 발생하였으면 종료.. - if (retMessage.contains("[F]")) { - return retMessage; - } - } - - return retMessage; - } - - @Override - public String removeSvbtcEach(Svbtc svbtc) { - // 변수 선언 - String retMessage = ""; // 처리 결과 메시지 - - // 공시송달 IDs 건수를 확인하여 1건이하면.. 종료 - if (svbtc.getSndngDtlIDs().length < 1) { - retMessage = "작업 중 선택 자료가 존재하지 않습니다."; - return retMessage; - } - - // 공시송달 IDs 만큼 반복.. - for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { - // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); - sndngDtl.setSvbtcId(svbtc.getSvbtcId()); - sndngDtl.setSndngDtlSttsCd("05"); - - retMessage = sndngBean.removeSndngDtlSvbtc(sndngDtl); - if (retMessage.contains("[F]")) { - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - - // 공시송달 총건수 수정 호출 - int svbtcTnocs = sndngBean.selectTnocsSndngDtlSvbtc(svbtc.getSvbtcId()); - - if (svbtcTnocs == 0) { // 총건수가 0건이라면 공시송달 대장에서 삭제 - retMessage = sndngBean.removeSvbtc(svbtc); - } else { // 총건수를 확인하여 공시송달 대장에서 수정 - // 공시송달 정보 호출 - DataObject svbtcInfo = sndngBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId()) - .setDelYN("N")); - - Svbtc mdfSvbtc = new Svbtc(); - - mdfSvbtc.setSvbtcYmd(svbtcInfo.string("SVBTC_YMD")); - mdfSvbtc.setTtlNm(svbtcInfo.string("TTL_NM")); - mdfSvbtc.setDocNo(svbtcInfo.string("DOC_NO")); - mdfSvbtc.setEtcCn(svbtcInfo.string("ETC_CN")); - mdfSvbtc.setTnocs(svbtcTnocs); - mdfSvbtc.setSvbtcId(svbtc.getSvbtcId()); - - retMessage = sndngBean.updateSvbtc(mdfSvbtc); - } - - // 오류가 발생하였으면 종료.. - if (retMessage.contains("[F]")) { - return retMessage; - } - - retMessage = "[S] 작업이 정상 처리 되었습니다."; - - return retMessage; - } - } diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index fa6be29d..642e78f0 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -45,43 +45,39 @@ public class Sndb01Controller extends ApplicationController { public class METHOD_URL { public static final String - warningTargetMain = "/010/main.do" // 계고장 발송 대상 메인 화면 - , getWarningTargetList = "/010/list.do" // 계고장 발송 대상 목록 조회 - , getWarningTargetInfo = "/020/info.do" // 계고장 발송 대상 조회 - , createWarningSendingList = "/020/createList.do" // 계고장 발송 등록 - , warningSendingMain = "/030/main.do" // 계고장 발송 현황 메인 화면 - , getWarningSendingList = "/030/list.do" // 계고장 발송 현황 목록 조회 - , getWarningSendingInfo = "/040/info.do" // 계고장 발송 현황 상세 화면 - , getWarningSendingDetailsList = "/040/list.do" // 계고장 발송 현황 상세 목록 조회 - , advanceNoticeTargetMain = "/050/main.do" // 사전통지 발송 대상 메인 화면 - , getAdvanceNoticeTargetList = "/050/list.do" // 사전통지 발송 대상 목록 조회 - , getAdvanceNoticeTargetInfo = "/060/info.do" // 사전통지 발송 대상 조회 - , createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지 발송 등록 - , advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면 - , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 대상 목록 조회 - , getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지 발송 현황 상세 화면 - , getAdvanceNoticeSendingDetailsList= "/080/list.do" // 사전통지 발송 현황 상세 목록 조회 - , noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면 - , getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회 - , getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 현황 상세 화면 - , getNoticeSheetSendingDetailsList = "/100/list.do" // 고지서 발송 현황 상세 목록 조회 - - , noticeSheetSendingTargetInfo = "/110/info.do" // 고지서 발송 대상 화면 - - - - , createSending = "/020/createSndng.do" // 발송 대상 등록 - , createSendingLink = "/080/createSndngLink.do" // 우편 통합 발송 연계 등록 + warningTargetMain = "/010/main.do" // 계고장발송 대상 메인 화면 + , getWarningTargetList = "/010/list.do" // 계고장발송 대상 목록 조회 + , getWarningTargetInfo = "/020/info.do" // 계고장발송 대상 조회 + , createWarningSendingList = "/020/createList.do" // 계고장발송 대상 목록의 발송 등록 + , warningSendingMain = "/030/main.do" // 계고장발송 현황 메인 화면 + , getWarningSendingList = "/030/list.do" // 계고장발송 현황 목록 조회 + , getWarningSendingInfo = "/040/info.do" // 계고장발송 현황 상세 화면 + , getWarningSendingDetailsList = "/040/list.do" // 계고장발송 현황 상세 목록 조회 + , advanceNoticeTargetMain = "/050/main.do" // 사전통지발송 대상 메인 화면 + , getAdvanceNoticeTargetList = "/050/list.do" // 사전통지발송 대상 목록 조회 + , getAdvanceNoticeTargetInfo = "/060/info.do" // 사전통지발송 대상 조회 + , createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지발송 대상 목록의 발송 등록 + , advanceNoticeSendingMain = "/070/main.do" // 사전통지발송 현황 메인 화면 + , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지발송 대상 목록 조회 + , getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지발송 현황 상세 화면 + , getAdvanceNoticeSendingDetailsList= "/080/list.do" // 사전통지발송 현황 상세 목록 조회 + , createSendingLink = "/080/createSndngLink.do" // 발송상세 목록의 우편통합 발송 연계 등록 + , createSendBackList = "/080/createSndbkList.do" // 발송상세 목록의 반송 확인(등록) + , noticeSheetSendingMain = "/090/main.do" // 고지서발송 현황 메인 화면 + , getNoticeSheetSendingList = "/090/list.do" // 고지서발송 대상 목록 조회 + , getNoticeSheetSendingInfo = "/100/info.do" // 고지서발송 현황 상세 화면 + , getNoticeSheetSendingDetailsList = "/100/list.do" // 고지서발송 현황 상세 목록 조회 + , noticeSheetSendingTargetInfo = "/110/info.do" // 고지서발송 대상 화면 + - , unitySendBackTargetMain = "/210/main.do" // 통합 반송 등록 메인 - , getSendBackInfo = "/220/info.do" // 발송상세의 반송 정보 조회 - , createSendBack = "/220/create.do" // 발송상세의 반송 등록 - , updateSendBack = "/220/update.do" // 발송상세의 반송 수정 - , deleteSendBack = "/210/delete.do" // 발송상세의 반송 삭제 + , unitySendBackTargetMain = "/210/main.do" // 통합 반송 등록 메인 + , getSendBackInfo = "/220/info.do" // 반송 정보 조회 + , createSendBack = "/220/create.do" // 반송 등록 + , updateSendBack = "/220/update.do" // 반송 수정 + , deleteSendBack = "/210/delete.do" // 반송 삭제 , sendBackMain = "/230/main.do" // 반송 현황 메인 화면 , getSendBackList = "/230/list.do" // 반송 현황 목록 조회 - , serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면 , getServiceByPublicNoticeList = "/240/list.do" // 공시송달 현황 목록 조회 , createServiceByPublicNotice = "/240/create.do" // 공시송달 등록 @@ -406,7 +402,7 @@ public class Sndb01Controller extends ApplicationController { , Map.entry("우편번호", xlsx.style("RTPYR_ZIP", center)) , Map.entry("주소", "RTPYR_ADDR") , Map.entry("상세주소", "RTPYR_DTL_ADDR") - , Map.entry("배달일자", xlsx.style("DLVR_YMD", center)) + , Map.entry("배달일자", xlsx.format(o -> xlsx.str2date(o.get("DLVR_YMD"))).style(dateYMD)) , Map.entry("배달시각", xlsx.style("DLVR_TM", center)) , Map.entry("미배달사유", "UNDLVR_RSN_NM") , Map.entry("수령인", "RCPN_NM") @@ -740,7 +736,7 @@ public class Sndb01Controller extends ApplicationController { , Map.entry("우편번호", xlsx.style("RTPYR_ZIP", center)) , Map.entry("주소", "RTPYR_ADDR") , Map.entry("상세주소", "RTPYR_DTL_ADDR") - , Map.entry("배달일자", xlsx.style("DLVR_YMD", center)) + , Map.entry("배달일자", xlsx.format(o -> xlsx.str2date(o.get("DLVR_YMD"))).style(dateYMD)) , Map.entry("배달시각", xlsx.style("DLVR_TM", center)) , Map.entry("미배달사유", "UNDLVR_RSN_NM") , Map.entry("수령인", "RCPN_NM") @@ -895,7 +891,7 @@ public class Sndb01Controller extends ApplicationController { public ModelAndView getNoticeSheetSendingDetailsList(SndbQuery req) { if (!"xls".equals(req.getDownload())) { List result = sndngDtlService.getSndngDtlList(setFetchSize(req)); - return setCollectionInfo(new ModelAndView("jsonView"), result, "advntceSndngDtl"); + return setCollectionInfo(new ModelAndView("jsonView"), result, "nhtSndngDtl"); } else { // 현재 날짜 구하기 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -925,7 +921,7 @@ public class Sndb01Controller extends ApplicationController { , Map.entry("우편번호", xlsx.style("RTPYR_ZIP", center)) , Map.entry("주소", "RTPYR_ADDR") , Map.entry("상세주소", "RTPYR_DTL_ADDR") - , Map.entry("배달일자", xlsx.style("DLVR_YMD", center)) + , Map.entry("배달일자", xlsx.format(o -> xlsx.str2date(o.get("DLVR_YMD"))).style(dateYMD)) , Map.entry("배달시각", xlsx.style("DLVR_TM", center)) , Map.entry("미배달사유", "UNDLVR_RSN_NM") , Map.entry("수령인", "RCPN_NM") @@ -994,28 +990,6 @@ public class Sndb01Controller extends ApplicationController { - /**발송 대상을 등록한다. - * @param sndng 발송 정보 - * @return jsonView - *
           {
          -	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
          -	 * }
          - */ - public ModelAndView createSending(Sndng sndng) { - boolean saved = false; - String rtnMsg = sndngService.createSndng(sndng); - - if (rtnMsg.contains("[S]")) { - saved = true; - } else { - saved = false; - } - - return new ModelAndView("jsonView") - .addObject("saved", saved) - .addObject("rtnMsg", rtnMsg); - } - /**우편통합 발송 대상을 등록한다. * @param sndng 발송 정보 * @return jsonView @@ -1046,7 +1020,7 @@ public class Sndb01Controller extends ApplicationController { * } */ public ModelAndView getSendBackInfo(SndbQuery req) { - DataObject sndbkInfo = sndngService.getSndbkInfo(req); + DataObject sndbkInfo = sndngDtlService.getSndbkInfo(req); // 등록을 호출하였지만 등록된 미배달 사유가 있는지 확인. if (req.getCallPurpose().equals("create") && !sndbkInfo.string("UNDLVR_RSN_NM").equals("")) { @@ -1072,16 +1046,38 @@ public class Sndb01Controller extends ApplicationController { } } - /**발송 상세 정보의 반송 정보를 등록한다. + /**발송상세 목록의 반송 정보를 등록한다. + * @param sndngDtl 발송상세 정보 + * @return jsonView + *
           {
          +	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
          +	 * }
          + */ + public ModelAndView createSendBackList(SndbQuery req) { + boolean saved = false; + String rtnMsg = sndngDtlService.createSndbkList(req); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**발송상세 정보의 반송 정보를 등록한다. * @param sndngDtl 발송상세 정보 * @return jsonView *
           {
           	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
           	 * }
          */ - public ModelAndView createSendBack(SndngDtl sndngDtl) { + public ModelAndView createSendBack(String... sndngDtlIDs) { boolean saved = false; - String rtnMsg = sndngService.createSndbk(sndngDtl); + String rtnMsg = sndngDtlService.createSndbk(sndngDtlIDs); if (rtnMsg.contains("[S]")) { saved = true; @@ -1094,7 +1090,7 @@ public class Sndb01Controller extends ApplicationController { .addObject("rtnMsg", rtnMsg); } - /**발송 상세 정보의 반송 정보를 수정한다. + /**발송상세 정보의 반송 정보를 수정한다. * @param sndngDtl 발송상세 정보 * @return jsonView *
           {
          @@ -1103,7 +1099,7 @@ public class Sndb01Controller extends ApplicationController {
           	 */
           	public ModelAndView updateSendBack(SndngDtl sndngDtl) {
           		boolean saved = false;
          -		String rtnMsg = sndngService.updateSndbk(sndngDtl);
          +		String rtnMsg = sndngDtlService.updateSndbk(sndngDtl);
           
           		if (rtnMsg.contains("[S]")) {
           			saved = true;
          @@ -1116,7 +1112,7 @@ public class Sndb01Controller extends ApplicationController {
           				.addObject("rtnMsg", rtnMsg);
           	}
           
          -	/**발송 상세 정보의 반송 정보를 삭제한다.
          +	/**발송상세 정보의 반송 정보를 삭제한다.
           	 * @param sndngDtl 발송상세 정보
           	 * @return jsonView
           	 * 
           {
          @@ -1125,7 +1121,7 @@ public class Sndb01Controller extends ApplicationController {
           	 */
           	public ModelAndView deleteSendBack(SndngDtl sndngDtl) {
           		boolean saved = false;
          -		String rtnMsg = sndngService.deleteSndbk(sndngDtl);
          +		String rtnMsg = sndngDtlService.deleteSndbk(sndngDtl);
           
           		if (rtnMsg.contains("[S]")) {
           			saved = true;
          @@ -1178,7 +1174,7 @@ public class Sndb01Controller extends ApplicationController {
           	 * }
          */ public ModelAndView getSendBackList(SndbQuery req) { - List result = sndngService.getSndbkList(setFetchSize(req)); + List result = sndngDtlService.getSndbkList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "sndbk"); } @@ -1216,7 +1212,7 @@ public class Sndb01Controller extends ApplicationController { * }
          */ public ModelAndView getServiceByPublicNoticeList(SndbQuery req) { - List result = sndngService.getSvbtcList(setFetchSize(req)); + List result = sndngDtlService.getSvbtcList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "svbtc"); } @@ -1229,7 +1225,7 @@ public class Sndb01Controller extends ApplicationController { * } */ public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { - List sndngDtls = sndngService.getSvbtcDtls(req); + List sndngDtls = sndngDtlService.getSvbtcDtls(req); boolean json = jsonResponse(); @@ -1251,7 +1247,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngService.createSvbtc(svbtc); + String rtnMsg = sndngDtlService.createSvbtc(svbtc); if (rtnMsg.contains("[S]")) { saved = true; @@ -1273,7 +1269,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView updateServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngService.updateSvbtc(svbtc); + String rtnMsg = sndngDtlService.updateSvbtc(svbtc); if (rtnMsg.contains("[S]")) { saved = true; @@ -1296,7 +1292,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngService.removeSvbtc(svbtc); + String rtnMsg = sndngDtlService.removeSvbtc(svbtc); if (rtnMsg.contains("[S]")) { saved = true; @@ -1319,7 +1315,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNoticeList(SndbQuery req) { boolean saved = false; - String rtnMsg = sndngService.removeSvbtcList(req); + String rtnMsg = sndngDtlService.removeSvbtcList(req); if (rtnMsg.contains("[S]")) { saved = true; @@ -1342,7 +1338,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNoticeEach(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngService.removeSvbtcEach(svbtc); + String rtnMsg = sndngDtlService.removeSvbtcEach(svbtc); if (rtnMsg.contains("[S]")) { saved = true; diff --git a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java index 60799eae..89e514da 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java @@ -304,7 +304,7 @@ public class Sprt02Controller extends ApplicationController { sndb01Query.setDelYN(req.getDelYN()); sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC"); - List svbtc = sndngService.getSvbtcDtls(sndb01Query); + List svbtc = sndngDtlService.getSvbtcDtls(sndb01Query); boolean json = jsonResponse(); diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index 4d1a8e12..fa485e75 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -631,12 +631,6 @@ public class DpvController { return super.noticeSheetSendingTargetInfo(req); } - @Override - @RequestMapping(name="발송 등록", value=METHOD_URL.createSending) - public ModelAndView createSending(Sndng sndng) { - return super.createSending(sndng); - } - @Override @RequestMapping(name="우편통합 발송 연계 등록", value=METHOD_URL.createSendingLink) public ModelAndView createSendingLink(Sndng sndng) { @@ -650,19 +644,25 @@ public class DpvController { } @Override - @RequestMapping(name="발송상세의 반송(미배달) 정보 등록", value=METHOD_URL.createSendBack) - public ModelAndView createSendBack(SndngDtl sndngDtl) { - return super.createSendBack(sndngDtl); + @RequestMapping(name="발송상세 목록의 반송 정보 등록 ", value=METHOD_URL.createSendBackList) + public ModelAndView createSendBackList(SndbQuery req) { + return super.createSendBackList(req); + } + + @Override + @RequestMapping(name="발송상세의 반송 정보 등록", value=METHOD_URL.createSendBack) + public ModelAndView createSendBack(String... sndngDtlIDs) { + return super.createSendBack(sndngDtlIDs); } @Override - @RequestMapping(name="발송상세의 반송(미배달) 정보 수정", value=METHOD_URL.updateSendBack) + @RequestMapping(name="발송상세의 반송 정보 수정", value=METHOD_URL.updateSendBack) public ModelAndView updateSendBack(SndngDtl sndngDtl) { return super.updateSendBack(sndngDtl); } @Override - @RequestMapping(name="발송상세의 반송(미배달) 정보 삭제", value=METHOD_URL.deleteSendBack) + @RequestMapping(name="발송상세의 반송 정보 삭제", value=METHOD_URL.deleteSendBack) public ModelAndView deleteSendBack(SndngDtl sndngDtl) { return super.deleteSendBack(sndngDtl); } diff --git a/src/main/resources/sql/mapper/fims/epst/epostDlvrRslt-mapper.xml b/src/main/resources/sql/mapper/fims/epst/epostDlvrRslt-mapper.xml new file mode 100644 index 00000000..26b97f04 --- /dev/null +++ b/src/main/resources/sql/mapper/fims/epst/epostDlvrRslt-mapper.xml @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT DLVR_RSLT_ID + , CON_KEY + , OUTSIDUSERID + , RELETCDATA + , REGINO + , DELIVYMD + , DELIVHHMI + , DELIVRSLTCD + , NONDELIVREASNCD + , NONDELIVREASNCDNM + , SUBRECPRSNNM + , RELRECPRSNCD + , RELRECPRSNCDNM + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + FROM TB_EPOST_DLVR_RSLT + + + + + + +/* 전자우편 배달 결과 등록(epostDlvrRsltMapper.insertEpostDlvrRslt) */ +INSERT INTO TB_EPOST_DLVR_RSLT ( + DLVR_RSLT_ID + , CON_KEY + , OUTSIDUSERID + , RELETCDATA + , REGINO + , DELIVYMD + , DELIVHHMI + , DELIVRSLTCD + , NONDELIVREASNCD + , NONDELIVREASNCDNM + , SUBRECPRSNNM + , RELRECPRSNCD + , RELRECPRSNCDNM + , REG_DT + , RGTR + , MDFCN_DT + , MDFR +) VALUES ( + #{epostDlvrRslt.dlvrRsltId} + , #{epostDlvrRslt.conKey} + , #{epostDlvrRslt.outsiduserid} + , #{epostDlvrRslt.reletcdata} + , #{epostDlvrRslt.regino} + , #{epostDlvrRslt.delivymd} + , #{epostDlvrRslt.delivhhmi} + , #{epostDlvrRslt.delivrsltcd} + , #{epostDlvrRslt.nondelivreasncd} + , #{epostDlvrRslt.nondelivreasncdnm} + , #{epostDlvrRslt.subrecprsnnm} + , #{epostDlvrRslt.relrecprsncd} + , #{epostDlvrRslt.relrecprsncdnm} + , + , #{currentUser.id} + , + , #{currentUser.id} +) + + +/* 전자우편 배달 결과 수정(epostDlvrRsltMapper.updateEpostDlvrRslt) */ +UPDATE TB_EPOST_DLVR_RSLT SET + CON_KEY = #{epostDlvrRslt.conKey} + , OUTSIDUSERID = #{epostDlvrRslt.outsiduserid} + , RELETCDATA = #{epostDlvrRslt.reletcdata} + , REGINO = #{epostDlvrRslt.regino} + , DELIVYMD = #{epostDlvrRslt.delivymd} + , DELIVHHMI = #{epostDlvrRslt.delivhhmi} + , DELIVRSLTCD = #{epostDlvrRslt.delivrsltcd} + , NONDELIVREASNCD = #{epostDlvrRslt.nondelivreasncd} + , NONDELIVREASNCDNM = #{epostDlvrRslt.nondelivreasncdnm} + , SUBRECPRSNNM = #{epostDlvrRslt.subrecprsnnm} + , RELRECPRSNCD = #{epostDlvrRslt.relrecprsncd} + , RELRECPRSNCDNM = #{epostDlvrRslt.relrecprsncdnm} + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE DLVR_RSLT_ID = #{epostDlvrRslt.dlvrRsltId} + + +/* 전자우편 배달 결과 삭제(epostDlvrRsltMapper.deleteEpostDlvrRslt) */ +UPDATE TB_EPOST_DLVR_RSLT SET + USE_YN = 'N' + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE DLVR_RSLT_ID = #{epostDlvrRslt.dlvrRsltId} + + + diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 91431aaa..df27d54e 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -757,13 +757,6 @@ - - - - - - - /* 발송 대장 등록(sndngMapper.insertSndng) */ SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID @@ -856,15 +849,6 @@ AND DEL_YN = 'N' - /* 발송 대장 정보의 발송 상태 코드를 수정(sndngMapper.updateSndngSttsCd) */ - UPDATE TB_SNDNG - SET SNDNG_STTS_CD = #{sndng.sndngSttsCd} /* 발송 상태 코드 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndng.modifiedBy} /* 수정자 */ - WHERE SNDNG_ID = #{sndng.sndngId} /* 발송 ID */ - AND DEL_YN = 'N' - - /* 발송 대장 삭제(sndngMapper.deleteSndng) */ UPDATE TB_SNDNG SET DEL_YN = 'Y' /* 삭제 여부 */ @@ -875,29 +859,13 @@ AND DEL_YN = 'N' - /* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */ - UPDATE TB_SNDNG_DTL - SET SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ - , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} - AND DEL_YN = 'N' - - - /* 발송 상세의 공시송달 정보를 삭제(sndngMapper.deleteSndngDtlSvbtc) */ - UPDATE TB_SNDNG_DTL - SET SVBTC_ID = NULL /* 공시송달 ID */ - , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ - - AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} - - AND DEL_YN = 'N' + /* 발송 대장 정보의 발송 상태 코드를 수정(sndngMapper.updateSndngSttsCd) */ + UPDATE TB_SNDNG + SET SNDNG_STTS_CD = #{sndng.sndngSttsCd} /* 발송 상태 코드 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndng.modifiedBy} /* 수정자 */ + WHERE SNDNG_ID = #{sndng.sndngId} /* 발송 ID */ + AND DEL_YN = 'N' /* 전자우편 발송 내역 수정(sndngMapper.updateEPostSndng) */ @@ -909,298 +877,4 @@ AND DEL_YN = 'N' - - - - SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */ - , SD.CRDN_ID /* 단속 ID */ - , SD.SVBTC_ID /* 공시송달 ID */ - , SD.RG_NO /* 등기 번호 */ - , SD.DLVR_YMD /* 배달 일자 */ - , SD.DLVR_TM /* 배달 시각 */ - , SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */ - , SD.UNDLVR_RSN_NM /* 미배달 사유 명 */ - , SD.RCPN_NM /* 수령인 명 */ - , SD.RCPN_REL_NM /* 수령인 관계 명 */ - , SD.SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */ - , SD.BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */ - , SD.BFR_DLVR_YMD /* 전 배달 일자 */ - , SD.BFR_DLVR_HR /* 전 배달 시간 */ - , S.SNDNG_ID /* 발송 ID */ - , S.SGG_CD /* 시군구 코드 */ - , S.TASK_SE_CD /* 업무 구분 코드 */ - FROM TB_SNDNG_DTL SD - INNER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID) - - - - - /* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */ - UPDATE TB_SNDNG_DTL - SET DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ - , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ - , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ - , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} - AND DEL_YN = 'N' - - - /* 발송상세의 반송 정보 수정(sndngMapper.updateSndbk) */ - UPDATE TB_SNDNG_DTL - SET DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ - , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ - , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ - , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ - AND DEL_YN = 'N' - - - /* 발송상세의 반송 정보 삭제(sndngMapper.deleteSndbk) */ - UPDATE TB_SNDNG_DTL - SET UNDLVR_RSN_CD = NULL /* 미배달 사유 코드 */ - , UNDLVR_RSN_NM = NULL /* 미배달 사유 명 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ - AND DEL_YN = 'N' - - - - diff --git a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml index 3136777b..ffe26cc4 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml @@ -240,7 +240,7 @@ - /* 발송 ID로 발송상세 ID를 가져오기(sndngDtlMapper.selectSndngTrgtDtlIDs) */ SELECT SNDNG_DTL_ID /* 발송 상세 ID */ FROM TB_SNDNG_DTL WHERE SNDNG_ID = #{sndngId} /* 발송 ID */ @@ -638,4 +638,327 @@ AND DEL_YN = 'N' + + + + + + + SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */ + , SD.CRDN_ID /* 단속 ID */ + , SD.SVBTC_ID /* 공시송달 ID */ + , SD.CON_KEY /* 외부연계식별키 */ + , SD.RG_NO /* 등기 번호 */ + , SD.DLVR_YMD /* 배달 일자 */ + , SD.DLVR_TM /* 배달 시각 */ + , SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */ + , SD.UNDLVR_RSN_NM /* 미배달 사유 명 */ + , SD.RCPN_NM /* 수령인 명 */ + , SD.RCPN_REL_NM /* 수령인 관계 명 */ + , SD.SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */ + , SD.BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */ + , SD.BFR_DLVR_YMD /* 전 배달 일자 */ + , SD.BFR_DLVR_HR /* 전 배달 시간 */ + , S.SNDNG_ID /* 발송 ID */ + , S.SGG_CD /* 시군구 코드 */ + , S.TASK_SE_CD /* 업무 구분 코드 */ + FROM TB_SNDNG_DTL SD + INNER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID) + + + + + /* 발송상세의 반송 정보 수정(sndngDtlMapper.createSndbk) */ + UPDATE TB_SNDNG_DTL + SET DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ + , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ + , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ + , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + AND DEL_YN = 'N' + + + /* 발송상세의 반송 정보 수정(sndngDtlMapper.updateSndbk) */ + UPDATE TB_SNDNG_DTL + SET DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ + , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ + , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ + , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ + AND DEL_YN = 'N' + + + /* 발송상세의 반송 정보 삭제(sndngDtlMapper.deleteSndbk) */ + UPDATE TB_SNDNG_DTL + SET UNDLVR_RSN_CD = NULL /* 미배달 사유 코드 */ + , UNDLVR_RSN_NM = NULL /* 미배달 사유 명 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ + AND DEL_YN = 'N' + + + + + /* 발송상세의 공시송달 정보를 수정(sndngDtlMapper.updateSndngDtlSvbtc) */ + UPDATE TB_SNDNG_DTL + SET SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ + , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + AND DEL_YN = 'N' + + + /* 발송상세의 공시송달 정보를 삭제(sndngDtlMapper.deleteSndngDtlSvbtc) */ + UPDATE TB_SNDNG_DTL + SET SVBTC_ID = NULL /* 공시송달 ID */ + , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ + + AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + + AND DEL_YN = 'N' + + diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp index a535314a..9375d561 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp @@ -38,7 +38,7 @@