개별총정보 - 납부자 등록, 수정 기능 수정.

main
jjh 1 year ago
parent ce26c986f8
commit 8cbb39d619

@ -1,7 +1,6 @@
package cokr.xit.fims.cmmn;
import cokr.xit.foundation.AbstractEntity;
import java.lang.String;
import lombok.Getter;
import lombok.Setter;
@ -26,4 +25,5 @@ public class CrdnPayerHstry extends AbstractEntity {
* ID
*/
private String rtpyrId;
}

@ -62,7 +62,7 @@ public interface CrdnPayerHstryMapper extends AbstractMapper {
* </ul>
* @return
*/
int updateCrdnPyr(Map<String, Object> params);
int updateCrdnRtpyrId(Map<String, Object> params);
/**(TB_CRDN) ID .
* @param crdnPayerHstry
@ -71,8 +71,8 @@ public interface CrdnPayerHstryMapper extends AbstractMapper {
* <li> false</li>
* </ul>
*/
default boolean updateCrdn(CrdnPayerHstry crdnPayerHstry) {
return crdnPayerHstry != null && updateCrdnPyr(params().set("crdnPayerHstry", crdnPayerHstry)) == 1;
default boolean updateCrdnPayer(CrdnPayerHstry crdnPayerHstry) {
return crdnPayerHstry != null && updateCrdnRtpyrId(params().set("crdnPayerHstry", crdnPayerHstry)) == 1;
}
}

@ -45,5 +45,5 @@ public interface CrdnPayerHstryService {
* <li> false</li>
* </ul>
*/
boolean createHstryUpdateCrdnPyr(CrdnPayerHstry crdnPayerHstry);
boolean createHstryUpdateCrdnPayer(CrdnPayerHstry crdnPayerHstry);
}

@ -62,7 +62,7 @@ public class CrdnPayerHstryBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean createHstryUpdateCrdnPyr(CrdnPayerHstry crdnPayerHstry) {
public boolean createHstryUpdateCrdnPayer(CrdnPayerHstry crdnPayerHstry) {
boolean retSuccess = false; // DB 처리 결과
// 단속 납부자 이력 정보를 등록한다.
@ -73,7 +73,7 @@ public class CrdnPayerHstryBean extends AbstractComponent {
}
// 단속 대장 납부자ID를 변경한다.
retSuccess = crdnPayerHstryMapper.updateCrdn(crdnPayerHstry);
retSuccess = crdnPayerHstryMapper.updateCrdnPayer(crdnPayerHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다.");

@ -44,7 +44,7 @@ public class CrdnPayerHstryServiceBean extends AbstractServiceBean implements Cr
}
@Override
public boolean createHstryUpdateCrdnPyr(CrdnPayerHstry crdnPayerHstry) {
return crdnPayerHstryBean.createHstryUpdateCrdnPyr(crdnPayerHstry);
public boolean createHstryUpdateCrdnPayer(CrdnPayerHstry crdnPayerHstry) {
return crdnPayerHstryBean.createHstryUpdateCrdnPayer(crdnPayerHstry);
}
}

@ -25,6 +25,8 @@ public class PayerQuery extends QueryRequest {
private String rtpyrNo;
/** 납부자 ID */
private String rtpyrId;
/** 이력 일련번호 */
private String hstrySn;
/** 단속 ID */
private String crdnId;
/** 삭제 여부 */
@ -63,6 +65,22 @@ public class PayerQuery extends QueryRequest {
return setRtpyrIds(rtpyrId);
}
/** .
* @return
*/
public String getHstrySn() {
return hstrySn;
}
/** .
* @param hstrySn
* @return PayerQuery
*/
public PayerQuery setHstrySn(String hstrySn) {
this.hstrySn = hstrySn;
return this;
}
/** .
* @return
*/

@ -132,6 +132,12 @@ public interface PayerMapper extends AbstractMapper {
return !crdnPayers.isEmpty() ? crdnPayers.get(0) : null;
}
/** .
* @param req
* @return
*/
List<DataObject> selectPayerHstrys(PayerQuery req);
/** .
* @param crdnId ID
* @return ,
@ -142,29 +148,4 @@ public interface PayerMapper extends AbstractMapper {
return selectCrdn(new PayerQuery().setCrdnId(crdnId));
}
/** .
* @param params
* <ul><li>"payer" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateCrdnRtpyrId(Payer payer);
/** .
* @param payer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateCrdnPayer(Payer payer) {
boolean saved = updateCrdnRtpyrId(payer) == 1;
if (saved) {
DataObject params = params().set("payer", payer);
insertHistory(params);
}
return saved;
}
}

@ -75,13 +75,10 @@ public interface PayerService {
*/
String createPayer(Payer payer);
/** .
* @param payer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
/** .
* @param req
* @return
*/
String updatePayer(Payer payer);
List<DataObject> getPayerHstrys(PayerQuery req);
}

@ -131,7 +131,21 @@ public class PayerBean extends AbstractComponent {
payer.setSggCd(basicInfo.getSggCd());
String vhrno = basicInfo.getVhrno();
payer.setVhrno(vhrno);
payer.setRtpyrSeCd(basicInfo.getMber_se_code());
payer.setRtpyrInptSeCd("02");
switch (basicInfo.getMber_se_code()) {
case "11" : payer.setRtpyrSeCd("01");
break;
case "12" : payer.setRtpyrSeCd("02");
break;
case "13" : payer.setRtpyrSeCd("03");
break;
case "14" : payer.setRtpyrSeCd("04");
break;
case "15" : payer.setRtpyrSeCd("05");
break;
default : payer.setRtpyrSeCd("05");
break;
}
String rtpyrNo = basicInfo.getMber_se_no();
payer.setRtpyrNo(rtpyrNo);
payer.setRtpyrNm(basicInfo.getMber_nm());
@ -153,12 +167,14 @@ public class PayerBean extends AbstractComponent {
str = basicInfo.getUse_strnghld_ho();
if (!isEmpty(str))
payer.setSno(toInt(str));
payer.setAddr(basicInfo.getRoad_nm_adres());
payer.setDtlAddr(basicInfo.getUse_strnghld_adres_nm());
payer.setWholAddr(basicInfo.getOwner_adres_full());
payer.setWholAddr(basicInfo.getRoad_nm_adres() + ", " + basicInfo.getUse_strnghld_adres_nm());
Payer result = create(payer) ? payer : getPayer(vhrno, rtpyrNo);
if (result != null)
result.setVehicleInfo(basicInfo);
return result;
}
@ -201,61 +217,66 @@ public class PayerBean extends AbstractComponent {
req.setRtpyrNo(payer.getRtpyrNo());
req.setOrderBy("RTPYR_ID DESC");
List<Payer> infoPayer = payerMapper.selectPayers(req);
if (infoPayer.size() == 0) {
DataObject params = new DataObject()
.set("roadNmCd", payer.getRoadNmCd())
.set("udgdSeCd", payer.getUdgdSeCd())
.set("bmno", payer.getBmno())
.set("bsno", payer.getBsno());
DataObject info = payerMapper.selectAddrInfo(params);
Payer infoPayer = getPayer(payer.getVhrno(), payer.getRtpyrNo());
if (info != null) {
payer.setAddrSeCd("02");
payer.setZip(info.string("ZIP"));
payer.setBldgMngNo(info.string("BLDG_MNG_NO"));
payer.setStdgCd(info.string("STDG_CD"));
payer.setDongCd(info.string("DONG_CD"));
}
payer.setWholAddr(payer.getAddr() + " " + payer.getDtlAddr()); // 전체 주소
//
payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr()); // 전체 주소
if (infoPayer == null) {
// 납부자가 신규 등록
retSuccess = payerMapper.insert(payer);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("납부자 등록에 실패하였습니다.");
}
} else {
payer.setRtpyrId(infoPayer.get(0).getRtpyrId());
retSuccess = payerMapper.update(payer);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("납부자 등록에 실패하였습니다.");
}
}
// 단속 대장의 납부자 ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry();
crdnPayerHstry.setCrdnId(payer.getCrdnId());
crdnPayerHstry.setRtpyrId(payer.getRtpyrId());
// 단속 대장의 납부자 ID 수정
retSuccess = payerMapper.updateCrdnPayer(payer);
retSuccess = crdnPayerHstryBean.createHstryUpdateCrdnPayer(crdnPayerHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자ID 등록에 실패하였습니다.");
}
} else {
// 수정할 납부자ID 와 조회한 납부자 ID 확인
if (!payer.getRtpyrId().equals(infoPayer.getRtpyrId())) {
payer.setRtpyrId(infoPayer.getRtpyrId());
// 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
// 단속 대장의 납부자 ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry();
crdnPayerHstry.setCrdnId(payer.getCrdnId());
crdnPayerHstry.setRtpyrId(payer.getRtpyrId());
retSuccess = crdnPayerHstryBean.create(crdnPayerHstry);
retSuccess = crdnPayerHstryBean.createHstryUpdateCrdnPayer(crdnPayerHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태코드 변경에 실패하였습니다.");
throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자ID 등록에 실패하였습니다.");
}
}
// 현재 조회된 납부자 정보에서 주소가 다르다면 update 필요
if (!(infoPayer.getRtpyrSeCd().equals(payer.getRtpyrSeCd()) &&
infoPayer.getRtpyrNm().equals(payer.getRtpyrNm()) &&
infoPayer.getRtpyrTelno().equals(payer.getRtpyrTelno()) &&
infoPayer.getRtpyrMblTelno().equals(payer.getRtpyrMblTelno()) &&
infoPayer.getRtpyrEml().equals(payer.getRtpyrEml()) &&
infoPayer.getRtpyrSttsCd().equals(payer.getRtpyrSttsCd()) &&
infoPayer.getZip().equals(payer.getZip()) &&
infoPayer.getAddr().equals(payer.getAddr()) &&
infoPayer.getDtlAddr().equals(payer.getDtlAddr())) ) {
retSuccess = payerMapper.update(payer);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("납부자 수정에 실패하였습니다.");
}
}
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
if (infoCrdn.number("CRDN_STTS_CD").intValue() < 21) { // 차적조회완료
if (infoCrdn.number("CRDN_STTS_CD").intValue() < 21) { // 납부자 등록 완료
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(infoCrdn.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(infoCrdn.string("CRDN_STTS_CD"));
@ -274,44 +295,16 @@ public class PayerBean extends AbstractComponent {
return retMessage;
}
/** .
* @param payer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
/** .
* @param req
* @return
*/
public String updatePayer(Payer payer) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
DataObject params = new DataObject()
.set("roadNmCd", payer.getRoadNmCd())
.set("udgdSeCd", payer.getUdgdSeCd())
.set("bmno", payer.getBmno())
.set("bsno", payer.getBsno());
DataObject info = payerMapper.selectAddrInfo(params);
if (info != null) {
payer.setAddrSeCd("02");
payer.setZip(info.string("ZIP"));
payer.setBldgMngNo(info.string("BLDG_MNG_NO"));
payer.setStdgCd(info.string("STDG_CD"));
payer.setDongCd(info.string("DONG_CD"));
public List<DataObject> getPayerHstrys(PayerQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("PH.REG_DT DESC");
}
payer.setWholAddr(payer.getAddr() + " " + payer.getDtlAddr()); // 전체 주소
retSuccess = payerMapper.update(payer);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("납부자 수정에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
return payerMapper.selectPayerHstrys(req);
}
}

@ -79,8 +79,8 @@ public class PayerServiceBean extends AbstractServiceBean implements PayerServic
}
@Override
public String updatePayer(Payer payer) {
return payerBean.updatePayer(payer);
public List<DataObject> getPayerHstrys(PayerQuery req) {
return payerBean.getPayerHstrys(req);
}
}

@ -36,9 +36,9 @@ public class PayerController extends ApplicationController {
create = "/create.do" // 납부자 등록
, update = "/update.do" // 납부자 수정
, remove = "/remove.do" // 납부자 제거
, getVehicleOwner = "/vehicle.do" // 차량/납부자 조회
, getPayerInfo = "/info.do" // 납부자 정보 조회
, createPayer = "/createPayer.do" // 납부자 대장 등록
, updatePayer = "/updatePayer.do" // 납부자 대장 수정
;
}
@ -176,26 +176,4 @@ public class PayerController extends ApplicationController {
.addObject("retMessage", retMessage);
}
/** .
* @param Payer
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updatePayer(Payer payer) {
boolean saved = false;
String retMessage = payerService.updatePayer(payer);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
}

@ -12,6 +12,7 @@ public class SprtQuery extends CmmnQuery {
private String[] cvlcptDscsnIDs;
// ID
private String crdnId; // 단속 ID
private String rtpyrId; // 납부자 ID
private String levyExclId; // 부과 제외 ID
private String opnnId; // 의견 ID
private String levyId; // 부과 ID
@ -57,6 +58,16 @@ public class SprtQuery extends CmmnQuery {
return self();
}
public String getRtpyrId() {
return ifEmpty(rtpyrId, () -> null);
}
public <T extends SprtQuery> T setRtpyrId(String rtpyrId) {
this.rtpyrId = rtpyrId;
return self();
}
public String getLevyExclId() {
return ifEmpty(levyExclId, () -> null);
}

@ -12,9 +12,7 @@ import cokr.xit.base.file.FileInfo;
import cokr.xit.base.file.FileInfo.Relation;
import cokr.xit.base.file.web.FileInfoFactory;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.cmmn.CrdnPayerHstryQuery;
import cokr.xit.fims.cmmn.CrdnSttsHstryQuery;
import cokr.xit.fims.cmmn.service.CrdnPayerHstryService;
import cokr.xit.fims.cmmn.service.CrdnSttsHstryService;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.excl.ExclQuery;
@ -23,6 +21,8 @@ import cokr.xit.fims.excl.service.Excl02Service;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.Levy01Service;
import cokr.xit.fims.levy.service.Levy02Service;
import cokr.xit.fims.payer.PayerQuery;
import cokr.xit.fims.payer.service.PayerService;
import cokr.xit.fims.rcvm.RcvmQuery;
import cokr.xit.fims.rcvm.service.Rcvm01Service;
import cokr.xit.fims.sndb.SndbQuery;
@ -93,9 +93,9 @@ public class Sprt02Controller extends ApplicationController {
@Resource(name = "crdnSttsHstryService")
private CrdnSttsHstryService crdnSttsHstryService;
/** 단속 납부자 이력 서비스 */
@Resource(name = "crdnPayerHstryService")
private CrdnPayerHstryService crdnPayerHstryService;
/**납부자 서비스*/
@Resource(name = "payerService")
private PayerService payerService;
/** 민원 상담 내용 대장 서비스 */
@Resource(name="sprt04Service")
@ -362,12 +362,12 @@ public class Sprt02Controller extends ApplicationController {
List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery);
// 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 조회
CrdnPayerHstryQuery crdnPayerHstryQuery = new CrdnPayerHstryQuery();
crdnPayerHstryQuery.setCrdnId(req.getCrdnId());
crdnPayerHstryQuery.setOrderBy("PH.REG_DT DESC, PH.RTPYR_ID DESC, PH.HSTRY_SN DESC");
// 납부자 변경 이력(TB_PAYER_HSTRY) 조회
PayerQuery payerQuery = new PayerQuery();
payerQuery.setRtpyrId(req.getRtpyrId());
payerQuery.setOrderBy("PH.REG_DT DESC");
List<?> crdnPayerHstry = crdnPayerHstryService.getCrdnPayerHstrys(crdnPayerHstryQuery);
List<?> payerHstry = payerService.getPayerHstrys(payerQuery);
boolean json = jsonResponse();
@ -382,7 +382,7 @@ public class Sprt02Controller extends ApplicationController {
.addObject("pageDataName3", "CrdnSttsHstry") // dataset3
.addObject("crdnSttsHstryList", json ? crdnSttsHstry : toJson(crdnSttsHstry)) // 단속 상태 이력
.addObject("pageDataName4", "CrdnPayerHstry") // dataset4
.addObject("crdnPayerHstryList", json ? crdnPayerHstry : toJson(crdnPayerHstry)) // 단속 납부자 이력
.addObject("payerHstryList", json ? payerHstry : toJson(payerHstry)) // 납부자 변경 이력
;
// 재조회로 호출되었다면..

@ -589,12 +589,6 @@ public class BpvController {
return super.createPayer(payer);
}
@Override
@RequestMapping(name="장애인과태료업무 납부자 수정", value=METHOD_URL.updatePayer)
public ModelAndView updatePayer(Payer payer) {
return super.updatePayer(payer);
}
}
}

@ -623,12 +623,6 @@ public class DpvController {
return super.createPayer(payer);
}
@Override
@RequestMapping(name="장애인과태료업무 납부자 수정", value=METHOD_URL.updatePayer)
public ModelAndView updatePayer(Payer payer) {
return super.updatePayer(payer);
}
}
}

@ -595,12 +595,6 @@ public class EcaController {
return super.createPayer(payer);
}
@Override
@RequestMapping(name="전기차과태료업무 납부자 수정", value=METHOD_URL.updatePayer)
public ModelAndView updatePayer(Payer payer) {
return super.updatePayer(payer);
}
}
}

