고지서발송 등록 수정

main
mjkhan21 2 months ago
parent ccee5d04cc
commit e5839a9a44

@ -96,7 +96,7 @@ public class SnisBean extends ScheduledBean {
return update(results);
}
public String update(Map<String, Bu18WebReturnInfoDTO> results) {
private String update(Map<String, Bu18WebReturnInfoDTO> results) {
log().debug("{} Bu18WebReturnInfoDTOs received", results.size());
// 로컬 발송대상 상세 업데이트
Set<String> ids = results.keySet(); // 발송대상 상세ID
@ -270,41 +270,16 @@ public class SnisBean extends ScheduledBean {
* @param input
* @return
*/
public List<Ye22NoticeInfoDTO> getPreNoticeList(SndngDtl sndngDtl) {
public List<Ye22NoticeInfoDTO> lookupPreNotices(SndngDtl sndngDtl) {
Ye22InputDTO input = new Ye22InputDTO();
String buAk = sndngDtl.getLinkMngKey(); // 연계관리키 <- 세외수입 과태료대장키
input.setBuAk(buAk);
input.setSystemGubun(FimsConf.get().getSystemGubun());
List<Ye22NoticeInfoDTO> notices = sntrisBean.getPreNoticeList(input);
// update(sndngDtl, notices);
update(notices);
return notices;
}
private void update(SndngDtl sndngDtl, List<Ye22NoticeInfoDTO> notices) {
if (isEmpty(notices)) return;
Map<String, Ye22NoticeInfoDTO> noticeMap = notices.stream().collect(Collectors.toMap(
notice -> Long.toString(notice.getBuAk()),
notice -> notice
));
List<String> nxrpLevyKeys = noticeMap.keySet().stream().toList();
// 부과정보 업데이트
List<Levy> levies = levyMapper.selectLevys(new LevyQuery().setNxrpLevyKeys(nxrpLevyKeys));
for (Levy levy: levies) {
Ye22NoticeInfoDTO notice = noticeMap.get(levy.getNxrpLevyKey());
update(notice, levy);
}
levyMapper.updateLevies(levies);
// 발송상세 업데이트
List<SndngDtl> details = sndngDtlMapper.selectSndngDetails(new SndbQuery().setSndngDtlIds(sndngDtl.getSndngDtlId()));
for (SndngDtl detail: details) {
update(noticeMap.get(detail.getLinkMngKey()), detail);
sndngDtlMapper.updateSndngDtl(detail);
}
}
private void update(Ye22NoticeInfoDTO notice, Levy levy) {
if (notice == null || levy == null) return;
@ -458,10 +433,12 @@ public class SnisBean extends ScheduledBean {
}
}
public void getPreNotices() {
public void lookupPreNotices(SndbQuery req) {
if (req == null)
req = new SndbQuery();
log().debug("Starting getPreNotices()...");
for (SndngDtl sndngDtl: sndngDtlMapper.selectSndngDtlsToSync())
getPreNoticeList(sndngDtl);
for (SndngDtl sndngDtl: sndngDtlMapper.selectSndngDtlsToSync(req))
lookupPreNotices(sndngDtl);
}
/** .

@ -63,7 +63,7 @@ public interface SndngDtlMapper extends AbstractMapper {
/** .
* @return
*/
List<SndngDtl> selectSndngDtlsToSync();
List<SndngDtl> selectSndngDtlsToSync(SndbQuery req);
/** .
* @param params

@ -73,13 +73,13 @@ public class SndngDtlServiceBean extends ScheduledServiceBean implements SndngDt
@Override
public String updatePreNotice(SndngDtl sndngDtl) {
snisBean.getPreNoticeList(sndngDtl);
snisBean.lookupPreNotices(sndngDtl);
return "[S] 저장됐습니다.";
}
@Override
public void updatePreNotices() {
execute(snisBean, snisBean::getPreNotices);
execute(snisBean, () -> snisBean.lookupPreNotices((SndbQuery)null));
}
@Override

@ -2191,36 +2191,22 @@ public class Sndb01Controller extends ApplicationController {
@RequestMapping(name="세외수입 과태료대장 상세조회", value=METHOD_URL.getNonTaxReceiptIndividualA03List)
public ModelAndView getNonTaxReceiptIndividualA03List(SndbQuery req) {
boolean saved = false;
String rtnMsg = "";
List<DataObject> dtlIds = sndngDtlService.getSndngTrgtDtlIds(req);
String rtnMsg = dtlIds.isEmpty() ? "[F] 자료를 찾지못했습니다." : "";
if ("lntris".equals(TaskProcessor.get().getNtrisInterface(req.getTaskSeCd()))) { // 지방 세외수입
for (DataObject dtl: dtlIds) {
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngDtlId(dtl.string("SNDNG_DTL_ID"));
sndngDtl.setCrdnId(dtl.string("CRDN_ID"));
sndngDtl.setLinkTrgtCd(dtl.string("LINK_TRGT_CD"));
sndngDtl.setLinkMngKey(dtl.string("LINK_MNG_KEY"));
sndngDtl.setSndngDtlSttsCd(dtl.string("SNDNG_DTL_STTS_CD"));
sndngDtl.setDelYn("N");
rtnMsg = sndngDtlService.getNxrpIndivA03List(sndngDtl);
saved = rtnMsg.contains("[S]");
}
} else { // 서울 세외수입
for (DataObject dtl: dtlIds) {
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngDtlId(dtl.string("SNDNG_DTL_ID"));
sndngDtl.setCrdnId(dtl.string("CRDN_ID"));
sndngDtl.setLinkTrgtCd(dtl.string("LINK_TRGT_CD"));
sndngDtl.setLinkMngKey(dtl.string("LINK_MNG_KEY"));
sndngDtl.setSndngDtlSttsCd(dtl.string("SNDNG_DTL_STTS_CD"));
sndngDtl.setDelYn("N");
rtnMsg = sndngDtlService.updatePreNotice(sndngDtl);
saved = rtnMsg.contains("[S]");
}
}
boolean lntris = "lntris".equals(TaskProcessor.get().getNtrisInterface(req.getTaskSeCd()));
for (DataObject dtl: dtlIds) {
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngDtlId(dtl.string("SNDNG_DTL_ID"));
sndngDtl.setCrdnId(dtl.string("CRDN_ID"));
sndngDtl.setLinkTrgtCd(dtl.string("LINK_TRGT_CD"));
sndngDtl.setLinkMngKey(dtl.string("LINK_MNG_KEY"));
sndngDtl.setSndngDtlSttsCd(dtl.string("SNDNG_DTL_STTS_CD"));
sndngDtl.setDelYn("N");
rtnMsg = lntris ? sndngDtlService.getNxrpIndivA03List(sndngDtl) : sndngDtlService.updatePreNotice(sndngDtl);
saved = rtnMsg.contains("[S]");
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
@ -2237,9 +2223,16 @@ public class Sndb01Controller extends ApplicationController {
@Task
@RequestMapping(name="세외수입 체납상세 세목정보 조회", value=METHOD_URL.getNonTaxReceiptSpecialB01List)
public ModelAndView getNonTaxReceiptSpecialB01List(SndbQuery req) {
ModelAndView mav = getNonTaxReceiptIndividualA03List(req);
if (Boolean.TRUE.equals(mav.getModel().get("saved"))) {
List<DataObject> dtlIds = sndngDtlService.getSndngTrgtDtlIds(req);
mav.addObject("tnocs", dtlIds.size());
}
return mav;
/*
boolean saved = false;
String rtnMsg = "";
/*
List<DataObject> dtlList = sndngDtlService.getSndngTrgtDtlIds(req);
// 발송상세 Ids 만큼 반복..
@ -2260,12 +2253,12 @@ public class Sndb01Controller extends ApplicationController {
saved = false;
}
}
*/
saved = true;
rtnMsg = "[S]";
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("rtnMsg", rtnMsg);
*/
}
}

@ -110,11 +110,12 @@ SELECT *
<if test='crdnIds != null'>AND CRDN_ID IN (<foreach collection="crdnIds" item="crdnId" separator=",">#{crdnId}</foreach>)</if>
</where></select>
<select id="selectSndngDtlsToSync" resultMap="sndngDtlRow">/* 서울 세외수입 연계대상 발송상세 객체 조회(sndngDtlMapper.selectSndngDtlsToSync) */
<select id="selectSndngDtlsToSync" parameterType="map" resultMap="sndngDtlRow">/* 서울 세외수입 연계대상 발송상세 객체 조회(sndngDtlMapper.selectSndngDtlsToSync) */
SELECT B.*
FROM TB_CRDN A
, TB_SNDNG_DTL B
WHERE CRDN_STTS_CD IN ('23', '31', '42', '43', '51', '52', '53', '54', '61') <!-- 사전부과, 의견제출 접수, 사전통보 발송, 사전통보 완료, 부과, 독촉, 압류예고, 압류대상, 부과전송 -->
WHERE 1 = 1
AND CRDN_STTS_CD IN ('23', '31', '42', '43', '51', '52', '53', '54', '61') <!-- 사전부과, 의견제출 접수, 사전통보 발송, 사전통보 완료, 부과, 독촉, 압류예고, 압류대상, 부과전송 -->
AND NXRP_CRDN_LINK_YN = 'Y'
AND A.CRDN_ID = B.CRDN_ID
AND A.DEL_YN = 'N'
@ -332,27 +333,22 @@ LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)</sql>
</select>
<select id="selectSndngTrgtDtlIds" parameterType="map" resultType="dataobject">/* 발송 ID로 발송상세 ID를 가져오기(sndngDtlMapper.selectSndngTrgtDtlIds) */
SELECT SNDNG_DTL_ID <!-- 발송 상세 ID -->
, CRDN_ID <!-- 단속 ID -->
, LINK_TRGT_CD <!-- 연계 대상 코드 -->
, LINK_MNG_KEY <!-- 연계 관리 키 -->
, SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
FROM TB_SNDNG_DTL
<choose>
<when test="sndngDtlIds != null">
WHERE SNDNG_DTL_ID IN ( <!-- 발송 상세 Ids -->
<foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
)
</when>
<otherwise>
WHERE SNDNG_ID = #{sndngId} <!-- 발송 ID -->
</otherwise>
</choose>
<if test="sndngDtlSttsCd != null">
AND SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
</if>
AND DEL_YN = 'N' <!-- 삭제 여부 -->
ORDER BY SNDNG_DTL_ID
SELECT SNDNG_DTL_ID <!-- 발송 상세 ID -->
, CRDN_ID <!-- 단속 ID -->
, LINK_TRGT_CD <!-- 연계 대상 코드 -->
, LINK_MNG_KEY <!-- 연계 관리 키 -->
, SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
FROM TB_SNDNG_DTL
<where>
<if test="sndngId != null"> AND SNDNG_ID = #{sndngId}</if>
<if test="sndngDtlIds != null"> AND SNDNG_DTL_ID IN (<foreach collection="sndngDtlIds" item="sndngDtlId" separator=",">#{sndngDtlId}</foreach>)</if>
<if test="sndngDtlSttsCd != null"> AND SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd}</if>
<if test='schLevyYmd != null'>AND LEVY_YMD = #{schLevyYmd}</if>
<if test='schFrstDudtYmd != null'> AND DUDT_YMD = #{schFrstDudtYmd}</if>
<if test='schFyr != null'> AND FYR = #{schFyr}</if>
AND DEL_YN = 'N' <!-- 삭제 여부 -->
ORDER BY SNDNG_DTL_ID
</where>
</select>
<insert id="insertSndngDtl" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 등록(sndngDtlMapper.insertSndngDtl) */

Loading…
Cancel
Save