고지서발송 등록 수정

main
mjkhan21 3 months ago
parent ccee5d04cc
commit e5839a9a44

@ -96,7 +96,7 @@ public class SnisBean extends ScheduledBean {
return update(results); return update(results);
} }
public String update(Map<String, Bu18WebReturnInfoDTO> results) { private String update(Map<String, Bu18WebReturnInfoDTO> results) {
log().debug("{} Bu18WebReturnInfoDTOs received", results.size()); log().debug("{} Bu18WebReturnInfoDTOs received", results.size());
// 로컬 발송대상 상세 업데이트 // 로컬 발송대상 상세 업데이트
Set<String> ids = results.keySet(); // 발송대상 상세ID Set<String> ids = results.keySet(); // 발송대상 상세ID
@ -270,41 +270,16 @@ public class SnisBean extends ScheduledBean {
* @param input * @param input
* @return * @return
*/ */
public List<Ye22NoticeInfoDTO> getPreNoticeList(SndngDtl sndngDtl) { public List<Ye22NoticeInfoDTO> lookupPreNotices(SndngDtl sndngDtl) {
Ye22InputDTO input = new Ye22InputDTO(); Ye22InputDTO input = new Ye22InputDTO();
String buAk = sndngDtl.getLinkMngKey(); // 연계관리키 <- 세외수입 과태료대장키 String buAk = sndngDtl.getLinkMngKey(); // 연계관리키 <- 세외수입 과태료대장키
input.setBuAk(buAk); input.setBuAk(buAk);
input.setSystemGubun(FimsConf.get().getSystemGubun()); input.setSystemGubun(FimsConf.get().getSystemGubun());
List<Ye22NoticeInfoDTO> notices = sntrisBean.getPreNoticeList(input); List<Ye22NoticeInfoDTO> notices = sntrisBean.getPreNoticeList(input);
// update(sndngDtl, notices);
update(notices); update(notices);
return 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) { private void update(Ye22NoticeInfoDTO notice, Levy levy) {
if (notice == null || levy == null) return; 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()..."); log().debug("Starting getPreNotices()...");
for (SndngDtl sndngDtl: sndngDtlMapper.selectSndngDtlsToSync()) for (SndngDtl sndngDtl: sndngDtlMapper.selectSndngDtlsToSync(req))
getPreNoticeList(sndngDtl); lookupPreNotices(sndngDtl);
} }
/** . /** .

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

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

@ -2191,36 +2191,22 @@ public class Sndb01Controller extends ApplicationController {
@RequestMapping(name="세외수입 과태료대장 상세조회", value=METHOD_URL.getNonTaxReceiptIndividualA03List) @RequestMapping(name="세외수입 과태료대장 상세조회", value=METHOD_URL.getNonTaxReceiptIndividualA03List)
public ModelAndView getNonTaxReceiptIndividualA03List(SndbQuery req) { public ModelAndView getNonTaxReceiptIndividualA03List(SndbQuery req) {
boolean saved = false; boolean saved = false;
String rtnMsg = "";
List<DataObject> dtlIds = sndngDtlService.getSndngTrgtDtlIds(req); List<DataObject> dtlIds = sndngDtlService.getSndngTrgtDtlIds(req);
String rtnMsg = dtlIds.isEmpty() ? "[F] 자료를 찾지못했습니다." : "";
if ("lntris".equals(TaskProcessor.get().getNtrisInterface(req.getTaskSeCd()))) { // 지방 세외수입 boolean lntris = "lntris".equals(TaskProcessor.get().getNtrisInterface(req.getTaskSeCd()));
for (DataObject dtl: dtlIds) { for (DataObject dtl: dtlIds) {
SndngDtl sndngDtl = new SndngDtl(); SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngDtlId(dtl.string("SNDNG_DTL_ID")); sndngDtl.setSndngDtlId(dtl.string("SNDNG_DTL_ID"));
sndngDtl.setCrdnId(dtl.string("CRDN_ID")); sndngDtl.setCrdnId(dtl.string("CRDN_ID"));
sndngDtl.setLinkTrgtCd(dtl.string("LINK_TRGT_CD")); sndngDtl.setLinkTrgtCd(dtl.string("LINK_TRGT_CD"));
sndngDtl.setLinkMngKey(dtl.string("LINK_MNG_KEY")); sndngDtl.setLinkMngKey(dtl.string("LINK_MNG_KEY"));
sndngDtl.setSndngDtlSttsCd(dtl.string("SNDNG_DTL_STTS_CD")); sndngDtl.setSndngDtlSttsCd(dtl.string("SNDNG_DTL_STTS_CD"));
sndngDtl.setDelYn("N"); sndngDtl.setDelYn("N");
rtnMsg = sndngDtlService.getNxrpIndivA03List(sndngDtl); rtnMsg = lntris ? sndngDtlService.getNxrpIndivA03List(sndngDtl) : sndngDtlService.updatePreNotice(sndngDtl);
saved = rtnMsg.contains("[S]"); 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]");
}
}
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
@ -2237,9 +2223,16 @@ public class Sndb01Controller extends ApplicationController {
@Task @Task
@RequestMapping(name="세외수입 체납상세 세목정보 조회", value=METHOD_URL.getNonTaxReceiptSpecialB01List) @RequestMapping(name="세외수입 체납상세 세목정보 조회", value=METHOD_URL.getNonTaxReceiptSpecialB01List)
public ModelAndView getNonTaxReceiptSpecialB01List(SndbQuery req) { 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; boolean saved = false;
String rtnMsg = ""; String rtnMsg = "";
/*
List<DataObject> dtlList = sndngDtlService.getSndngTrgtDtlIds(req); List<DataObject> dtlList = sndngDtlService.getSndngTrgtDtlIds(req);
// 발송상세 Ids 만큼 반복.. // 발송상세 Ids 만큼 반복..
@ -2260,12 +2253,12 @@ public class Sndb01Controller extends ApplicationController {
saved = false; saved = false;
} }
} }
*/
saved = true; saved = true;
rtnMsg = "[S]"; rtnMsg = "[S]";
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("rtnMsg", rtnMsg); .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> <if test='crdnIds != null'>AND CRDN_ID IN (<foreach collection="crdnIds" item="crdnId" separator=",">#{crdnId}</foreach>)</if>
</where></select> </where></select>
<select id="selectSndngDtlsToSync" resultMap="sndngDtlRow">/* 서울 세외수입 연계대상 발송상세 객체 조회(sndngDtlMapper.selectSndngDtlsToSync) */ <select id="selectSndngDtlsToSync" parameterType="map" resultMap="sndngDtlRow">/* 서울 세외수입 연계대상 발송상세 객체 조회(sndngDtlMapper.selectSndngDtlsToSync) */
SELECT B.* SELECT B.*
FROM TB_CRDN A FROM TB_CRDN A
, TB_SNDNG_DTL B , 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 NXRP_CRDN_LINK_YN = 'Y'
AND A.CRDN_ID = B.CRDN_ID AND A.CRDN_ID = B.CRDN_ID
AND A.DEL_YN = 'N' 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>
<select id="selectSndngTrgtDtlIds" parameterType="map" resultType="dataobject">/* 발송 ID로 발송상세 ID를 가져오기(sndngDtlMapper.selectSndngTrgtDtlIds) */ <select id="selectSndngTrgtDtlIds" parameterType="map" resultType="dataobject">/* 발송 ID로 발송상세 ID를 가져오기(sndngDtlMapper.selectSndngTrgtDtlIds) */
SELECT SNDNG_DTL_ID <!-- 발송 상세 ID --> SELECT SNDNG_DTL_ID <!-- 발송 상세 ID -->
, CRDN_ID <!-- 단속 ID --> , CRDN_ID <!-- 단속 ID -->
, LINK_TRGT_CD <!-- 연계 대상 코드 --> , LINK_TRGT_CD <!-- 연계 대상 코드 -->
, LINK_MNG_KEY <!-- 연계 관리 키 --> , LINK_MNG_KEY <!-- 연계 관리 키 -->
, SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 --> , SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
FROM TB_SNDNG_DTL FROM TB_SNDNG_DTL
<choose> <where>
<when test="sndngDtlIds != null"> <if test="sndngId != null"> AND SNDNG_ID = #{sndngId}</if>
WHERE SNDNG_DTL_ID IN ( <!-- 발송 상세 Ids --> <if test="sndngDtlIds != null"> AND SNDNG_DTL_ID IN (<foreach collection="sndngDtlIds" item="sndngDtlId" separator=",">#{sndngDtlId}</foreach>)</if>
<foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach> <if test="sndngDtlSttsCd != null"> AND SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd}</if>
) <if test='schLevyYmd != null'>AND LEVY_YMD = #{schLevyYmd}</if>
</when> <if test='schFrstDudtYmd != null'> AND DUDT_YMD = #{schFrstDudtYmd}</if>
<otherwise> <if test='schFyr != null'> AND FYR = #{schFyr}</if>
WHERE SNDNG_ID = #{sndngId} <!-- 발송 ID --> AND DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise> ORDER BY SNDNG_DTL_ID
</choose> </where>
<if test="sndngDtlSttsCd != null">
AND SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
</if>
AND DEL_YN = 'N' <!-- 삭제 여부 -->
ORDER BY SNDNG_DTL_ID
</select> </select>
<insert id="insertSndngDtl" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 등록(sndngDtlMapper.insertSndngDtl) */ <insert id="insertSndngDtl" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 등록(sndngDtlMapper.insertSndngDtl) */

Loading…
Cancel
Save