@ -600,13 +600,6 @@ public class PvsController {
return super.createPayer(payer);
}
@Override
@RequestMapping(name="주정차과태료업무 납부자 수정", value=METHOD_URL.updatePayer)
public ModelAndView updatePayer(Payer payer) {
return super.updatePayer(payer);
}
}
}

@ -81,12 +81,12 @@
)
</insert>
<update id="updateCrdnPayer" parameterType="map">/* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */
UPDATE TB_CRDN_PAYER_HSTRY
SET RTPYR_ID = #{crdnSttsHstry.rtpyrId} /* 납부자 ID */
, MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{crdnSttsHstry.crdnId} /* 단속 ID */
<update id="updateCrdnRtpyrId" parameterType="map">/* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */
UPDATE TB_CRDN
SET RTPYR_ID = #{crdnPayerHstry.rtpyrId} /* 납부자 ID */
, MDFCN_DT = #{crdnPayerHstry.lastModified} /* 수정 일시 */
, MDFR = #{crdnPayerHstry.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{crdnPayerHstry.crdnId} /* 단속 ID */
</update>
</mapper>

@ -153,7 +153,8 @@
FROM TB_CRDN_RE_REG
WHERE RE_REG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT INTO TB_CRDN_RE_REG (
INSERT
INTO TB_CRDN_RE_REG (
RE_REG_ID /* 재등록 ID */
, BFR_CRDN_ID /* 이전 단속 ID */
, CRDN_ID /* 단속 ID */

@ -402,10 +402,48 @@ UPDATE TB_PAYER
</if>
</select>
<update id="updateCrdnRtpyrId" parameterType="cokr.xit.fims.payer.Payer">/* 단속 대장 수정(payerMapper.updateCrdnRtpyrId) */
UPDATE TB_CRDN
SET RTPYR_ID = #{rtpyrId} /* 납부자 ID */
WHERE CRDN_ID = #{crdnId} /* 단속 ID */
</update>
<sql id="selectHstry">
SELECT PH.RTPYR_ID /* 납부자 ID */
, PH.HSTRY_SN /* 이력 일련번호 */
, PH.SGG_CD /* 시군구 코드 */
, PH.VHRNO /* 차량번호 */
, PH.RTPYR_INPT_SE_CD /* 납부자 입력 구분 코드 */
, PH.RTPYR_SE_CD /* 납부자 구분 코드 */
, PH.RTPYR_NO /* 납부자 번호 */
, PH.RTPYR_NM /* 납부자 명 */
, PH.RTPYR_TELNO /* 납부자 전화번호 */
, PH.RTPYR_MBL_TELNO /* 납부자 휴대 전화번호 */
, PH.RTPYR_EML /* 납부자 이메일 */
, PH.RTPYR_BRDT /* 납부자 생년월일 */
, PH.RTPYR_STTS_CD /* 납부자 상태 코드 */
, PH.ADDR_SE_CD /* 주소 구분 코드 */
, PH.ZIP /* 우편번호 */
, PH.ROAD_NM_CD /* 도로 명 코드 */
, PH.UDGD_SE_CD /* 지하 구분 코드 */
, PH.BMNO /* 건물본번 */
, PH.BSNO /* 건물부번 */
, PH.BLDG_MNG_NO /* 건물 관리 번호 */
, PH.STDG_CD /* 법정동 코드 */
, PH.DONG_CD /* 행정동 코드 */
, PH.MTN_SE_CD /* 산 구분 코드 */
, PH.MNO /* 본번 */
, PH.SNO /* 부번 */
, PH.SPCL_DONG /* 특수 동 */
, PH.SPCL_HO /* 특수 호 */
, PH.SPCL_ADDR /* 특수 주소 */
, PH.ADDR /* 주소 */
, PH.DTL_ADDR /* 상세 주소 */
, PH.WHOL_ADDR /* 전체 주소 */
, PH.REG_DT /* 등록 일시 */
, PH.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = PH.RGTR) AS RGTR_NM /* 등록자 명 */
FROM TB_PAYER_HSTRY PH
</sql>
<select id="selectPayerHstrys" parameterType="map" resultType="dataobject">/* 납부자 변경 이력 대장 객체 가져오기(payerMapper.selectPayerHstrys) */
<include refid="selectHstry" />
WHERE RTPYR_ID = #{rtpyrId}
<include refid="utility.orderBy" />
</select>
</mapper>

@ -11,6 +11,7 @@
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.RTPYR_ID /* 납부자 ID */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
@ -119,6 +120,7 @@
, P.WHOL_ADDR /* 전체 주소 */
, P.MDFCN_DT AS P_MDFCN_DT /* 수정 일시 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = P.MDFR) AS P_MDFR_NM /* 수정자 명 */
, CC.CVLCPT_LINK_ID /* 민원 연계 ID */
, CC.CVLCPT_APLY_SE_CD /* 민원 신청 구분 코드 */
, CC.DSTRBNC_YN /* 1면 방해 여부 */
, CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */

@ -189,11 +189,21 @@ SELECT PRYE <!-- 연식 -->
</where></select>
<select id="selectRoadNmAdres" parameterType="map" resultType="dataobject">/* vehicleInfoMapper.selectRoadNmAdres(도로명 주소 조회) */
SELECT CONCAT(CTPV_NM, ' ', SGG_NM, ' ', ROAD_NM, ' ', BMNO, '-', BSNO) ROAD_NM_ADRES, ZIP
SELECT CASE WHEN LENGTH(STDG_LI_NM) > 0 THEN
CASE WHEN BSNO IS NULL OR BSNO = 0 THEN CONCAT(CTPV_NM, ' ', SGG_NM, ' ', STDG_NM, ' ', ROAD_NM, ' ', BMNO)
ELSE CONCAT(CTPV_NM, ' ', SGG_NM, ' ', STDG_NM, ' ', ROAD_NM, ' ', BMNO, '-', BSNO)
END
ELSE
CASE WHEN BSNO IS NULL OR BSNO = 0 THEN CONCAT(CTPV_NM, ' ', SGG_NM, ' ', ROAD_NM, ' ', BMNO)
ELSE CONCAT(CTPV_NM, ' ', SGG_NM, ' ', ROAD_NM, ' ', BMNO, '-', BSNO)
END
END AS ROAD_NM_ADRES
, ZIP
FROM TB_ROAD_ADDR
WHERE ROAD_NM_CD = #{roadNmCd}
AND BMNO = #{bmno}
AND BSNO = #{bsno}</select>
AND BSNO = #{bsno}
</select>
<insert id="insertBasicInfo" parameterType="map">/* vehicleInfoMapper.insertBasicInfo(자동차 기본사항 조회 로그 등록) */
<selectKey keyProperty="info.bsc_mttr_id" resultType="string" order="BEFORE">

@ -48,7 +48,7 @@
<!-- 법정동 -->
<div class="col-md-6 select2-primary">
<label for="crdnStdgNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">법정동</label>
<input type="text" class="form-control w-px-150" id="crdnStdgNm--${pageName}" name="crdnStdgNm" data-map="CRDN_STDG_NM" list="stdgNmList--${pageName}" />
<input type="text" class="form-control w-50" id="crdnStdgNm--${pageName}" name="crdnStdgNm" data-map="CRDN_STDG_NM" list="stdgNmList--${pageName}" />
<datalist id="stdgNmList--${pageName}">
<c:forEach items="${stdgNmList}" var="item">
<option value="${item}"></option>
@ -58,7 +58,7 @@
<!-- 도로명 -->
<div class="col-md-6 select2-primary">
<label for="crdnRoadNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">도로명</label>
<input type="text" class="form-control" id="crdnRoadNm--${pageName}" name="crdnRoadNm" data-map="CRDN_ROAD_NM" />
<input type="text" class="form-control w-50" id="crdnRoadNm--${pageName}" name="crdnRoadNm" data-map="CRDN_ROAD_NM" />
</div>
<!-- 단속 장소 -->
<div class="col-md-12">
@ -288,33 +288,8 @@
}
// 차적 조회
getVehicle${pageName} = () => {
let crdnYmd = $("#crdnYmd--${pageName}").val().replaceAll("-", "");
let vhrno = $("#vhrno--${pageName}").val();
if (crdnYmd == "") {
dialog.alert({
content : "단속일자를 입력하세요.",
onClose : function() { $("#crdnYmd--${pageName}").focus(); }
});
return;
}
if (vhrno == "") {
dialog.alert({
content : "차량번호를 입력하세요.",
onClose : function() { $("#vhrno--${pageName}").focus(); }
});
return;
}
let params = {
sggCd : $("#sggCd--${pageName}").val()
, levy_stdde : crdnYmd
, inqire_se_code : "3"
, vhrno : vhrno
}
getVehicle${pageName} = (params) => {
if (!params) return;
json.post({
url : wctx.url("/payer/vehicle.do")
@ -401,7 +376,34 @@
**************************************************************************/
// 차적 조회
fnVehicle${pageName} = () => {
getVehicle${pageName}();
let crdnYmd = $("#crdnYmd--${pageName}").val().replaceAll("-", "");
let vhrno = $("#vhrno--${pageName}").val();
if (crdnYmd == "") {
dialog.alert({
content : "단속일자를 입력하세요.",
onClose : function() { $("#crdnYmd--${pageName}").focus(); }
});
return;
}
if (vhrno == "") {
dialog.alert({
content : "차량번호를 입력하세요.",
onClose : function() { $("#vhrno--${pageName}").focus(); }
});
return;
}
let params = {
inqire_se_code : "3"
, sggCd : $("#sggCd--${pageName}").val()
, levy_stdde : crdnYmd
, vhrno : vhrno
}
getVehicle${pageName}(params);
}
// 저장

@ -16,6 +16,7 @@
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="rtpyrId--${pageName}" name="rtpyrId" data-map="RTPYR_ID" />
<input type="hidden" id="rtpyrInptSeCd--${pageName}" name="rtpyrInptSeCd" data-map="RTPYR_INPT_SE_CD" />
<div class="row g-1">
<!-- 단속일시 -->
@ -74,7 +75,7 @@
<!-- 납부자 이메일 -->
<div class="col-md-12">
<label for="rtpyrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label>
<input type="text" class="form-control w-40" id="rtpyrEml--${pageName}" name="rtpyrEml" data-map="RTPYR_EML" />
<input type="text" class="form-control w-50" id="rtpyrEml--${pageName}" name="rtpyrEml" data-map="RTPYR_EML" />
</div>
<!-- 주소 --><!-- 우편번호 -->
<div class="col-md-12">
@ -121,6 +122,7 @@
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnEdit--${pageName}" title="수정" onclick="fnEdit${pageName}()">수정</button>
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장" onclick="fnSave${pageName}()">저장</button>
</span>
</span>
@ -162,7 +164,7 @@
// 업무구분에 따른 url 변경
${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/createPayer.do");
${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/updatePayer.do");
${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/update.do");
}
/**************************************************************************
@ -180,13 +182,23 @@
${pageName}Control.save = (info) => {
if (!info) return;
let create = isEmpty(info.rtpyrId);
let create = false;
let bfrVhrno = ${pageName}Control.getValue("VHRNO");
let bfrRtpyrNo = ${pageName}Control.getValue("RTPYR_NO");
info.rtpyrInptSeCd = "01"; // 납부자 입력 구분 코드
if (bfrVhrno == info.vhrno && bfrRtpyrNo == info.rtpyrNo) {
create = false;
} else {
create = true;
}
if ($("#rtpyrInptSeCd--${pageName}").val() == "") {
info.rtpyrInptSeCd = "01"; // 납부자 입력 구분 코드
}
if (info.rtpyrSeCd == "01") {
info.rtpyrBrdt = info.rtpyrNo.substr(0, 6); // 생년월일
}
info.wholAddr = info.addr + ", " + info.dtlAddr; // 전체 주소
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
@ -226,6 +238,8 @@
$("#mtnSeCd--${pageName}").val(info.use_strnghld_mntn); // 사용본거지 산
$("#mno--${pageName}").val(info.use_strnghld_lnbr); // 사용본거지 번지
$("#sno--${pageName}").val(info.use_strnghld_ho); // 사용본거지 호
$("#btnEdit--${pageName}").show(); // 수정 버튼이 보이도록..
}
// 차적 조회
@ -257,6 +271,13 @@
$("#stdgCd--${pageName}").val("");
$("#dongCd--${pageName}").val("");
} else {
$("#rtpyrId--${pageName}").val(resp.rtpyrId); // 납부자 ID
$("#rtpyrInptSeCd--${pageName}").val("02"); // 납부자 입력 구분 코드
$("#addr--${pageName}").attr("readonly", true); // 주소
$("#zip--${pageName}").attr("readonly", true); // 우편번호
$("#dtlAddr--${pageName}").attr("readonly", true); // 상세 주소
$("#btnZip--${pageName}").hide(); // 우편번호 검색
callbackVehicle${pageName}(resp.vehicle);
}
}
@ -268,9 +289,7 @@
**************************************************************************/
// 검색조건 초기값 셋팅
initForm${pageName} = () => {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#rcptYmd--${pageName}").datepicker("setDate", new Date());
$("#btnEdit--${pageName}").hide();
}
// 이벤트 설정
@ -305,10 +324,10 @@
}
let params = {
sggCd : $("#sggCd--${pageName}").val()
// , vhrno : vhrno
, vhrno : "11일1111"
inqire_se_code : "3"
, sggCd : $("#sggCd--${pageName}").val()
, levy_stdde : crdnYmd
, vhrno : vhrno
}
getVehicle${pageName}(params);
@ -319,6 +338,15 @@
}
// 화면에서 보여주는 주소입력 부분 수정
fnEdit${pageName} = () => {
$("#rtpyrInptSeCd--${pageName}").val("01"); // 입력 구분
$("#addr--${pageName}").prop("readonly", false); // 주소
$("#zip--${pageName}").prop("readonly", false); // 우편번호
$("#dtlAddr--${pageName}").prop("readonly", false); // 상세 주소
$("#btnZip--${pageName}").show(); // 우편번호 검색
}
// 저장
fnSave${pageName} = () => {
// validate 확인

@ -11,6 +11,7 @@
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="rtpyrId--${pageName}" name="rtpyrId" data-map="RTPYR_ID" />
<div class="row g-1">
<!-- 차량번호 -->
@ -481,6 +482,7 @@
, crdnId : crdnId
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID")
};
getInfoPrcsDtl${pageName}(params);

@ -220,9 +220,9 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">납부자 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnDeletePayer--${pageName}" title="납부자 초기화" onclick="fnDeletePayer${pageName}();">
납부자 초기화
</button>
<%-- <button type="button" class="btn btn-primary" id="btnDeleteCrdnPayer--${pageName}" title="납부자 초기화" onclick="fnDeleteCrdnPayer${pageName}();"> --%>
<!-- 납부자 초기화 -->
<!-- </button> -->
<button type="button" class="btn btn-primary" id="btnUpdatePayer--${pageName}" title="납부자 수정" onclick="fnUpdatePayer${pageName}();">
납부자 수정
</button>
@ -647,7 +647,6 @@
, success : resp => {
if (resp.saved) {
dialog.alert("단속재등록 작업이 정상 처리되었습니다.");
dialog.close(${pageName}Control.prefix + "Dialog");
}
}
});
@ -673,8 +672,18 @@
}
// 납부자 초기화
deletePayer${pageName} = (params) => {
deleteCrdnPayer${pageName} = (params) => {
if (!params) return;
// ajax.post({
// url : wctx.url(params.taskSeCd + "/excl/excl03/010/create.do")
// , data : params || {}
// , success : resp => {
// if (resp.saved) {
// dialog.alert("납부자 정보 초기화 작업이 정상 처리되었습니다.");
// }
// }
// });
}
// 납부자 정보 수정
@ -837,12 +846,18 @@
**************************************************************************/
// 민원 원본 보기
fnViewCvlcptOrgnl${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); // 단속 ID
let cvlcptLinkId = ${pageName}Control.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
// 민원 연계 ID가 없다면.. return
if (cvlcptLinkId == null || cvlcptLinkId == "") {
dialog.alert("조회된 단속 민원 대장 정보가 없습니다.");
return;
}
let params = {
callPurpose : "view"
@ -856,12 +871,18 @@
// 민원 답변 보기
fnViewAnswerPreview${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); // 단속 ID
let cvlcptLinkId = ${pageName}Control.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
// 민원 연계 ID가 없다면.. return
if (cvlcptLinkId == null || cvlcptLinkId == "") {
dialog.alert("조회된 단속 민원 대장 정보가 없습니다.");
return;
}
let params = {
callPurpose : "view"
@ -965,8 +986,29 @@
}
// 납부자 초기화
fnDeletePayer${pageName} = () => {
fnDeleteCrdnPayer${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == undefined || crdnId == "") {
return;
}
let params = {
callPurpose : "update"
, crdnId : crdnId // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID
, delYn : "N"
};
dialog.alert({
content : "선택한 자료의 납부자 정보를 초기화 하시겠습니까?"
, onOK : () => {
deleteCrdnPayer${pageName}(params);
}
});
}
// 납부자 수정

@ -210,8 +210,8 @@
</tbody>
<template id="${infoPrefix}Row--${pageName}${pageDataName4}">
<tr data-key="{CHG_HSTRY_ID}">
<td class="cmn text-center" onclick="{onclick}">{PH_REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}">{PH_RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}">{ZIP}</td>
<td class="cmn text-start" onclick="{onclick}">{WHOL_ADDR}</td>
<td class="cmn dummy-td"></td>
@ -294,15 +294,15 @@
}
});
// 단속납부자이력 Dataset
// 납부자 이력 Dataset
var ${pageName}${pageDataName4}Dataset = new Dataset({
prefix : "crdnPayerHstry"
, prefixName : "단속납부자이력"
prefix : "payerHstry"
, prefixName : "납부자이력"
, keymapper : info => info ? info.CHG_HSTRY_ID : ""
, dataGetter : obj => obj.crdnPayerHstryList
, dataGetter : obj => obj.payerHstryList
, appendData : true
, formats : {
PH_REG_DT : datetimeFormat
REG_DT : datetimeFormat
}
, onDatasetChange : obj => {
renderList${pageName}${pageDataName4}();
@ -531,7 +531,7 @@
${pageName}${pageDataName3}Dataset.setData(resp.crdnSttsHstryList);
// 주소 변동 이력 Data 셋팅
${pageName}${pageDataName4}Dataset.setData(resp.crdnPayerHstryList);
${pageName}${pageDataName4}Dataset.setData(resp.payerHstryList);
// 최상단 단속 Data 셋팅
if (resp.totalInfo) {
@ -718,7 +718,7 @@
${pageName}${pageDataName3}Dataset.setData(${crdnSttsHstryList});
// 주소 변동 이력 Data 셋팅
${pageName}${pageDataName4}Dataset.setData(${crdnPayerHstryList});
${pageName}${pageDataName4}Dataset.setData(${payerHstryList});
});
// #sourceURL=sprt02050-info.jsp

Loading…
Cancel
Save