서울 세외수입 연계관련 수정

main
mjkhan21 3 months ago
parent 9412767a89
commit 23619f8d57

@ -1,6 +1,8 @@
package cokr.xit.fims.cmmn;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.foundation.AbstractEntity;
import cokr.xit.foundation.data.DataObject;
import lombok.Getter;
import lombok.Setter;
@ -69,4 +71,30 @@ public class CrdnSttsHstry extends AbstractEntity {
* - TB_CRDN()
*/
private String crdnSttsChgDt;
public static final CrdnSttsHstry create(String status, String taskDtlId, String etcCn, DataObject crdnInfo) {
CrdnSttsHstry statusHistory = new CrdnSttsHstry();
statusHistory.setCrdnId(crdnInfo.string("CRDN_ID"));
statusHistory.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD"));
statusHistory.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT"));
statusHistory.setTaskDtlId(taskDtlId);
statusHistory.setEtcCn(etcCn);
statusHistory.setCrdnSttsCd(status);
return statusHistory;
}
public static final CrdnSttsHstry create(String status, String taskDtlId, Crdn crdn) {
CrdnSttsHstry statusHistory = new CrdnSttsHstry();
statusHistory.setCrdnId(crdn.getCrdnId());
statusHistory.setBfrSttsCd(crdn.getCrdnSttsCd());
statusHistory.setBfrSttsChgDt(crdn.getCrdnSttsChgDt());
statusHistory.setTaskDtlId(taskDtlId);
statusHistory.setEtcCn(crdn.getEtcCn());
statusHistory.setCrdnSttsCd(status);
crdn.setCrdnSttsCd(status);
return statusHistory;
}
}

