diff --git a/src/main/java/cokr/xit/fims/cmmn/CrdnPayerAddrHstry.java b/src/main/java/cokr/xit/fims/cmmn/CrdnPayerAddrHstry.java
index a1506af4..71590468 100644
--- a/src/main/java/cokr/xit/fims/cmmn/CrdnPayerAddrHstry.java
+++ b/src/main/java/cokr/xit/fims/cmmn/CrdnPayerAddrHstry.java
@@ -1,5 +1,6 @@
package cokr.xit.fims.cmmn;
+import cokr.xit.fims.payer.Payer;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
@@ -27,4 +28,16 @@ public class CrdnPayerAddrHstry extends AbstractEntity {
* 주소 일련번호
*/
private String addrSn;
+
+ public static CrdnPayerAddrHstry create(Payer payer) {
+ String crdnId = payer != null ? payer.getCrdnId() : null;
+ if (isEmpty(crdnId)) return null;
+
+ CrdnPayerAddrHstry crdnPayerAddrHstry = new CrdnPayerAddrHstry();
+ crdnPayerAddrHstry.setCrdnId(crdnId);
+ crdnPayerAddrHstry.setRtpyrId(payer.getRtpyrId());
+ crdnPayerAddrHstry.setAddrSn(payer.getAddrSn());
+
+ return crdnPayerAddrHstry;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java
index a96c398d..fff9663a 100644
--- a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java
+++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java
@@ -79,6 +79,8 @@ public class CrdnPayerAddrHstryBean extends AbstractBean {
*
*/
public boolean createHstryUpdateCrdnPayerAddr(CrdnPayerAddrHstry crdnPayerAddrHstry) {
+ if (crdnPayerAddrHstry == null) return false;
+
// 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장을 등록한다.
int rtnNocs = crdnPayerAddrHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry);
if (rtnNocs != 1)
diff --git a/src/main/java/cokr/xit/fims/crdn/Crdn.java b/src/main/java/cokr/xit/fims/crdn/Crdn.java
index efce107a..47cbc586 100644
--- a/src/main/java/cokr/xit/fims/crdn/Crdn.java
+++ b/src/main/java/cokr/xit/fims/crdn/Crdn.java
@@ -212,6 +212,7 @@ public class Crdn extends AbstractEntity {
public void setInfo(Payer payer) {
if (payer == null) return;
+ payer.setCrdnId(getCrdnId());
LvisA01.BasicInfo vehicle = payer.getVehicleInfo();
setSggCd(payer.getSggCd()); // 시군구 데이터 정리되면 지울 것
setRtpyrId(!Assert.isEmpty(vehicle.getErsr_regist_de()) ? "" : payer.getRtpyrId());
diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java
index 641c0564..203a055f 100644
--- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java
+++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java
@@ -226,6 +226,8 @@ public class CrdnServiceBean extends AbstractServiceBean implements CrdnService
continue;
crdn.setInfo(payer);
+// payerBean.createAddrHistory(payer);
+
LevyExcl excl = taskProcessor.getLevyExcl(crdn);
if (excl == null) {
crdn.setCrdnSttsCd("21"); // 초기상태 -> 납부자등록
diff --git a/src/main/java/cokr/xit/fims/payer/PayerQuery.java b/src/main/java/cokr/xit/fims/payer/PayerQuery.java
index 949db0f2..762570d7 100644
--- a/src/main/java/cokr/xit/fims/payer/PayerQuery.java
+++ b/src/main/java/cokr/xit/fims/payer/PayerQuery.java
@@ -151,8 +151,9 @@ public class PayerQuery extends QueryRequest {
* @param rtpyrSeCd 납부자 구분 코드
* @return 현재 PayerQuery
*/
- public void setRtpyrSeCd(String rtpyrSeCd) {
+ public PayerQuery setRtpyrSeCd(String rtpyrSeCd) {
this.rtpyrSeCd = rtpyrSeCd;
+ return self();
}
/**납부자 번호를 반환한다.
@@ -167,7 +168,9 @@ public class PayerQuery extends QueryRequest {
* @return 현재 PayerQuery
*/
public void setRtpyrNo(String rtpyrNo) {
+// public PayerQuery setRtpyrNo(String rtpyrNo) {
this.rtpyrNo = rtpyrNo;
+// return self();
}
/**주소 입력 구분 코드를 반환한다.
@@ -181,8 +184,9 @@ public class PayerQuery extends QueryRequest {
* @param addrInptSeCd 주소 입력 구분 코드
* @return 현재 PayerQuery
*/
- public void setAddrInptSeCd(String addrInptSeCd) {
+ public PayerQuery setAddrInptSeCd(String addrInptSeCd) {
this.addrInptSeCd = addrInptSeCd;
+ return self();
}
/**도로명 코드를 반환한다.
@@ -196,8 +200,9 @@ public class PayerQuery extends QueryRequest {
* @param roadNmCd 도로명 코드
* @return 현재 PayerQuery
*/
- public void setRoadNmCd(String roadNmCd) {
+ public PayerQuery setRoadNmCd(String roadNmCd) {
this.roadNmCd = roadNmCd;
+ return self();
}
/**주소를 반환한다.
@@ -211,8 +216,9 @@ public class PayerQuery extends QueryRequest {
* @param addr 주소
* @return 현재 PayerQuery
*/
- public void setAddr(String addr) {
+ public PayerQuery setAddr(String addr) {
this.addr = addr;
+ return self();
}
/**상세 주소를 반환한다.
@@ -226,8 +232,9 @@ public class PayerQuery extends QueryRequest {
* @param dtlAddr 상세 주소
* @return 현재 PayerQuery
*/
- public void setDtlAddr(String dtlAddr) {
+ public PayerQuery setDtlAddr(String dtlAddr) {
this.dtlAddr = dtlAddr;
+ return self();
}
public String getCrdnId() {
diff --git a/src/main/java/cokr/xit/fims/payer/dao/PayerAddrMapper.java b/src/main/java/cokr/xit/fims/payer/dao/PayerAddrMapper.java
index c3e70fb4..e0184b2f 100644
--- a/src/main/java/cokr/xit/fims/payer/dao/PayerAddrMapper.java
+++ b/src/main/java/cokr/xit/fims/payer/dao/PayerAddrMapper.java
@@ -4,10 +4,10 @@ import java.util.List;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
-import cokr.xit.foundation.component.AbstractMapper;
-import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.payer.Payer;
import cokr.xit.fims.payer.PayerQuery;
+import cokr.xit.foundation.component.AbstractMapper;
+import cokr.xit.foundation.data.DataObject;
/** 납부자 주소 정보 DAO
*
@@ -21,7 +21,6 @@ import cokr.xit.fims.payer.PayerQuery;
*/
@Mapper("payerAddrMapper")
public interface PayerAddrMapper extends AbstractMapper {
-
/**지정한 조건에 따라 납부자 주소 목록을 조회하여 반환한다.
* @param req 납부자 주소 조회 조건
* @return 납부자 주소 목록
@@ -64,8 +63,6 @@ public interface PayerAddrMapper extends AbstractMapper {
*/
List selectPayerAddrHstrys(PayerQuery req);
-
-
/**지정한 조건에 따라 납부자 주소 정보를 반환한다.
* @param req 부과제외 조회 조건
* @return 납부자 주소 정보
@@ -86,5 +83,4 @@ public interface PayerAddrMapper extends AbstractMapper {
return !payers.isEmpty() ? payers.get(0) : null;
}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/cokr/xit/fims/payer/dao/PayerMapper.java b/src/main/java/cokr/xit/fims/payer/dao/PayerMapper.java
index 2faa2e74..2ed458f2 100644
--- a/src/main/java/cokr/xit/fims/payer/dao/PayerMapper.java
+++ b/src/main/java/cokr/xit/fims/payer/dao/PayerMapper.java
@@ -34,6 +34,11 @@ public interface PayerMapper extends AbstractMapper {
*/
List selectPayers(PayerQuery req);
+ default Payer selectPayer(PayerQuery req) {
+ List payers = selectPayers(req);
+ return !payers.isEmpty() ? payers.get(0) : null;
+ }
+
/**납부자 대장 정보를 등록한다.
* @param payer 납부자 대장
* @return 저장된 정보수
diff --git a/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java b/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java
index 01982af7..fbfb3c6f 100644
--- a/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java
+++ b/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java
@@ -143,8 +143,9 @@ public class PayerBean extends AbstractBean {
*
*/
public boolean create(Payer payer) {
- return payerMapper.insert(payer) // 납부자 등록
- && createPayerAddr(payer); // 납부자 주소 등록
+ boolean created = payerMapper.insert(payer); // 납부자 등록
+ createPayerAddr(payer, created); // 주소 등록
+ return created;
}
/**납부자 정보를 수정한다.
@@ -166,7 +167,18 @@ public class PayerBean extends AbstractBean {
*
*/
public boolean createPayerAddr(Payer payer) {
- // 납부자 주소 등록
+ return createPayerAddr(payer, true);
+ }
+
+ private boolean createPayerAddr(Payer payer, boolean newPayer) {
+ if (!newPayer) {
+ PayerQuery req = new PayerQuery().setRtpyrSeCd(payer.getRtpyrSeCd());
+ req.setRtpyrNo(payer.getRtpyrNo());
+ Payer loaded = payerMapper.selectPayer(req);
+ payer.setRtpyrId(loaded.getRtpyrId());
+// payer.setAddrSn(loaded.getAddrSn());
+ }
+
DataObject params = new DataObject()
.set("roadNmCd", payer.getRoadNmCd())
.set("udgdSeCd", payer.getUdgdSeCd())
@@ -180,7 +192,6 @@ public class PayerBean extends AbstractBean {
payer.setStdgCd(info.string("STDG_CD"));
payer.setDongCd(info.string("DONG_CD"));
}
-
return payerAddrMapper.insertPayerAddr(payer) == 1;
}
@@ -360,75 +371,59 @@ public class PayerBean extends AbstractBean {
*
*/
public String createCrdnPayer(Payer payer) {
- // 생년월일
- if ("01,02".contains(payer.getRtpyrSeCd())) {
- payer.setRtpyrBrdt(payer.getRtpyrNo().substring(0, 6));
- }
- // 지하 구분 코드
+ if ("01,02".contains(payer.getRtpyrSeCd()))
+ payer.setRtpyrBrdt(payer.getRtpyrNo().substring(0, 6)); // 생년월일
if (isEmpty(payer.getUdgdSeCd()))
- payer.setUdgdSeCd("0");
- // 전체 주소
+ payer.setUdgdSeCd("0"); // 지하 구분 코드
if (isEmpty(payer.getWholAddr()))
- payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr());
+ payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr()); // 전체 주소
- // 납부자 주소 이력
- CrdnPayerAddrHstry crdnPayerAddrHstry = new CrdnPayerAddrHstry();
// 단속 ID로 단속, 납부자, 주소 정보 조회
- DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(payer.getCrdnId());
+ String crdnId = payer.getCrdnId();
+ DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(crdnId);
- boolean bInstHstry = false; // DB 처리 결과
+ boolean bInstHstry = false;
+ Payer result = null;
// 주민등록번호가 동일하다면..
- if (crdnPayerAddrInfo.string("RTPYR_NO").equals(payer.getRtpyrNo())) {
+ if (crdnPayerAddrInfo != null && equals(crdnPayerAddrInfo.get("RTPYR_NO"), payer.getRtpyrNo())) {
// 납부자 대장(TB_PAYER)에 납부자 정보를 수정한다.
if (!update(payer))
- throw new RuntimeException("납부자 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ throw new RuntimeException("납부자 정보 수정에 실패하였습니다.");
// 주소가 변경되었는지 확인
- if (crdnPayerAddrInfo.string("ADDR_INPT_SE_CD").equals(payer.getAddrInptSeCd())
- && crdnPayerAddrInfo.string("ZIP").equals(payer.getZip())
- && crdnPayerAddrInfo.string("ADDR").equals(payer.getAddr())
- && crdnPayerAddrInfo.string("DTL_ADDR").equals(payer.getDtlAddr())
- && crdnPayerAddrInfo.string("ROAD_NM_CD").equals(payer.getRoadNmCd())
- && crdnPayerAddrInfo.string("STDG_CD").equals(payer.getStdgCd())) {
+ if (equals(crdnPayerAddrInfo.get("ADDR_INPT_SE_CD"), payer.getAddrInptSeCd())
+ && equals(crdnPayerAddrInfo.get("ZIP"), payer.getZip())
+ && equals(crdnPayerAddrInfo.get("ADDR"), payer.getAddr())
+ && equals(crdnPayerAddrInfo.get("DTL_ADDR"), payer.getDtlAddr())
+ && equals(crdnPayerAddrInfo.get("ROAD_NM_CD"), payer.getRoadNmCd())
+ && equals(crdnPayerAddrInfo.get("STDG_CD"), payer.getStdgCd())) {
// 주소 일련번호 설정
payer.setAddrSn(crdnPayerAddrInfo.string("ADDR_SN"));
// 납부자 번호와 주소가 같다면 단속 납부자주소 이력을 등록하지 않는다.
bInstHstry = false;
} else {
- Payer result = getPayerAddrInfo(payer);
-
- crdnPayerAddrHstry.setCrdnId(payer.getCrdnId());
- crdnPayerAddrHstry.setRtpyrId(result.getRtpyrId());
- crdnPayerAddrHstry.setAddrSn(result.getAddrSn());
-
+ result = getPayerAddrInfo(payer);
// 납부자 번호가 같고, 주소가 다르다면 단속 납부자주소 이력을 등록한다.
bInstHstry = true; // 이력 등록 여부
}
} else {
- Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
+ result = create(payer) ? payer : getPayerAddrInfo(payer);
// 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
- crdnPayerAddrHstry.setCrdnId(payer.getCrdnId());
- crdnPayerAddrHstry.setRtpyrId(result.getRtpyrId());
- crdnPayerAddrHstry.setAddrSn(result.getAddrSn());
Payer updtPayer = new Payer();
updtPayer.setRtpyrId("");
updtPayer.setRtpyrNm(payer.getRtpyrNm());
- // 전화번호
- String str = result.getRtpyrTelno();
+ String str = result.getRtpyrTelno(); // 전화번호
if (!isEmpty(str))
updtPayer.setRtpyrTelno(str);
- // 휴대전화번호
- if (!isEmpty(str = result.getRtpyrMblTelno()))
+ if (!isEmpty(str = result.getRtpyrMblTelno())) // 휴대전화번호
updtPayer.setRtpyrMblTelno(str);
- // 이메일
- if (!isEmpty(str = result.getRtpyrEml()))
+ if (!isEmpty(str = result.getRtpyrEml())) // 이메일
updtPayer.setRtpyrEml(str);
- // 납부자 상태 코드
- if (!isEmpty(str = result.getRtpyrSttsCd()))
+ if (!isEmpty(str = result.getRtpyrSttsCd())) // 납부자 상태 코드
updtPayer.setRtpyrSttsCd(str);
if (!isEmpty(str))
@@ -445,10 +440,8 @@ public class PayerBean extends AbstractBean {
}
// 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장에 등록한다.
- if (bInstHstry) {
- if (!crdnPayerAddrHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry))
- throw new RuntimeException("납부자 등록 실행중 단속 대장에 주소 일련번호 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
+ if (bInstHstry)
+ createAddrHistory(result);
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
if (toInt(crdnPayerAddrInfo.get("CRDN_STTS_CD")) < 21) { // 납부자 등록 완료
@@ -459,12 +452,16 @@ public class PayerBean extends AbstractBean {
crdnSttsHstry.setCrdnSttsCd("21");
if (!crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry))
- throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
return "[S] 작업이 정상 처리 되었습니다.";
}
+ public void createAddrHistory(Payer payer) {
+ crdnPayerAddrHstryBean.createHstryUpdateCrdnPayerAddr(CrdnPayerAddrHstry.create(payer));
+ }
+
/**지정한 조건에 따라 납부자 이력 목록을 조회하여 반환한다.
* @param req 납부자 조회 조건
* @return 납부자 변경 이력 목록
diff --git a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java
index 9400ddab..8793b7c9 100644
--- a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java
+++ b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java
@@ -84,6 +84,7 @@ public class SndbQuery extends CmmnQuery {
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
+ private String rsndYn; // 재발송 여부
public String[] getCrdnIds() {
return ifEmpty(crdnIds, () -> null);
@@ -645,4 +646,19 @@ public class SndbQuery extends CmmnQuery {
}
// ETC /////////////////////////////////////////////////////////////////////
+ /**재발송 여부를 반환한다.
+ * @return 재발송 여부
+ */
+ public String getRsndYn() {
+ return rsndYn;
+ }
+
+ /**재발송 여부를 설정한다.
+ * @param rsndYn 재발송 여부
+ */
+ public void setRsndYn(String rsndYn) {
+ this.rsndYn = rsndYn;
+ }
+
+
}
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 8fe32828..793a521f 100644
--- a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java
+++ b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java
@@ -5,6 +5,7 @@ import java.util.List;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.foundation.data.DataObject;
+import cokr.xit.foundation.data.DataProc;
/**발송 대장 관리 서비스 인터페이스.
*
@@ -43,7 +44,7 @@ public interface SndngService {
*
그렇지 않으면 false
*
*/
- String createWrngSndngList(SndbQuery req, Sndng sndng);
+ DataProc createWrngSndngList(SndbQuery req, Sndng sndng);
/**계고장 발송 대장 정보를 삭제한다.
* @param sndng 발송 대장
@@ -79,7 +80,7 @@ public interface SndngService {
*
그렇지 않으면 false
*
*/
- String createAdvntceSndngList(SndbQuery req, Sndng sndng);
+ DataProc createAdvntceSndngList(SndbQuery req, Sndng sndng);
/**사전통지 발송 대장 정보를 삭제한다.
* @param sndng 발송 대장
@@ -109,7 +110,7 @@ public interface SndngService {
*
그렇지 않으면 false
*
*/
- String createNhtSndngList(SndbQuery req, Sndng sndng);
+ DataProc createNhtSndngList(SndbQuery req, Sndng sndng);
/**지정한 조건에 따라 고지서 발송 대장 목록을 조회하여 반환한다.
* @param 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 543623b0..d53e6e51 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
@@ -35,6 +35,7 @@ import cokr.xit.fims.sndb.dao.SndngDtlMapper;
import cokr.xit.fims.sndb.dao.SndngMapper;
import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject;
+import cokr.xit.foundation.data.DataProc;
/**발송 대장 정보 관리 Bean
*
@@ -172,15 +173,15 @@ public class SndngBean extends AbstractBean {
*
그렇지 않으면 false
*
*/
- public String createWrngSndngList(SndbQuery req, Sndng sndng) {
+ public DataProc createWrngSndngList(SndbQuery req, Sndng sndng) {
// 단속 IDs로 계고장 발송 대상 정보 조회
req.setOrderBy("C.REG_DT");
List trgtList = sndngMapper.selectWrngTrgtCrdnIds(req);
// 조회 건수 확인
if (isEmpty(trgtList))
- return "[F] 작업 중 대상 자료가 존재하지 않습니다.";
+ return new DataProc().setSuccess(false).setMessage("[F] 작업 중 대상 자료가 존재하지 않습니다.");
if (sndng.getTnocs() != trgtList.size())
- return "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
+ return new DataProc().setSuccess(false).setMessage("[F] 조회된 총 건수와 대상 건수가 다릅니다.");
// 위반 ID 조회
String vltnId = "";
@@ -221,7 +222,9 @@ public class SndngBean extends AbstractBean {
throw new RuntimeException(rtnMsg.replace("[F]", ""));
}
- return "[S] 작업이 정상 처리 되었습니다.";
+ return new DataProc()
+ .setTarget(sndng)
+ .setMessage("[S] 작업이 정상 처리 되었습니다.");
}
/**계고장 발송 대장 정보를 삭제한다.
@@ -309,14 +312,15 @@ public class SndngBean extends AbstractBean {
*
그렇지 않으면 false
*
*/
- public String createAdvntceSndngList(SndbQuery req, Sndng sndng) {
+ public DataProc createAdvntceSndngList(SndbQuery req, Sndng sndng) {
+
// 단속 Ids로 사전통지 발송 대상 정보 조회
List trgtList = sndngMapper.selectAdvntceTrgtCrdnIds(req);
// 조회 건수 확인
if (isEmpty(trgtList))
- return "[F] 작업 중 대상 자료가 존재하지 않습니다.";
+ return new DataProc().setSuccess(false).setMessage("[F] 작업 중 대상 자료가 존재하지 않습니다.");
if (sndng.getTnocs() != trgtList.size())
- return "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
+ return new DataProc().setSuccess(false).setMessage("[F] 조회된 총 건수와 대상 건수가 다릅니다.");
// 사용자 정보를 조회한다.
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
@@ -338,8 +342,7 @@ public class SndngBean extends AbstractBean {
if (sndng.getSndngRegSeCd() == null)
sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
- if (sndng.getRsndYn() == null)
- sndng.setRsndYn("N"); // 재발송 여부
+ sndng.setRsndYn(req.getRsndYn()); // 재발송 여부
if (sndng.getDelYn() == null)
sndng.setDelYn("N"); // 삭제 여부
sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00: 발송 준비
@@ -356,7 +359,9 @@ public class SndngBean extends AbstractBean {
throw new RuntimeException(rtnMsg.replace("[F]", ""));
}
- return "[S] 작업이 정상 처리 되었습니다.";
+ return new DataProc()
+ .setTarget(sndng)
+ .setMessage("[S] 작업이 정상 처리 되었습니다.");
}
/**사전통지 발송 상세 정보를 등록한다.
@@ -586,30 +591,30 @@ public class SndngBean extends AbstractBean {
*
그렇지 않으면 false
*
*/
- public String createNhtSndngList(SndbQuery req, Sndng sndng) {
+ public DataProc createNhtSndngList(SndbQuery req, Sndng sndng) {
// 단속 Ids로 고지서 발송 대상 정보 조회
List nhtTrgtList = sndngMapper.selectNhtTrgtCrdnIds(req);
// 조회 건수 확인
if (isEmpty(nhtTrgtList))
- return "[F] 작업 중 대상 자료가 존재하지 않습니다.";
+ return new DataProc().setSuccess(false).setMessage("[F] 작업 중 대상 자료가 존재하지 않습니다.");
if (sndng.getTnocs() != nhtTrgtList.size())
- return "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
+ return new DataProc().setSuccess(false).setMessage("[F] 조회된 총 건수와 대상 건수가 다릅니다.");
// 사용자 정보를 조회한다.
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
// 발송 대장에 등록한다.
- sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
+ sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
if (sndng.getSndngRegSeCd() == null)
- sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
+ sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
if (sndng.getTnocs() == null)
- sndng.setTnocs(nhtTrgtList.size()); // 총건수
+ sndng.setTnocs(nhtTrgtList.size()); // 총건수
if (sndng.getGramt() == null)
- sndng.setGramt(toLong(nhtTrgtList.get(0).get("GRAMT"))); // 총금액
+ sndng.setGramt(toLong(nhtTrgtList.get(0).get("GRAMT"))); // 총금액
if (sndng.getRsndYn() == null)
- sndng.setRsndYn("N"); // 재발송 여부
+ sndng.setRsndYn("N"); // 재발송 여부
if (sndng.getDelYn() == null)
- sndng.setDelYn("N"); // 삭제 여부
- sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
+ sndng.setDelYn("N"); // 삭제 여부
+ sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
// 발송(TB_SNDNG) 대장을 등록한다.
int rtnNocs = sndngMapper.insertSndng(sndng);
@@ -623,7 +628,9 @@ public class SndngBean extends AbstractBean {
throw new RuntimeException(rtnMsg.replace("[F]", ""));
}
- return "[S] 작업이 정상 처리 되었습니다.";
+ return new DataProc()
+ .setTarget(sndng)
+ .setMessage("[S] 작업이 정상 처리 되었습니다.");
}
/**고지서 발송 상세 정보를 등록한다.
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 f2e2b4cd..a8616eb1 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
@@ -12,6 +12,7 @@ import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.service.SndngService;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
+import cokr.xit.foundation.data.DataProc;
/**발송 대장 서비스 구현체.
*
@@ -50,7 +51,7 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
}
@Override
- public String createWrngSndngList(SndbQuery req, Sndng sndng) {
+ public DataProc createWrngSndngList(SndbQuery req, Sndng sndng) {
return sndngBean.createWrngSndngList(req, sndng);
}
@@ -75,7 +76,7 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
}
@Override
- public String createAdvntceSndngList(SndbQuery req, Sndng sndng) {
+ public DataProc createAdvntceSndngList(SndbQuery req, Sndng sndng) {
return sndngBean.createAdvntceSndngList(req, sndng);
}
@@ -95,7 +96,7 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
}
@Override
- public String createNhtSndngList(SndbQuery req, Sndng sndng) {
+ public DataProc createNhtSndngList(SndbQuery req, Sndng sndng) {
return sndngBean.createNhtSndngList(req, sndng);
}
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 1415f833..a62c40f7 100644
--- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java
+++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java
@@ -55,6 +55,7 @@ import cokr.xit.fims.sprt.service.bean.MediaBean;
import cokr.xit.fims.task.Task;
import cokr.xit.foundation.UserInfo;
import cokr.xit.foundation.data.DataObject;
+import cokr.xit.foundation.data.DataProc;
/**발송대장 서비스의 웹 컨트롤러
*
@@ -278,6 +279,8 @@ public class Sndb01Controller extends ApplicationController {
if (jsonResponse()) {
mav.setViewName("jsonView");
} else {
+ String egp002 = "EGP002"; // 우편취급 구분
+ Map> commonCodes = getCodesOf(egp002);
mav.setViewName("fims/sndb/sndb01020-info");
mav.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
@@ -289,6 +292,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("mainQuery", toJson(req)) // 검색 조건
.addObject("List", toJson(mav.getModel().get("List"))) // 데이터
.addObject("Paging", toJson(mav.getModel().get("Paging"))) // 페이징
+ .addObject(egp002, toJson(commonCodes.get(egp002)))
;
}
@@ -305,11 +309,12 @@ public class Sndb01Controller extends ApplicationController {
@Task
@RequestMapping(name="계고장 발송 등록", value=METHOD_URL.createWarningSendingList)
public ModelAndView createWarningSendingList(SndbQuery req, Sndng sndng) {
- String rtnMsg = sndngService.createWrngSndngList(req, sndng);
+ DataProc result = sndngService.createWrngSndngList(req, sndng);
return new ModelAndView("jsonView")
- .addObject("saved", rtnMsg.contains("[S]"))
- .addObject("rtnMsg", rtnMsg);
+ .addObject("saved", result.isSuccess())
+ .addObject("sndng", result.getTarget())
+ .addObject("rtnMsg", result.getMessage());
}
/**계고장 발송 현황 메인화면(sndb/sndb01/030-main)을 연다.
@@ -617,6 +622,8 @@ public class Sndb01Controller extends ApplicationController {
if (jsonResponse()) {
mav.setViewName("jsonView");
} else {
+ String egp002 = "EGP002"; // 우편취급 구분
+ Map> commonCodes = getCodesOf(egp002);
mav.setViewName("fims/sndb/sndb01060-info");
// 사전통지 납기일자 조회
@@ -632,6 +639,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("vltnCd", req.getSchVltnCd()) // 위반 코드(VLTN_CD)
.addObject("mainQuery", toJson(req)) // 검색 조건
+ .addObject(egp002, toJson(commonCodes.get(egp002)))
.addObject("advntceInfo", toJson(advntceInfo)) // 사전통지 기간 정보
.addObject("List", toJson(mav.getModel().get("List"))) // 데이터
.addObject("Paging", toJson(mav.getModel().get("Paging"))) // 페이징
@@ -651,11 +659,12 @@ public class Sndb01Controller extends ApplicationController {
@Task
@RequestMapping(name="사전통지 발송 등록", value=METHOD_URL.createAdvanceNoticeSendingList)
public ModelAndView createAdvanceNoticeSendingList(SndbQuery req, Sndng sndng) {
- String rtnMsg = sndngService.createAdvntceSndngList(req, sndng);
+ DataProc result = sndngService.createAdvntceSndngList(req, sndng);
return new ModelAndView("jsonView")
- .addObject("saved", rtnMsg.contains("[S]"))
- .addObject("rtnMsg", rtnMsg);
+ .addObject("saved", result.isSuccess())
+ .addObject("sndng", result.getTarget())
+ .addObject("rtnMsg", result.getMessage());
}
/**사전통지 발송 현황 메인화면(sndb/sndb01/070-main)을 연다.
@@ -972,6 +981,7 @@ public class Sndb01Controller extends ApplicationController {
public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) {
// View(jsp)에서 사용할 공통코드를 조회
List cdGrpList = TaskProcessor.get().getVltnCdGrps();
+ cdGrpList.add("EGP002");
cdGrpList.add("FIM047");
String[] cdGrps = cdGrpList.toArray(new String[cdGrpList.size()]);
Map> commonCodes = getCodesOf(cdGrps);
@@ -985,6 +995,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
+ .addObject("mainQuery", toJson(req)) // 검색 조건
;
}
@@ -998,11 +1009,12 @@ public class Sndb01Controller extends ApplicationController {
@Task
@RequestMapping(name="고지서 발송대장 등록", value=METHOD_URL.createNoticeSheetSendingList)
public ModelAndView createNoticeSheetSendingList(SndbQuery req, Sndng sndng) {
- String rtnMsg = sndngService.createNhtSndngList(req, sndng);
+ DataProc result = sndngService.createNhtSndngList(req, sndng);
return new ModelAndView("jsonView")
- .addObject("saved", rtnMsg.contains("[S]"))
- .addObject("rtnMsg", rtnMsg);
+ .addObject("saved", result.isSuccess())
+ .addObject("sndng", result.getTarget())
+ .addObject("rtnMsg", result.getMessage());
}
/**고지서 발송 현황 메인화면(sndb/sndb01/110-main)을 연다.
diff --git a/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java b/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java
index 3479f3ba..22a472f1 100644
--- a/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java
+++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt01Controller.java
@@ -624,7 +624,7 @@ public class Sprt01Controller extends ApplicationController {
DataObject first = dataObjectList0.get(0);
sndng.setTtlNm(first.string("TASK_SE_NM")+" "+"사전통지서");
sndng.setRsndYn("N");
- String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng);
+ String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng).getMessage();
if(!insertSndngResult.contains("[S]")) {
throw new RuntimeException(insertSndngResult);
}
@@ -738,7 +738,7 @@ public class Sprt01Controller extends ApplicationController {
sndng.setTtlNm(first.string("TASK_SE_NM")+" "+first.string("VLTN_ARTCL")+" "+"사전통지서");
sndng.setRsndYn("N");
- String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng);
+ String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng).getMessage();
if(insertSndngResult.contains("[F]"))
throw new RuntimeException(insertSndngResult);
@@ -856,7 +856,7 @@ public class Sprt01Controller extends ApplicationController {
sndng.setTtlNm(first.string("TASK_SE_NM")+" "+first.string("VLTN_ARTCL")+" "+"고지서");
sndng.setRsndYn("N");
- String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng);
+ String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng).getMessage();
if(insertSndngResult.contains("[F]"))
throw new RuntimeException(insertSndngResult);
@@ -966,7 +966,7 @@ public class Sprt01Controller extends ApplicationController {
sndng.setTtlNm(first.string("TASK_SE_NM")+" "+first.string("VLTN_ARTCL")+" "+"고지서");
sndng.setRsndYn("N");
- String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng);
+ String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng).getMessage();
if(insertSndngResult.contains("[F]"))
throw new RuntimeException(insertSndngResult);
diff --git a/src/main/resources/sql/mapper/fims/payer-mapper.xml b/src/main/resources/sql/mapper/fims/payer-mapper.xml
index 2c33d937..f82b2e82 100644
--- a/src/main/resources/sql/mapper/fims/payer-mapper.xml
+++ b/src/main/resources/sql/mapper/fims/payer-mapper.xml
@@ -75,7 +75,7 @@
-