1. 개별총정보 - 부과제외 등록, 수정, 삭제 기능 수정.

2. 부과제외 삭제 수정.
main
jjh 1 year ago
parent 88863a374d
commit c210e3afa9

@ -73,6 +73,6 @@ public interface CrdnSttsHstryService {
* <li> false</li>
* </ul>
*/
boolean removeHstryUpdateCrdnSttsCd(String crdnId);
boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd);
}

@ -25,6 +25,7 @@ import cokr.xit.fims.cmmn.dao.CrdnSttsHstryMapper;
*/
@Component("crdnSttsHstryBean")
public class CrdnSttsHstryBean extends AbstractComponent {
/** 단속 상태 이력 정보 DAO */
@Resource(name = "crdnSttsHstryMapper")
private CrdnSttsHstryMapper crdnSttsHstryMapper;
@ -61,6 +62,10 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* </ul>
*/
public boolean create(CrdnSttsHstry crdnSttsHstry) {
if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
return crdnSttsHstryMapper.insert(crdnSttsHstry);
}
@ -107,21 +112,25 @@ public class CrdnSttsHstryBean extends AbstractComponent {
public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) {
boolean retSuccess = false; // DB 처리 결과
// 단속상태이력 정보를 등록한다.
if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
retSuccess = crdnSttsHstryMapper.insert(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다.");
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다.");
}
// 단속상태이력 정보를 등록한다.
// 단속(TB_CRDN) 대장을 수정 한다.
retSuccess = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다.");
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다.");
}
return retSuccess;
return true;
}
/** , .
@ -131,37 +140,65 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean removeHstryUpdateCrdnSttsCd(String crdnId) {
public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd) {
boolean retSuccess = false; // DB 처리 결과
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회 정보
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회
CrdnSttsHstry newCrdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 신규 등록
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY)
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 조회 한다.
infoCrdnSttsHstry = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId);
// 단속상태이력(TB_CRDN_STTS_HSTRY)
// 신규 단속상태코드가 있다면.. 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
if (!newCrdnSttsCd.equals("") ) {
newCrdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
newCrdnSttsHstry.setBfrSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 이전 상태 코드
newCrdnSttsHstry.setBfrSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 이전 상태 변경 일시
newCrdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
newCrdnSttsHstry.setUseYn("N");
retSuccess = crdnSttsHstryMapper.insert(newCrdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("신규 단속상태이력 정보 등록 중 오류가 발생하였습니다.");
}
}
// 조회된 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
crdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID")); // 상태 이력 ID
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryMapper.delete(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 삭제 중 오류가 발생하였습니다.");
throw new RuntimeException("단속상태이력 정보 삭제 중 오류가 발생하였습니다.");
}
// 단속(TB_CRDN)
// 단속(TB_CRDN) 대장의 단속 상태 코드를 수정 한다.
crdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 상태 코드
crdnSttsHstry.setCrdnSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 상태 변경 일시
// 단속(TB_CRDN) 상태 코드를 수정 한다.
retSuccess = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다.");
throw new RuntimeException("단속 대장에 단속상태코드 변경 중 오류가 발생하였습니다.");
}
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
newCrdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
newCrdnSttsHstry.setBfrSttsCd(newCrdnSttsCd); // 이전 상태 코드
newCrdnSttsHstry.setBfrSttsChgDt(newCrdnSttsHstry.getCreatedAt()); // 이전 상태 변경 일시
newCrdnSttsHstry.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 단속 상태 코드
newCrdnSttsHstry.setUseYn("Y");
retSuccess = crdnSttsHstryMapper.insert(newCrdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("이전 단속상태이력 정보 등록 중 오류가 발생하였습니다.");
}
return retSuccess;
return true;
}
}

@ -61,8 +61,8 @@ public class CrdnSttsHstryServiceBean extends AbstractServiceBean implements Crd
}
@Override
public boolean removeHstryUpdateCrdnSttsCd(String crdnId) {
return crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnId);
public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd) {
return crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnId, newCrdnSttsCd);
}
}

@ -46,7 +46,9 @@ public class Excl01Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getLevyExclList(ExclQuery req) {
req.setOrderBy("LEVY_EXCL_ID"); // 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return levyExclMapper.selectLevyExclList(req);
}
@ -56,7 +58,9 @@ public class Excl01Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getLevyExcls(ExclQuery req) {
req.setOrderBy("LEVY_EXCL_ID DESC"); // 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT DESC");
}
return levyExclMapper.selectLevyExcls(req);
}
@ -66,6 +70,10 @@ public class Excl01Bean extends AbstractComponent {
* @return
*/
public DataObject getLevyExclInfo(ExclQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("LEVY_EXCL_ID DESC");
}
return levyExclMapper.selectLevyExclInfo(req);
}
@ -74,13 +82,10 @@ public class Excl01Bean extends AbstractComponent {
* @return
*/
public DataObject getCrdnInfo(ExclQuery req) {
DataObject dataCrdn = levyExclMapper.selectCrdn(req); // 등록(단속 조회)
DataObject dataCrdn = levyExclMapper.selectCrdn(req); // 단속 조회
// 등록 호출시.. 부과제외 등록시 기본값 셋팅
if (req.getCallPurpose() == null || req.getCallPurpose().equals("create")) {
dataCrdn.set("LEVY_EXCL_YMD", dataCrdn.get("TODAY")); // 부과 제외 일자
dataCrdn.set("LEVY_EXCL_SE_CD", req.getLevyExclSeCd()); // 부과 제외 구분 코드
}
return dataCrdn;
}
@ -362,6 +367,7 @@ public class Excl01Bean extends AbstractComponent {
public boolean removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String newHstrySttsCd = ""; // 신규 상태 코드
ExclQuery req = new ExclQuery();
@ -374,11 +380,11 @@ public class Excl01Bean extends AbstractComponent {
// 단속 상태 코드(CRDN_STTS_CD) 확인..
if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
throw new RuntimeException("현재 단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
} else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고
throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
throw new RuntimeException("현재 단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
} else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소
throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
throw new RuntimeException("현재 단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
}
// 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다.
@ -388,8 +394,14 @@ public class Excl01Bean extends AbstractComponent {
throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다.");
}
if (infoLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
newHstrySttsCd = "91";
} else if (infoLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고
newHstrySttsCd = "93";
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoLevyExcl.string("CRDN_ID"));
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoLevyExcl.string("CRDN_ID"), newHstrySttsCd);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 삭제 중 단속상태 변경에 실패하였습니다.");

@ -41,10 +41,15 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
@Override
public DataObject getLevyExclInfo(ExclQuery req) {
if (req.getLevyExclId() != null) {
return excl01Bean.getLevyExclInfo(req);
} else {
if (req.getCallPurpose() == null) {
// req.setCallPurpose("view");
req.setCallPurpose("create"); // 추후 삭제
}
if (req.getCallPurpose().equals("create")) {
return excl01Bean.getCrdnInfo(req);
} else {
return excl01Bean.getLevyExclInfo(req);
}
}

@ -48,7 +48,9 @@ public class Excl02Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getOpnnSbmsnList(ExclQuery req) {
req.setOrderBy("OPNN_ID"); // 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return opnnSbmsnMapper.selectOpnnSbmsnList(req);
}
@ -58,7 +60,10 @@ public class Excl02Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getOpnnSbmsns(ExclQuery req) {
req.setOrderBy("OPNN_ID DESC"); // 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT DESC");
}
return opnnSbmsnMapper.selectOpnnSbmsns(req);
}
@ -67,6 +72,10 @@ public class Excl02Bean extends AbstractComponent {
* @return
*/
public DataObject getOpnnSbmsnInfo(ExclQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("OPNN_ID DESC");
}
return opnnSbmsnMapper.selectOpnnSbmsnInfo(req.getOpnnId());
}
@ -77,11 +86,8 @@ public class Excl02Bean extends AbstractComponent {
public DataObject getCrdnInfo(ExclQuery req) {
DataObject dataCrdn = opnnSbmsnMapper.selectCrdn(req); // 단속ID로 단속, 의견제출 조회
// 등록 호출시.. 초기 데이터 설정
if (req.getCallPurpose().equals("create")) { // 의견제출 등록시 기본값 셋팅
dataCrdn.set("RCPT_YMD", dataCrdn.string("TODAY")); // 접수 일자
dataCrdn.set("RCPT_NO", dataCrdn.string("NEW_RCPT_NO")); // 접수 번호
}
return dataCrdn;
}
@ -284,7 +290,7 @@ public class Excl02Bean extends AbstractComponent {
// 단속 상태 코드가 의견제출 접수(31) 또는 의견제출 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다.
if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID"));
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID"), "92");
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("의견제출 삭제 중 단속상태 변경에 실패하였습니다.");

@ -42,18 +42,14 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
@Override
public DataObject getOpnnSbmsnInfo(ExclQuery req) {
if (req.getLevyExclId() != null) {
return excl02Bean.getOpnnSbmsnInfo(req);
} else {
DataObject opnnSbmsnInfo = excl02Bean.getCrdnInfo(req);
// 등록(create)으로 실행했는데 의견제출 ID가 존재한다면 이미 등록되었으므로 오류로 처리..
if (req.getCallPurpose() == "create" && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("의견제출 대장에 정보가 이미 존재합니다.");
if (req.getCallPurpose() == null) {
req.setCallPurpose("view");
}
return opnnSbmsnInfo;
if (req.getCallPurpose().equals("create")) {
return excl02Bean.getCrdnInfo(req);
} else {
return excl02Bean.getOpnnSbmsnInfo(req);
}
}

@ -34,7 +34,9 @@ public class Excl03Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getCrackdownReRegistrationList(ExclQuery req) {
req.setOrderBy("RE_REG_ID"); // 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return crdnReRegMapper.selectCrdnReRegList(req);
}

@ -80,14 +80,15 @@ public class Excl01Controller extends ApplicationController {
public ModelAndView getLevyExclInfo(String saveCallbackFuncName, String savedCallbackFuncName, ExclQuery req) {
DataObject levyExclInfo = excl01Service.getLevyExclInfo(req);
if (req.getLevyExclId() == null && !levyExclInfo.string("LEVY_EXCL_ID").equals("")) {
// 등록을 호출하였지만 등록된 부과제외 ID가 있는지 확인.
if (req.getCallPurpose() == "create" && !levyExclInfo.string("LEVY_EXCL_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("message", "등록된 부과제외 정보가 있습니다.");
return mav;
}
return mav
.addObject("message", "이미 등록된 부과제외 정보가 있습니다.")
.addObject("errorMessage", "이미 등록된 부과제외 정보가 있습니다.")
;
} else {
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info");
@ -107,6 +108,7 @@ public class Excl01Controller extends ApplicationController {
.addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo))
;
}
}
/** .
* @param levyExcl

@ -90,13 +90,13 @@ public class Excl02Controller extends ApplicationController {
public ModelAndView getOpnnSbmsnInfo(ExclQuery req) {
DataObject opnnSbmsnInfo = excl02Service.getOpnnSbmsnInfo(req);
// 등록으로 실행했는데 의견제출 ID가 존재한다면 이미 등록되었으므로 오류로 처리..
if (req.getOpnnId() == null && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
// 등록을 호출하였지만 등록된 의견제출 ID가 있는지 확인.
if (req.getCallPurpose() == "create" && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("message", "등록된 의견제출 정보가 있습니다.");
return mav;
return mav
.addObject("errorMessage", "이미 등록된 의견제출 정보가 있습니다.")
;
} else {
boolean json = jsonResponse();

@ -170,14 +170,14 @@ public class Sprt02Controller extends ApplicationController {
}
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_YMD DESC");
sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_DTL_ID DESC");
List<?> sndngDtl = sndb01Service.getSndngDtls(sndb01Query);
// 공시송달 정보
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SV.REG_DT DESC");
sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC");
List<?> svbtc = sndb01Service.getSvbtcs(sndb01Query);
@ -235,14 +235,14 @@ public class Sprt02Controller extends ApplicationController {
// 단속 상태 이력
CrdnSttsHstryQuery crdnSttsHstryQuery = new CrdnSttsHstryQuery();
crdnSttsHstryQuery.setCrdnId(req.getCrdnId());
crdnSttsHstryQuery.setOrderBy("CSH.REG_DT DESC");
crdnSttsHstryQuery.setOrderBy("CSH.REG_DT DESC, CSH.STTS_HSTRY_ID DESC");
List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery);
// 단속 납부자 이력
CrdnPayerHstryQuery crdnPayerHstryQuery = new CrdnPayerHstryQuery();
crdnPayerHstryQuery.setCrdnId(req.getCrdnId());
crdnPayerHstryQuery.setOrderBy("CPH.REG_DT DESC");
crdnPayerHstryQuery.setOrderBy("CPH.REG_DT DESC, CPH.CHG_HSTRY_ID DESC");
List<?> crdnPayerHstry = crdnPayerHstryService.getCrdnPayerHstrys(crdnPayerHstryQuery);
@ -253,6 +253,7 @@ public class Sprt02Controller extends ApplicationController {
return mav
.addObject("pageName", "sprt02050")
.addObject("pageNameMain", "sprt02010")
.addObject("pageDataName1", "Rduct") // dataset1
.addObject("rduct", json ? rduct : toJson(rduct)) // 감경 정보
.addObject("pageDataName2", "LevyExcl") // dataset2
.addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 정보

@ -103,7 +103,7 @@
, #{crdnSttsHstry.crdnSttsCd} /* 단속 상태 코드 */
, #{crdnSttsHstry.taskDtlId} /* 업무 상세 ID */
, #{crdnSttsHstry.etcCn} /* 기타 내용 */
, 'Y' /* 삭제 여부 */
, #{crdnSttsHstry.useYn} /* 단속 상태 변경 일시 */
, #{crdnSttsHstry.createdAt} /* 등록 일시 */
, #{crdnSttsHstry.createdBy} /* 등록자 */
, #{crdnSttsHstry.lastModified} /* 수정 일시 */
@ -125,6 +125,7 @@
, MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */
WHERE STTS_HSTRY_ID = #{crdnSttsHstry.sttsHstryId} /* 상태 이력 ID */
AND USE_YN = 'Y' /* 사용 여부 */
</update>
<update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */

@ -354,7 +354,7 @@
, data : { crdnId : crdnId }
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("dialog")
id : "totalInfoMainDialog"
, title : "개별총정보"
, content : resp
, size : "xxl"
@ -438,7 +438,7 @@
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : ${pageName}Control.prefixed("dialog")
id : ${pageName}Control.prefixed("Dialog")
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : ${pageName}Control.infoSize

@ -43,7 +43,7 @@
<!-- 기타 내용 -->
<div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<input type="text" class="form-control w-px-400" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" data-maxlengthb="1000" />
<input type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" data-maxlengthb="1000" />
</div>
</div>
</form>
@ -56,7 +56,7 @@
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary" id="btnSave--${pageName}" title="저장" onclick="fnBtnSave${pageName}()">저장</button>
<button type="button" class="btn btn-primary" id="btnSaveLevyExcl--${pageName}" title="저장" onclick="fnSaveLevyExcl${pageName}()">저장</button>
</span>
</span>
</div>
@ -105,7 +105,7 @@
${pageName}Control.onSave = (resp) => {
if (resp.saved) {
dialog.alert("저장됐습니다.");
dialog.close(${pageName}Control.prefix + "dialog");
dialog.close(${pageName}Control.prefix + "Dialog");
if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved);
@ -177,7 +177,7 @@
* function
**************************************************************************/
// 저장
function fnBtnSave${pageName}() {
function fnSaveLevyExcl${pageName}() {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;

@ -191,7 +191,7 @@
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "totalInfoOpnnSbmsn"
, prefixName : "의견제출 정보"
, prefixName : "의견제출"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsn
, formats : {
@ -218,9 +218,9 @@
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = "의견제출 등록";
dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = "의견제출 수정";
dialogTitle = ${pageName}Control.prefixName + " 수정";
} else {
return;
}
@ -268,23 +268,31 @@
, title : "의견제출 답변 처리"
, content : resp
, size : "lg"
, onClose : () => { fnDataRefreshInfo(params.crdnId); } // callback 자료 조회
, onClose : () => { fnDataRefreshInfo(); } // callback 자료 조회
});
}
});
}
// 재조회
fnDataRefreshInfo = (crdnId) => {
// 단속 ID 확인
if (crdnId == undefined || crdnId == null || crdnId == "") {
crdnId = $("#crdnId--${pageName}").val();
fnDataRefreshInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
url : wctx.url("/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : { crdnId : crdnId }
, data : params || {}
, success : resp => {
${pageName}Control.dataset.clear();
${pageName}Control.setData([resp.opnnSbmsn]); // Dataset 셋팅

@ -13,56 +13,56 @@
<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="btnRductCreate--${pageName}" title="감경 등록" onclick="fnBtnRductCreate${pageName}();">
<button type="button" class="btn btn-primary" id="btnCreateRduct--${pageName}" title="감경 등록" onclick="fnCreateRduct${pageName}();">
감경 등록
</button>
<button type="button" class="btn btn-primary" id="btnRductUpdate--${pageName}" title="감경 수정" onclick="fnBtnRductUpdate${pageName}();">
<button type="button" class="btn btn-primary" id="btnUpdateRduct--${pageName}" title="감경 수정" onclick="fnUpdateRduct${pageName}();">
감경 수정
</button>
<button type="button" class="btn btn-primary" id="btnRductRemove--${pageName}" title="감경 삭제" onclick="fnBtnRductRemove${pageName}();">
<button type="button" class="btn btn-primary" id="btnRemoveRduct--${pageName}" title="감경 삭제" onclick="fnRemoveRduct${pageName}();">
감경 삭제
</button>
</span>
</div> <!-- <div class="container-page-btn"> -->
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<form id="frmEdit--${pageName}${pageDataName1}" name="frmEdit${pageDataName1}">
<!-- hidden -->
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" />
<input type="hidden" id="rductId--${pageName}${pageDataName1}" name="rductId" data-map="RDUCT_ID" />
<div class="row g-1">
<!-- 감경 일자 -->
<div class="col-md-6">
<label for="rductYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 일자</label>
<input type="text" class="form-control w-30" id="rductYmd--${pageName}" name="rductYmd" data-map="RDUCT_YMD" readonly />
<label for="rductYmd--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 일자</label>
<input type="text" class="form-control w-30" id="rductYmd--${pageName}${pageDataName1}" name="rductYmd" data-map="RDUCT_YMD" readonly />
</div>
<!-- -->
<div class="col-md-6">
</div>
<!-- 감경 사유 명 -->
<div class="col-md-6">
<label for="rductRsnNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 사유</label>
<input type="text" class="form-control w-30" id="rductRsnNm--${pageName}" name="rductRsnNm" data-map="RDUCT_RSN_NM" readonly />
<label for="rductRsnNm--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 사유</label>
<input type="text" class="form-control w-30" id="rductRsnNm--${pageName}${pageDataName1}" name="rductRsnNm" data-map="RDUCT_RSN_NM" readonly />
</div>
<!-- 감경 금액 -->
<div class="col-md-6">
<label for="rductAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 금액</label>
<input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}" name="rductAmt" data-map="RDUCT_AMT" readonly />
<label for="rductAmt--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 금액</label>
<input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}${pageDataName1}" name="rductAmt" data-map="RDUCT_AMT" readonly />
</div>
<!-- 기타 내용 -->
<div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly>
<label for="etcCn--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}${pageDataName1}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
</div>
<!-- 등록 일시 -->
<div class="col-md-6">
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label>
<input type="text" class="form-control w-45" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly />
<label for="regDt--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label>
<input type="text" class="form-control w-45" id="regDt--${pageName}${pageDataName1}" name="regDt" data-map="REG_DT" readonly />
</div>
<!-- 등록자 -->
<div class="col-md-6">
<label for="rgtrNm--${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="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly />
<label for="rgtrNm--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록자</label>
<input type="text" class="form-control w-40" id="rgtrNm--${pageName}${pageDataName1}" name="rgtrNm" data-map="RGTR_NM" readonly />
</div>
</div> <!-- <div class="row g-1"> -->
</form>
@ -77,13 +77,13 @@
<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="btnLevyExclCreate--${pageName}" title="부과제외 등록" onclick="fnBtnLevyExclCreate${pageName}();">
<button type="button" class="btn btn-primary" id="btnCreateLevyExcl--${pageName}" title="부과제외 등록" onclick="fnCreateLevyExcl${pageName}();">
부과제외 등록
</button>
<button type="button" class="btn btn-primary" id="btnLevyExclUpdate--${pageName}" title="부과제외 수정" onclick="fnBtnLevyExclUpdate${pageName}();">
<button type="button" class="btn btn-primary" id="btnUpdateLevyExcl--${pageName}" title="부과제외 수정" onclick="fnUpdateLevyExcl${pageName}();">
부과제외 수정
</button>
<button type="button" class="btn btn-primary" id="btnLevyExclRemove--${pageName}" title="부과제외 삭제" onclick="fnBtnLevyExclRemove${pageName}();">
<button type="button" class="btn btn-primary" id="btnRemoveLevyExcl--${pageName}" title="부과제외 삭제" onclick="fnRemoveLevyExcl${pageName}();">
부과제외 삭제
</button>
</span>
@ -238,15 +238,18 @@
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/sprt/sprt02";
var ${pageName}${pageDataName1}PrefixUrl = "/levy/levy02";
var ${pageName}${pageDataName2}PrefixUrl = "/excl/excl01";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
var ${pageName}${pageDataName1}Fields = new FormFields("#frmEdit--${pageName}${pageDataName1}");
var ${pageName}${pageDataName2}Fields = new FormFields("#frmEdit--${pageName}${pageDataName2}");
/**************************************************************************
* DatasetControl
**************************************************************************/
// 감경 Dataset
var ${pageName}Control = new DatasetControl({
var ${pageName}${pageDataName1}Control = new DatasetControl({
prefix : "rduct"
, prefixName : "감경"
, keymapper : info => info ? info.RDUCT_ID : ""
@ -316,18 +319,163 @@
* DatasetControl 이벤트
**************************************************************************/
// 감경 선택 자료 변경 이벤트
${pageName}Control.onCurrentChange = item => {
${pageName}${pageDataName1}Control.onCurrentChange = item => {
${pageName}Fields.set(item);
}
// 감경 dialog
${pageName}${pageDataName1}Control.getInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = ${pageName}${pageDataName1}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}${pageDataName1}Control.prefixName + " 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}${pageDataName1}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
if ((typeof resp) != "string") {
if (resp.errorMessage != "") {
dialog.alert(resp.errorMessage);
return;
}
}
dialog.open({
id : ${pageName}${pageDataName2}Control.prefixed("Dialog")
, title : dialogTitle
, content : resp
, size : "lg"
, init : () => { }
, onClose : () => { fnDataRefreshInfo(); } // callback 자료 재조회
});
}
});
}
// 부과제외 선택 자료 변경 이벤트
${pageName}${pageDataName2}Control.onCurrentChange = item => {
${pageName}${pageDataName2}Fields.set(item);
// 계고는 수정하지 않는다..
let levyExclSeCd = item.data.LEVY_EXCL_SE_CD;
if (levyExclSeCd == "2") {
$("#btnUpdateLevyExcl--${pageName}").prop("disabled", true);
} else {
$("#btnUpdateLevyExcl--${pageName}").prop("disabled", false);
}
}
// 부과제외 dialog
${pageName}${pageDataName2}Control.getInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = ${pageName}${pageDataName2}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}${pageDataName2}Control.prefixName + " 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}${pageDataName2}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
if ((typeof resp) != "string") {
if (resp.errorMessage != "") {
dialog.alert(resp.errorMessage);
return;
}
}
dialog.open({
id : ${pageName}${pageDataName2}Control.prefixed("Dialog")
, title : dialogTitle
, content : resp
, size : "lg"
, init : () => { }
, onClose : () => { fnDataRefreshInfo(); } // callback 자료 재조회
});
}
});
}
// 삭제 callback
${pageName}${pageDataName2}Control.onRemove = (resp) => {
if (resp.saved) {
fnDataRefreshInfo(); // 자료 재조회
}
}
// 삭제
${pageName}${pageDataName2}Control.remove = (params) => {
ajax.post({
url : wctx.url("/" + params.taskSeCd + ${pageName}${pageDataName2}PrefixUrl + "/010/remove.do")
, data : params || {}
, success : resp => ${pageName}${pageDataName2}Control.onRemove(resp) // 삭제 callback
});
}
/**************************************************************************
*
**************************************************************************/
// 자료 재조회
fnDataRefreshInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
url : wctx.url("/sprt/sprt02/050/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
${pageName}${pageDataName3}Dataset.clear();
${pageName}${pageDataName4}Dataset.clear();
// 감경 정보 Data 셋팅
let rduct = resp.rduct;
if (rduct) {
${pageName}${pageDataName1}Control.setData([rduct]);
} else {
$("#frmEdit--${pageName}${pageDataName1}")[0].reset();
}
// 부과제외 정보 Data 셋팅
let levyExcl = resp.levyExcl;
if (levyExcl) {
${pageName}${pageDataName2}Control.setData([levyExcl]);
} else {
$("#frmEdit--${pageName}${pageDataName2}")[0].reset();
}
// 처리 상태 이력 Data 셋팅
${pageName}${pageDataName3}Dataset.setData(resp.crdnSttsHstryList);
// 주소 변동 이력 Data 셋팅
${pageName}${pageDataName4}Dataset.setData(resp.crdnPayerHstryList);
}
});
}
// 단속 상태 이력 DataTables에 click 이벤트
renderList${pageName}${pageDataName3} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName3}Dataset;
@ -377,33 +525,91 @@
* function
**************************************************************************/
// 감경 등록
fnBtnRductCreate${pageName} = () => {
fnCreateRduct${pageName} = () => {
}
// 감경 수정
fnBtnRductUpdate${pageName} = () => {
fnUpdateRduct${pageName} = () => {
}
// 감경 삭제
fnBtnRductRemove${pageName} = () => {
fnRemoveRduct${pageName} = () => {
}
// 부과제외 등록
fnBtnLevyExclCreate${pageName} = () => {
fnCreateLevyExcl${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == undefined || crdnId == "") {
return;
}
let params = {
callPurpose : "create"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, levyExclSeCd : "1"
};
${pageName}${pageDataName2}Control.getInfo(params);
}
// 부과제외 수정
fnBtnLevyExclUpdate${pageName} = () => {
fnUpdateLevyExcl${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return
if (levyExclId == undefined || levyExclId == "") {
return;
}
let params = {
callPurpose : "update"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, levyExclId : levyExclId
};
${pageName}${pageDataName2}Control.getInfo(params);
}
// 부과제외 삭제
fnBtnLevyExclRemove${pageName} = () => {
fnRemoveLevyExcl${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 민원 상담 ID 가 없다면.. return
if (levyExclId == undefined || levyExclId == "") {
return;
}
let params = {
callPurpose : "remove"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, levyExclId : levyExclId
};
dialog.alert({
content : "선택한 " + ${pageName}${pageDataName2}Control.prefixName + " 내용을 삭제하시겠습니까?"
, onOK : () => {
${pageName}${pageDataName2}Control.remove(params);
}
});
}
/**************************************************************************
@ -419,13 +625,13 @@
// 감경 정보 Control 셋팅
let rduct = ${rduct};
if (rduct) {
${pageName}Control.setData([${rduct}]);
${pageName}${pageDataName1}Control.setData([rduct]);
}
// 부과제외 정보 Control 셋팅
let levyExcl = ${levyExcl};
if (levyExcl) {
${pageName}${pageDataName2}Control.setData([${levyExcl}]);
${pageName}${pageDataName2}Control.setData([levyExcl]);
}
// 처리 상태 이력 Dataset 셋팅

@ -331,8 +331,11 @@
// 화면 초기 설정
initForm${pageName}();
// Dataset 셋팅
${pageName}Control.setData([${levy}]);
// 부과 정보 Control 셋팅
let levy = ${levy};
if (levy) {
${pageName}${pageDataName1}Control.setData([levy]); // Dataset 셋팅
}
});
// #sourceURL=sprt02060-info.jsp

@ -124,15 +124,25 @@
$("#dscsnCn--${pageName}").val(item.data.DSCSN_CN); // 상담 내용
};
// 민원 상담 내용 dialog
// 민원 상담 내용 Dialog
${pageName}Control.getInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}Control.prefixName + " 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("Dialog")
, title : "민원상담 내용"
, title : dialogTitle
, content : resp
, size : "lg"
, init : () => { }
@ -154,10 +164,29 @@
ajax.post({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/010/remove.do")
, data : params || {}
, success : resp => ${pageName}Control.onRemove(resp)
, success : resp => ${pageName}Control.onRemove(resp) // 삭제 callback
});
}
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
}
// 자료 재조회
fnDataRefreshInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
@ -187,25 +216,6 @@
});
}
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/

Loading…
Cancel
Save