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