주소 설정, 반송 재발송 수정

main
mjkhan21 3 months ago
parent ea140ae482
commit fddf61fa70

@ -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;
}
}

@ -79,6 +79,8 @@ public class CrdnPayerAddrHstryBean extends AbstractBean {
* </ul>
*/
public boolean createHstryUpdateCrdnPayerAddr(CrdnPayerAddrHstry crdnPayerAddrHstry) {
if (crdnPayerAddrHstry == null) return false;
// 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장을 등록한다.
int rtnNocs = crdnPayerAddrHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry);
if (rtnNocs != 1)

@ -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());

@ -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"); // 초기상태 -> 납부자등록

@ -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() {

@ -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 {
/** .<br />
* @param req
* @return
@ -64,8 +63,6 @@ public interface PayerAddrMapper extends AbstractMapper {
*/
List<DataObject> selectPayerAddrHstrys(PayerQuery req);
/** .
* @param req
* @return
@ -86,5 +83,4 @@ public interface PayerAddrMapper extends AbstractMapper {
return !payers.isEmpty() ? payers.get(0) : null;
}
}
}

@ -34,6 +34,11 @@ public interface PayerMapper extends AbstractMapper {
*/
List<Payer> selectPayers(PayerQuery req);
default Payer selectPayer(PayerQuery req) {
List<Payer> payers = selectPayers(req);
return !payers.isEmpty() ? payers.get(0) : null;
}
/** .
* @param payer
* @return

@ -143,8 +143,9 @@ public class PayerBean extends AbstractBean {
* </ul>
*/
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 {
* </ul>
*/
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 {
* </ul>
*/
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

@ -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;
}
}

@ -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 {
* <li> false</li>
* </ul>
*/
String createWrngSndngList(SndbQuery req, Sndng sndng);
DataProc createWrngSndngList(SndbQuery req, Sndng sndng);
/** .
* @param sndng
@ -79,7 +80,7 @@ public interface SndngService {
* <li> false</li>
* </ul>
*/
String createAdvntceSndngList(SndbQuery req, Sndng sndng);
DataProc createAdvntceSndngList(SndbQuery req, Sndng sndng);
/** .
* @param sndng
@ -109,7 +110,7 @@ public interface SndngService {
* <li> false</li>
* </ul>
*/
String createNhtSndngList(SndbQuery req, Sndng sndng);
DataProc createNhtSndngList(SndbQuery req, Sndng sndng);
/** .
* @param req

@ -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 {
* <li> false</li>
* </ul>
*/
public String createWrngSndngList(SndbQuery req, Sndng sndng) {
public DataProc createWrngSndngList(SndbQuery req, Sndng sndng) {
// 단속 IDs로 계고장 발송 대상 정보 조회
req.setOrderBy("C.REG_DT");
List<DataObject> 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 {
* <li> false</li>
* </ul>
*/
public String createAdvntceSndngList(SndbQuery req, Sndng sndng) {
public DataProc createAdvntceSndngList(SndbQuery req, Sndng sndng) {
// 단속 Ids로 사전통지 발송 대상 정보 조회
List<DataObject> 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 {
* <li> false</li>
* </ul>
*/
public String createNhtSndngList(SndbQuery req, Sndng sndng) {
public DataProc createNhtSndngList(SndbQuery req, Sndng sndng) {
// 단속 Ids로 고지서 발송 대상 정보 조회
List<DataObject> 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] 작업이 정상 처리 되었습니다.");
}
/** .

@ -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);
}

@ -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<String, List<CommonCode>> 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<String, List<CommonCode>> 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<String> cdGrpList = TaskProcessor.get().getVltnCdGrps();
cdGrpList.add("EGP002");
cdGrpList.add("FIM047");
String[] cdGrps = cdGrpList.toArray(new String[cdGrpList.size()]);
Map<String, List<CommonCode>> 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) .

@ -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);

@ -75,7 +75,7 @@
<include refid="utility.paging-suffix" />
</select>
<select id="selectPayers" parameterType="map" resultMap="payerRow">/* 납부자 대장 객체 가져오기(payerMapper.selectPayers) */
<select id="selectPayers" parameterType="cokr.xit.fims.payer.PayerQuery" resultMap="payerRow">/* 납부자 대장 객체 가져오기(payerMapper.selectPayers) */
<include refid="select" />
<where>
<choose>
@ -102,8 +102,7 @@
<property name="pad" value="20" />
</include>
</selectKey>
INSERT
INTO TB_PAYER (
INSERT INTO TB_PAYER (
RTPYR_ID <!-- 납부자 ID -->
, SGG_CD <!-- 시군구 코드 -->
, RTPYR_INPT_SE_CD <!-- 납부자 입력 구분 코드 -->

@ -152,12 +152,11 @@
<insert id="insertPayerAddr" parameterType="cokr.xit.fims.payer.Payer">/* 납부자 주소 등록(payerAddrMapper.insertPayerAddr) */
<selectKey resultType="string" keyProperty="addrSn" keyColumn="NEW_ID" order="BEFORE">
SELECT LPAD(CAST(IFNULL(MAX(ADDR_SN) + 1, 1) AS INT), 5, '0') AS NEW_ID
SELECT LPAD(CAST(NVL(MAX(ADDR_SN) + 1, 1) AS INT), 5, '0') AS NEW_ID
FROM TB_PAYER_ADDR
WHERE RTPYR_ID = #{rtpyrId}
</selectKey>
INSERT
INTO TB_PAYER_ADDR (
INSERT INTO TB_PAYER_ADDR (
RTPYR_ID <!-- 납부자 ID -->
, ADDR_SN <!-- 주소 일련번호 -->
, ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 -->
@ -184,8 +183,7 @@
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{rtpyrId} <!-- 납부자 ID -->
SELECT #{rtpyrId} <!-- 납부자 ID -->
, #{addrSn} <!-- 주소 일련번호 -->
, #{addrInptSeCd} <!-- 주소 입력 구분 코드 -->
, #{addrSeCd} <!-- 주소 구분 코드 -->
@ -210,7 +208,29 @@
, #{createdBy} <!-- 등록자 -->
,<include refid="utility.now" /> <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
)
FROM DUAL
WHERE NOT EXISTS (
SELECT * FROM TB_PAYER_ADDR
WHERE RTPYR_ID = #{rtpyrId}
AND ADDR_SN = CASE WHEN #{addrSn} = '00001' THEN '00001' ELSE LPAD(#{addrSn} - 1, 5, '0') END
AND NVL(ZIP, 'empty') = NVL(#{zip}, 'empty')
AND NVL(ADDR, 'empty') = NVL(#{addr}, 'empty')
AND NVL(DTL_ADDR, 'empty') = NVL(#{dtlAddr}, 'empty')
AND NVL(ROAD_NM_CD, 'empty') = NVL(#{roadNmCd}, 'empty')
AND NVL(UDGD_SE_CD, 'empty') = NVL(#{udgdSeCd}, 'empty')
AND NVL(BMNO, 'empty') = NVL(#{bmno}, 'empty')
AND NVL(BSNO, 'empty') = NVL(#{bsno}, 'empty')
AND NVL(BLDG_MNG_NO, 'empty') = NVL(#{bldgMngNo}, 'empty')
AND NVL(STDG_CD, 'empty') = NVL(#{stdgCd}, 'empty')
AND NVL(DONG_CD, 'empty') = NVL(#{dongCd}, 'empty')
AND NVL(MTN_SE_CD, 'empty') = NVL(#{mtnSeCd}, 'empty')
AND NVL(MNO, 'empty') = NVL(#{mno}, 'empty')
AND NVL(SNO, 'empty') = NVL(#{sno}, 'empty')
AND NVL(SPCL_DONG, 'empty') = NVL(#{spclDong}, 'empty')
AND NVL(SPCL_HO, 'empty') = NVL(#{spclHo}, 'empty')
AND NVL(SPCL_ADDR, 'empty') = NVL(#{spclAddr}, 'empty')
AND NVL(WHOL_ADDR, 'empty') = NVL(#{wholAddr}, 'empty')
)
</insert>
<update id="updatePayerAddr" parameterType="cokr.xit.fims.payer.Payer">/* 납부자 주소 수정(payerAddrMapper.updatePayerAddr) */

@ -1238,8 +1238,8 @@ LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
, L.LEVY_YMD <!-- 부과 일자 -->
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기후 금액 -->
, L.DUDT_AFTR_AMT <!-- 납기후 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기후 일자 -->
, L.DUDT_AFTR_AMT <!-- 납기후 금액 -->
, L.RCVMT_YMD <!-- 수납 일자 -->
, L.PAY_MTHD_SE_CD <!-- 납부 방법 구분 코드 -->
, (GET_CODE_NM('FIM045', L.PAY_MTHD_SE_CD)) AS PAY_MTHD_SE_NM

Loading…
Cancel
Save