납부자 주소설정 수정, 계도등록 시 주소체크 추가

main
mjkhan21 5 months ago
parent efe7d3c848
commit 723ca8f95a

@ -78,38 +78,8 @@ public class CrdnBean extends AbstractBean {
Map<Crdn, LevyExcl> levyExcls = exclude ? taskProcessor.getExcluded(distincts) : Collections.emptyMap();
for (Crdn crdn: distincts) {
String sggCd = crdn.getSggCd();
String taskSeCd = crdn.getTaskSeCd();
List<FileInfo> attachments = crdn.getAttachments();
crdn.setAtchFileCnt(isEmpty(attachments) ? 0 : attachments.size());
setAmount(crdn);
//단속팀 정보 갱신
if (!isEmpty(crdn.getTeamId())) {
DataObject teamInfo = crdnTeamMapper.selectTeamInfo(crdn.getTeamId());
Team team = new Team();
team.setTaskSeCd(taskSeCd);
team.setSggCd(sggCd);
team.setTeamNm(teamInfo.string("TEAM_NM"));
team.setCrdnSeCd(crdn.getCrdnSeCd());
team.setTeamer1(crdn.getTeamer1());
team.setTeamer2(crdn.getTeamer2());
team.setTeamer3(crdn.getTeamer3());
team.setTeamer4(crdn.getTeamer4());
crdnStngBean.saveTeamInfo(true, team);
}
//상태코드 설정
if (isEmpty(crdn.getCrdnSttsCd())){ //상태코드가 없을경우
if ("Y".equals(crdn.getCvlcptLinkYn())) { //민원연계자료일 경우
crdn.setCrdnSttsCd("01"); //초기상태
} else { //민원연계자료가 아닐 경우
crdn.setCrdnSttsCd(isEmpty(crdn.getRtpyrId()) ? "01" : "21"); // 01: 초기상태 21: 납부자등록완료
}
crdn.setCrdnSttsChgDt(dateFormats.now());
}
//단속 대장 등록
createLedger(crdn);
@ -117,17 +87,6 @@ public class CrdnBean extends AbstractBean {
if (excl01 != null) {
excl01.setCrdnId(crdn.getCrdnId());
levyExclBean.createLevyExcl(excl01);
} else {
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장 등록
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdn.getCrdnId());
crdnSttsHstry.setBfrSttsCd("");
crdnSttsHstry.setBfrSttsChgDt("");
crdnSttsHstry.setCrdnSttsCd(crdn.getCrdnSttsCd());
crdnSttsHstry.setTaskDtlId(crdn.getCrdnId());
crdnSttsHstry.setEtcCn("");
crdnSttsHstryBean.create(crdnSttsHstry);
}
//단속납부자이력(TB_CRDN_PAYER_HSTRY) 대장 등록
@ -163,66 +122,20 @@ public class CrdnBean extends AbstractBean {
}
public boolean create(Map<String, Object> nonQueryRequest, Crdn crdn, List<FileInfo> fileInfoList) {
String sggCd = crdn.getSggCd();
String taskSeCd = crdn.getTaskSeCd();
int fileCount = isEmpty(fileInfoList) ? 0 : fileInfoList.size();
crdn.setAtchFileCnt(fileCount);
setAmount(crdn);
//단속팀 정보 갱신
if (!isEmpty(crdn.getTeamId())) {
DataObject teamInfo = crdnTeamMapper.selectTeamInfo(crdn.getTeamId());
Team team = new Team();
team.setTaskSeCd(taskSeCd);
team.setSggCd(sggCd);
team.setTeamNm(teamInfo.string("TEAM_NM"));
team.setCrdnSeCd(crdn.getCrdnSeCd());
team.setTeamer1(crdn.getTeamer1());
team.setTeamer2(crdn.getTeamer2());
team.setTeamer3(crdn.getTeamer3());
team.setTeamer4(crdn.getTeamer4());
crdnStngBean.saveTeamInfo(true, team);
}
//상태코드 설정
if (isEmpty(crdn.getCrdnSttsCd())){ //상태코드가 없을경우
if ("Y".equals(crdn.getCvlcptLinkYn())) { //민원연계자료일 경우
crdn.setCrdnSttsCd("01"); //초기상태
} else { //민원연계자료가 아닐 경우
crdn.setCrdnSttsCd(isEmpty(crdn.getRtpyrId()) ? "01" : "21"); // 01: 초기상태 21: 납부자등록완료
}
crdn.setCrdnSttsChgDt(dateFormats.now());
}
//단속 대장 등록
boolean result = createLedger(crdn);
if (!result)
throw new RuntimeException("중복된 단속자료입니다.");
String taskDtlId = crdn.getCrdnId();
LevyExcl excl01 = TaskProcessor.get().getLevyExcl(crdn);
if (excl01 != null) {
String rtnScs = levyExclBean.createLevyExcl(excl01);
if (rtnScs.contains("[F]"))
throw new RuntimeException("단속자료 등록 중 부과제외 자료 등록에 실패하였습니다.");
taskDtlId = excl01.getLevyExclId();
}
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장 등록
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdn.getCrdnId());
crdnSttsHstry.setBfrSttsCd("");
crdnSttsHstry.setBfrSttsChgDt("");
crdnSttsHstry.setCrdnSttsCd(crdn.getCrdnSttsCd());
crdnSttsHstry.setTaskDtlId(taskDtlId);
crdnSttsHstry.setEtcCn("");
result = crdnSttsHstryBean.create(crdnSttsHstry);
if (!result)
throw new RuntimeException("단속자료 등록 중 단속상태 이력 등록에 실패하였습니다.");
@ -265,7 +178,49 @@ public class CrdnBean extends AbstractBean {
* </ul>
*/
public boolean createLedger(Crdn crdn) {
return crdnInstMapper.insert(crdn);
setAmount(crdn);
//단속팀 정보 갱신
if (!isEmpty(crdn.getTeamId())) {
DataObject teamInfo = crdnTeamMapper.selectTeamInfo(crdn.getTeamId());
String sggCd = crdn.getSggCd();
String taskSeCd = crdn.getTaskSeCd();
Team team = new Team();
team.setTaskSeCd(taskSeCd);
team.setSggCd(sggCd);
team.setTeamNm(teamInfo.string("TEAM_NM"));
team.setCrdnSeCd(crdn.getCrdnSeCd());
team.setTeamer1(crdn.getTeamer1());
team.setTeamer2(crdn.getTeamer2());
team.setTeamer3(crdn.getTeamer3());
team.setTeamer4(crdn.getTeamer4());
crdnStngBean.saveTeamInfo(true, team);
}
String crdnSttsCd = null;
if ("Y".equals(crdn.getCvlcptLinkYn())) { //민원연계자료일 경우
crdnSttsCd = "01";
} else { //민원연계자료가 아닐 경우
crdnSttsCd = isEmpty(crdn.getRtpyrId()) ? "01" : "21"; // 01: 초기상태 21: 납부자등록완료
}
String orgStts = crdn.getCrdnSttsCd();
crdn.setCrdnSttsCd(crdnSttsCd);
crdn.setCrdnSttsChgDt(dateFormats.now());
boolean saved = crdnInstMapper.insert(crdn);
crdn.setCrdnSttsCd(orgStts);
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장 등록
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdn.getCrdnId());
crdnSttsHstry.setBfrSttsCd("");
crdnSttsHstry.setBfrSttsChgDt("");
crdnSttsHstry.setCrdnSttsCd(crdnSttsCd);
crdnSttsHstry.setTaskDtlId(crdn.getCrdnId());
crdnSttsHstry.setEtcCn("");
crdnSttsHstryBean.create(crdnSttsHstry);
return saved;
}
/** .

@ -188,4 +188,10 @@ public class Payer extends AbstractEntity {
* ID
*/
private String crdnId;
public boolean hasValidAddress() {
return !isEmpty(addr)
&& !isEmpty(dtlAddr)
&& !isEmpty(wholAddr);
}
}

@ -235,11 +235,11 @@ public class PayerBean extends AbstractBean {
public List<DataObject> getPayers(LvisA01.A01Request req, InputStream upload) {
List<DataObject> list = vehicleInfoBean.getBasicInfo(req, upload);
list.forEach(row-> {
for (DataObject row: list) {
LvisA01.BasicInfo basicInfo = (LvisA01.BasicInfo)row.get("basicInfo");
Payer payer = getPayer(basicInfo, req.getSigungu_code(), row.string("zipCode"));
row.put("payer", payer);
});
}
return list;
}

@ -84,6 +84,11 @@ public class SndngBean extends AbstractBean {
* @return
*/
public List<DataObject> getWrngTrgtList(SndbQuery req) {
String[] crdnIds = req.getCrdnIds();
String crdnId = req.getCrdnId();
if (!isEmpty(crdnIds) || !isEmpty(crdnId)) {
req = new SndbQuery().setCrdnIds(crdnIds).setCrdnId(crdnId);
}
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");

@ -277,15 +277,16 @@
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN)
LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N')
<if test="crdnIds != null">
WHERE C.CRDN_ID IN ( <!-- 단속 IDs -->
<foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach>
)
</if>
<if test="crdnId != null">
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<if test='crdnIds == null and crdnId == null'>
<where>
<if test="crdnIds != null">
AND C.CRDN_ID IN ( <!-- 단속 IDs -->
<foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach>
)
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<if test="crdnSttsCd != null">
AND C.CRDN_STTS_CD = #{crdnSttsCd} <!-- 단속 상태 코드 -->
</if>
@ -411,6 +412,7 @@
</choose>
</if>
</where>
</if>
</sql>
<select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */

Loading…
Cancel
Save