@ -14,6 +14,8 @@ import org.springframework.stereotype.Component;
import cokr.xit.base.user.service.bean.UserBean;
import cokr.xit.fims.FimsConf;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.dao.CrdnInfoMapper;
import cokr.xit.fims.crdn.dao.CrdnUpdtMapper;
@ -64,6 +66,8 @@ public class SnisBean extends AbstractBean {
/** 단속 대장 수정 정보 DAO */
@Resource(name = "crdnUpdtMapper")
private CrdnUpdtMapper crdnUpdtMapper;
@Resource(name = "crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean;
/** 사용자 정보 DAO */
@Resource(name="userBean")
private UserBean userBean;
@ -259,9 +263,10 @@ public class SnisBean extends AbstractBean {
String buAk = sndngDtl.getLinkMngKey(); // 연계관리키 <- 세외수입 과태료대장키
input.setBuAk(buAk);
input.setSystemGubun(FimsConf.get().getSystemGubun());
List<Ye22NoticeInfoDTO> prenotices = sntrisBean.getPreNoticeList(input);
update(sndngDtl, prenotices);
return prenotices;
List<Ye22NoticeInfoDTO> notices = sntrisBean.getPreNoticeList(input);
// update(sndngDtl, notices);
update(notices);
return notices;
}
private void update(SndngDtl sndngDtl, List<Ye22NoticeInfoDTO> notices) {
@ -307,6 +312,11 @@ public class SnisBean extends AbstractBean {
levy.setLastAmt((int)notice.totalAmt()); // 최종금액
levy.setDudtAftrAmt(null);
if ("1".equals(notice.getBuStatusCd())) { // 완납일경우
levy.setRcvmtPcptax((int)notice.getTaxAmt());
levy.setRcvmtAdamt((int)notice.gasanAmt());
}
levy.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후일자
levy.setTxtnThing(notice.getMulNm()); // 물건이름
@ -361,7 +371,9 @@ public class SnisBean extends AbstractBean {
.filter(notice -> "0".equals(notice.getBuStatusCd()))
.count() > 0;
// 세외수입 연계키별 발송상세 정보
List<SndngDtl> sndngDtls = bugwa ? sndngDtlMapper.selectSndngDetails(new SndbQuery().setCrdnIds(crdnIDs.toArray(new String[crdnIDs.size()]))) : Collections.emptyList();
List<SndngDtl> sndngDtls = !bugwa ?
Collections.emptyList() :
sndngDtlMapper.selectSndngDetails(new SndbQuery().setCrdnIds(crdnIDs.toArray(new String[crdnIDs.size()])));
Map<String, SndngDtl> sndngDetails = sndngDtls.stream().collect(Collectors.toMap(
SndngDtl::getLinkMngKey,
sndngDtl -> sndngDtl
@ -369,7 +381,9 @@ public class SnisBean extends AbstractBean {
for (Ye22NoticeInfoDTO notice: notices) {
String status = notice.getBuStatusCd(); // 과태료 상태
boolean paidFull = "1".equals(status); // '완납' 여부
String linkMngKey = Long.toString(notice.getBuAk()); // 세외수입 연계키
int rcvmtAmt = (int)notice.totalAmt();
log().debug("세외수입 연계키: {}, 상태: {}", linkMngKey, status);
if (bugwa) {
@ -381,33 +395,39 @@ public class SnisBean extends AbstractBean {
Levy levy = levies.get(linkMngKey);
update(notice, levy); // 부과정보에 적용
if (levy != null) {
if (levy != null)
levyMapper.updateLevy(levy);
if (paidFull) {
Rcvmt rcvmt = new Rcvmt(); // 수납등록
rcvmt.setLevyId(levy.getLevyId());
rcvmt.setRcvmtAmt(rcvmtAmt);
rcvmtBean.createRcvmt(rcvmt);
}
Crdn crdn = crdns.get(levy.getCrdnId());
if (crdn == null) continue;
String crdnStatus = crdn.getCrdnSttsCd();
if (crdn != null) { // 단속정보에 적용
if ("0".equals(status)) { // '부과'상태
} else if ("1".equals(status)) { // '완납'상태
crdn.setRcvmtAmt((int)notice.totalAmt()); // 수납금액
// notice.getNapbuYmd(); // 납부일자
crdnStatus = switch (crdn.getCrdnSttsCd()) {
case "23", "31", "42", "43", "44", "45" -> "71"; // 사전부과, 의견제출, 사전통보발송, 사전통보완료 -> 사전통보수납
case "51" -> "72"; // 부과 -> 부과수납
case "52" -> "73"; // 독촉 -> 독촉수납
case "53", "54" -> "74"; // 압류예고, 압류대상 -> 압류예정수납
case "55" -> "75"; // 압류 -> 압류수납
default -> null;
};
if (crdnStatus != null)
crdn.setCrdnSttsCd(crdnStatus);
// 단속정보에 적용
if ("0".equals(status)) { // '부과'상태
} else if (paidFull) {
crdn.setRcvmtAmt(rcvmtAmt); // 수납금액
// notice.getNapbuYmd(); // 납부일자
crdnUpdtMapper.updateEditCrdn(crdn);
crdnStatus = switch (crdn.getCrdnSttsCd()) {
case "23", "31", "42", "43", "44", "45" -> "71"; // 사전부과, 의견제출, 사전통보발송, 사전통보완료 -> 사전통보수납
case "51" -> "72"; // 부과 -> 부과수납
case "52" -> "73"; // 독촉 -> 독촉수납
case "53", "54" -> "74"; // 압류예고, 압류대상 -> 압류예정수납
case "55" -> "75"; // 압류 -> 압류수납
default -> null;
};
if (crdnStatus != null) {
CrdnSttsHstry history = CrdnSttsHstry.create(crdnStatus, null, crdn);
crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(history);
}
}
}

@ -104,6 +104,7 @@
, FFNLG_CRDN_AMT = #{ffnlgCrdnAmt} <!-- 과태료 단속 금액 -->
, FFNLG_AMT = #{ffnlgAmt} <!-- 과태료 금액 -->
, ADVNTCE_AMT = #{advntceAmt} <!-- 사전통지 금액 -->
, RCVMT_AMT = #{rcvmtAmt} <!-- 수납 금액 -->
, ETC_CN = #{etcCn} <!-- 기타 내용 -->
, MDFCN_DT =<include refid="utility.now" /> <!-- 수정일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 -->

Loading…
Cancel
Save