의견제출 상세화면 추가.

main
jjh 1 year ago
parent dce292e403
commit 3bf9a3e13c

@ -21,6 +21,7 @@ public class Excl01Query extends QueryRequest {
private String taskSeCd; // 업무 구분 코드
private String delYn; // 삭제 여부
// ID
private String levyExclIDs; // 부과 제외 ID
private String levyExclId; // 부과 제외 ID
private String crdnId; // 단속 ID
// 공통 조건
@ -79,6 +80,16 @@ public class Excl01Query extends QueryRequest {
return self();
}
public String getLevyExclIDs() {
return ifEmpty(levyExclIDs, () -> null);
}
public <T extends Excl01Query> T setLevyExclIDs(String levyExclIDs) {
this.levyExclIDs = levyExclIDs;
return self();
}
public String getLevyExclId() {
return ifEmpty(levyExclId, () -> null);
}

@ -21,6 +21,7 @@ public class Excl02Query extends QueryRequest {
private String taskSeCd; // 업무 구분 코드
private String delYn; // 삭제 여부
// ID
private String opnnIDs; // 의견 제출 ID
private String opnnId; // 의견 제출 ID
private String crdnId; // 단속 ID
// 공통 조건
@ -74,6 +75,17 @@ public class Excl02Query extends QueryRequest {
return self();
}
public String getOpnnIDs() {
return ifEmpty(opnnIDs, () -> null);
}
public <T extends Excl02Query> T setOpnnIDs(String opnnIDs) {
this.opnnIDs = opnnIDs;
return self();
}
public String getOpnnId() {
return ifEmpty(opnnId, () -> null);
}

@ -39,12 +39,24 @@ public interface Excl01Mapper extends AbstractMapper {
* @param levyExclId ID
* @return
*/
default DataObject selectLevyExclInfo(String levyExclId) {
List<DataObject> levyExcl = selectLevyExcls(new Excl01Query().setLevyExclId(levyExclId).setOrderBy("LEVY_EXCL_ID"));
default DataObject selectInfo(String levyExclId) {
List<DataObject> levyExcl = selectLevyExcls(new Excl01Query().setLevyExclId(levyExclId));
return !levyExcl.isEmpty() ? levyExcl.get(0) : null;
}
/** ID , .
* @param crdnId ID
* @return ,
*/
DataObject selectCrdn(Excl01Query req);
default DataObject selectCrdnInfo(String crdnId) {
DataObject crdnInfo = selectCrdn(new Excl01Query().setCrdnId(crdnId));
return crdnInfo;
}
/** .
* @param params
* <ul><li>"excl01" - </li>
@ -88,18 +100,6 @@ public interface Excl01Mapper extends AbstractMapper {
return excl01 != null && deleteLevyExcl(params().set("excl01", excl01)) >= 1;
}
/** ID , .
* @param crdnId ID
* @return ,
*/
DataObject selectCrdnLevyExcl(Excl01Query req);
default DataObject selectCrdnLevyExcl(String crdnId) {
DataObject crdnLevyExclInfo = selectCrdnLevyExcl(new Excl01Query().setCrdnId(crdnId));
return crdnLevyExclInfo;
}
/**(TB_CRDN) .
* @param params
* <ul><li>"excl01" - </li>

@ -39,12 +39,24 @@ public interface Excl02Mapper extends AbstractMapper {
* @param opnnId ID
* @return
*/
default DataObject selectOpnnSbmsnInfo(String opnnId) {
List<DataObject> opnnSbmsn = selectOpnnSbmsns(new Excl02Query().setOpnnId(opnnId).setOrderBy("OPNN_ID"));
default DataObject selectInfo(String opnnId) {
List<DataObject> opnnSbmsn = selectOpnnSbmsns(new Excl02Query().setOpnnId(opnnId));
return !opnnSbmsn.isEmpty() ? opnnSbmsn.get(0) : null;
}
/** ID , .
* @param crdnId ID
* @return ,
*/
DataObject selectCrdn(Excl02Query req);
default DataObject selectCrdnInfo(String crdnId) {
DataObject crdnInfo = selectCrdn(new Excl02Query().setCrdnId(crdnId));
return crdnInfo;
}
/** .
* @param params
* <ul><li>"opnnSbmsn" - </li>
@ -61,7 +73,7 @@ public interface Excl02Mapper extends AbstractMapper {
* <li> false</li>
* </ul>
*/
default boolean insertOpnnSbmsn(Excl02 excl02) {
default boolean insert(Excl02 excl02) {
return excl02 != null && insertOpnnSbmsn(params().set("excl02", excl02)) == 1;
}
@ -81,7 +93,7 @@ public interface Excl02Mapper extends AbstractMapper {
* <li> false</li>
* </ul>
*/
default boolean updateOpnnSbmsn(Excl02 excl02) {
default boolean update(Excl02 excl02) {
return excl02 != null && updateOpnnSbmsn(params().set("excl02", excl02)) == 1;
}
@ -101,7 +113,7 @@ public interface Excl02Mapper extends AbstractMapper {
* <li> false</li>
* </ul>
*/
default boolean deleteOpnnSbmsn(Excl02 excl02) {
default boolean delete(Excl02 excl02) {
return excl02 != null && deleteOpnnSbmsn(params().set("excl02", excl02)) == 1;
}

@ -35,16 +35,6 @@ public interface Excl03Mapper extends AbstractMapper {
*/
List<DataObject> selectCrdnReRegs(Excl03Query req);
/** ID .
* @param levyExclId ID
* @return
*/
default DataObject selectCrdnReRegInfo(String reRegId) {
List<DataObject> crdnReRegInfo = selectCrdnReRegs(new Excl03Query().setReRegId(reRegId).setOrderBy("RE_REG_ID"));
return !crdnReRegInfo.isEmpty() ? crdnReRegInfo.get(0) : null;
}
/** .
* @param params
* <ul><li>"crdnReReg" - </li>

@ -29,7 +29,7 @@ public interface Excl01Service {
* @param levyExclId ID
* @return
*/
DataObject getLevyExclusionInfo(Excl01Query req);
DataObject getInfo(Excl01Query req);
/** .
* @param excl

@ -34,7 +34,7 @@ public interface Excl02Service {
* @param opnnId ID
* @return
*/
DataObject getOpinionSubmissionInfo(String opnnId);
DataObject getInfo(Excl02Query req);
/** .
* @param opnnSbmsn
@ -43,7 +43,7 @@ public interface Excl02Service {
* <li> false</li>
* </ul>
*/
boolean createOpinionSubmission(Excl02 excl02);
boolean create(Excl02 excl02);
/** .
* @param opnnSbmsn
@ -52,7 +52,7 @@ public interface Excl02Service {
* <li> false</li>
* </ul>
*/
boolean updateOpinionSubmission(Excl02 excl02);
boolean update(Excl02 excl02);
/** .
* @param opnnSbmsn
@ -61,6 +61,6 @@ public interface Excl02Service {
* <li> false</li>
* </ul>
*/
boolean removeOpinionSubmission(Excl02 excl02);
boolean remove(Excl02 excl02);
}

@ -30,12 +30,6 @@ public interface Excl03Service {
*/
List<DataObject> getCrackdownReRegistrations(Excl03Query req);
/** ID .<br />
* @param reRegId ID
* @return
*/
DataObject getCrackdownReRegistrationInfo(String reRegId);
/** .
* @param excl03
* @return

@ -34,6 +34,8 @@ public class Excl01Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getLevyExclusionList(Excl01Query req) {
req.setOrderBy("LEVY_EXCL_ID"); // 정렬
return excl01Mapper.selectLevyExclList(req);
}
@ -41,11 +43,11 @@ public class Excl01Bean extends AbstractComponent {
* @param levyExclId ID
* @return
*/
public DataObject getLevyExclusionInfo(Excl01Query req) {
public DataObject getInfo(Excl01Query req) {
if (req.getLevyExclId() != null) {
return excl01Mapper.selectLevyExclInfo(req.getLevyExclId()); // 수정(부과제외 조회)
return excl01Mapper.selectInfo(req.getLevyExclId()); // 수정(부과제외 조회)
} else {
DataObject dataCrdn = excl01Mapper.selectCrdnLevyExcl(req); // 등록(단속 조회)
DataObject dataCrdn = excl01Mapper.selectCrdn(req); // 등록(단속 조회)
// 초기 데이터 설정
dataCrdn.set("LEVY_EXCL_YMD", dataCrdn.get("TODAY")); // 부과 제외 일자
@ -93,7 +95,7 @@ public class Excl01Bean extends AbstractComponent {
* @return
*/
public DataObject getCrdnLevyExclusion(String crdnId) {
return excl01Mapper.selectCrdnLevyExcl(crdnId);
return excl01Mapper.selectCrdnInfo(crdnId);
}
/** .

@ -43,8 +43,8 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
}
@Override
public DataObject getLevyExclusionInfo(Excl01Query req) {
return excl01Bean.getLevyExclusionInfo(req);
public DataObject getInfo(Excl01Query req) {
return excl01Bean.getInfo(req);
}
@Override
@ -171,7 +171,7 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
CrdnSttsHstry deltCrdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 삭제
// 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회
infoCrdnSttsCd = excl01Bean.getLevyExclusionInfo(new Excl01Query().setLevyExclId(excl01.getLevyExclId()));
infoCrdnSttsCd = excl01Bean.getInfo(new Excl01Query().setLevyExclId(excl01.getLevyExclId()));
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에서 부과제외 자료 조회
infoCrdnSttsHstry = crdnSttsHstryBean.getCrdnSttsHstryInfo(infoCrdnSttsCd.string("CRDN_ID"));

@ -34,6 +34,8 @@ public class Excl02Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getOpinionSubmissionList(Excl02Query req) {
req.setOrderBy("OPNN_ID"); // 정렬
return excl02Mapper.selectOpnnSbmsnList(req);
}
@ -49,8 +51,17 @@ public class Excl02Bean extends AbstractComponent {
* @param opnnId ID
* @return
*/
public DataObject getOpinionSubmissionInfo(String opnnId) {
return excl02Mapper.selectOpnnSbmsnInfo(opnnId);
public DataObject getInfo(Excl02Query req) {
if (req.getOpnnId() != null) {
return excl02Mapper.selectInfo(req.getOpnnId()); // 수정(의견제출 조회)
} else {
DataObject dataCrdn = excl02Mapper.selectCrdn(req); // 등록(단속 조회)
// 초기 데이터 설정
dataCrdn.set("RCPT_YMD", dataCrdn.get("TODAY")); // 접수 일자
return dataCrdn;
}
}
/** .
@ -60,8 +71,8 @@ public class Excl02Bean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean createOpinionSubmission(Excl02 excl02) {
return excl02Mapper.insertOpnnSbmsn(excl02);
public boolean create(Excl02 excl02) {
return excl02Mapper.insert(excl02);
}
/** .
@ -71,8 +82,8 @@ public class Excl02Bean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean updateOpinionSubmission(Excl02 excl02) {
return excl02Mapper.updateOpnnSbmsn(excl02);
public boolean update(Excl02 excl02) {
return excl02Mapper.update(excl02);
}
/** .
@ -82,8 +93,8 @@ public class Excl02Bean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean removeOpinionSubmission(Excl02 excl02) {
return excl02Mapper.deleteOpnnSbmsn(excl02);
public boolean remove(Excl02 excl02) {
return excl02Mapper.delete(excl02);
}
}

@ -40,23 +40,23 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
}
@Override
public DataObject getOpinionSubmissionInfo(String opnnId) {
return excl02Bean.getOpinionSubmissionInfo(opnnId);
public DataObject getInfo(Excl02Query req) {
return excl02Bean.getInfo(req);
}
@Override
public boolean createOpinionSubmission(Excl02 excl02) {
return excl02Bean.createOpinionSubmission(excl02);
public boolean create(Excl02 excl02) {
return excl02Bean.create(excl02);
}
@Override
public boolean updateOpinionSubmission(Excl02 excl02) {
return excl02Bean.updateOpinionSubmission(excl02);
public boolean update(Excl02 excl02) {
return excl02Bean.update(excl02);
}
@Override
public boolean removeOpinionSubmission(Excl02 excl02) {
return excl02Bean.removeOpinionSubmission(excl02);
public boolean remove(Excl02 excl02) {
return excl02Bean.remove(excl02);
}
}

@ -34,6 +34,8 @@ public class Excl03Bean extends AbstractComponent {
* @return
*/
public List<DataObject> getCrackdownReRegistrationList(Excl03Query req) {
req.setOrderBy("RE_REG_ID"); // 정렬
return excl03Mapper.selectCrdnReRegList(req);
}
@ -45,14 +47,6 @@ public class Excl03Bean extends AbstractComponent {
return excl03Mapper.selectCrdnReRegs(req);
}
/** ID .<br />
* @param opnnId ID
* @return
*/
public DataObject getCrackdownReRegistrationInfo(String opnnId) {
return excl03Mapper.selectCrdnReRegInfo(opnnId);
}
/** .
* @param excl03
* @return

@ -44,11 +44,6 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv
return excl03Bean.getCrackdownReRegistrations(req);
}
@Override
public DataObject getCrackdownReRegistrationInfo(String reRegId) {
return excl03Bean.getCrackdownReRegistrationInfo(reRegId);
}
@Override
public boolean create(Excl03 excl03) {
// 변수 선언

@ -78,8 +78,8 @@ public class Excl01Controller extends ApplicationController {
* }</pre>
*/
@RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do")
public ModelAndView getLevyExclusioninfo(Excl01Query req) {
DataObject levyExclusionInfo = excl01Service.getLevyExclusionInfo(req);
public ModelAndView getInfo(Excl01Query req) {
DataObject levyExclusionInfo = excl01Service.getInfo(req);
boolean json = jsonResponse();

@ -7,6 +7,7 @@ import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
@ -78,17 +79,25 @@ public class Excl02Controller extends ApplicationController {
* }</pre>
*/
@RequestMapping(name = "의견제출 정보 조회", value = "/020/info.do")
public ModelAndView getOpinionSubmissionInfo(String opnnId) {
if (!isEmpty(opnnId)) {
DataObject opinionSubmissionInfo = excl02Service.getOpinionSubmissionInfo(opnnId);
public ModelAndView getInfo(Excl02Query req) {
DataObject opnnSbmsnInfo = excl02Service.getInfo(req);
boolean json = jsonResponse();
boolean json = jsonResponse();
return new ModelAndView(json ? "jsonView" : "fims/excl/excl02020-info")
.addObject("opinionSubmissionInfo", json ? opinionSubmissionInfo : toJson(opinionSubmissionInfo));
} else {
return new ModelAndView("fims/excl/excl02020-info");
}
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl02020-info");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM029", "FIM030", "FIM031", "FIM032", "FIM033", "FIM054");
return mav
.addObject("pageName", "excl02020")
.addObject("FIM029List", commonCodes.get("FIM029")) // 접수 구분 코드(RCPT_SE_CD)
.addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD)
.addObject("FIM032List", commonCodes.get("FIM032")) // 소유주 관계 구분 코드(OWNR_REL_CD)
.addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("opnnSbmsnInfo", json ? opnnSbmsnInfo : toJson(opnnSbmsnInfo))
;
}
/** .
@ -98,9 +107,9 @@ public class Excl02Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name="의견제출 대장 등록", value="/010/create.do")
public ModelAndView createOpinionSubmission(Excl02 excl02) {
boolean saved = excl02Service.createOpinionSubmission(excl02);
@PostMapping(name="의견제출 대장 등록", value="/020/create.do")
public ModelAndView create(Excl02 excl02) {
boolean saved = excl02Service.create(excl02);
return new ModelAndView("jsonView")
.addObject("saved", saved);
@ -113,9 +122,9 @@ public class Excl02Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name="의견제출 대장 수정", value="/010/update.do")
public ModelAndView updateOpinionSubmission(Excl02 excl02) {
boolean saved = excl02Service.updateOpinionSubmission(excl02);
@PostMapping(name="의견제출 대장 수정", value="/020/update.do")
public ModelAndView update(Excl02 excl02, MultipartFile[] uploadFileList) {
boolean saved = excl02Service.update(excl02);
return new ModelAndView("jsonView")
.addObject("saved", saved);
@ -130,8 +139,8 @@ public class Excl02Controller extends ApplicationController {
* }</code></pre>
*/
@PostMapping(name="의견제출 대장 제거", value="/010/remove.do")
public ModelAndView removeOpinionSubmission(Excl02 excl02) {
boolean saved = excl02Service.removeOpinionSubmission(excl02);
public ModelAndView remove(Excl02 excl02) {
boolean saved = excl02Service.remove(excl02);
return new ModelAndView("jsonView")
.addObject("saved", saved);

@ -14,7 +14,6 @@ import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.excl.Excl03;
import cokr.xit.fims.excl.Excl03Query;
import cokr.xit.fims.excl.service.Excl03Service;
import cokr.xit.foundation.data.DataObject;
/**
*
@ -68,27 +67,6 @@ public class Excl03Controller extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), result, "crdnReReg");
}
/** ID .
* @param reRegId ID
* @return fims/excl/excl03020-info jsonView
* <pre>{
* "opnnSbmsnInfo":
* }</pre>
*/
@RequestMapping(name="단속 재등록 정보 조회", value="/020/info.do")
public ModelAndView getCrackdownReRegistrationInfo(String reRegId) {
if (!isEmpty(reRegId)) {
DataObject crackdownReRegistrationInfo = excl03Service.getCrackdownReRegistrationInfo(reRegId);
boolean json = jsonResponse();
return new ModelAndView(json ? "jsonView" : "fims/excl/excl03020-info")
.addObject("crackdownReRegistrationInfo", json ? crackdownReRegistrationInfo : toJson(crackdownReRegistrationInfo));
} else {
return new ModelAndView("fims/excl/excl03020-info");
}
}
/** .
* @param excl03
* @return jsonView

@ -83,9 +83,9 @@
, E.CVLCPT_APLCNT_NM /* 민원 신청인 명 */
, E.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */
FROM TB_LEVY_EXCL A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT E ON (C.CRDN_ID = E.CRDN_ID AND E.DEL_YN = 'N')
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT E ON (C.CRDN_ID = E.CRDN_ID AND E.DEL_YN = 'N')
</sql>
<select id="selectLevyExclList" parameterType="map" resultType="dataobject">/* 부과제외 대장 목록 조회(excl01Mapper.selectLevyExclList) */
@ -214,8 +214,10 @@
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, D.RTPYR_NM /* 납부자 명 */
FROM TB_LEVY_EXCL A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
</sql>
<select id="selectLevyExcls" parameterType="map" resultType="dataobject">/* 부과제외 대장 객체 가져오기(excl01Mapper.selectLevyExcl) */
@ -231,7 +233,28 @@
AND A.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.sortBy" /> DESC
<include refid="utility.orderBy" />
</select>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl01Mapper.selectCrdn) */
SELECT A.CRDN_ID /* 단속 ID */
, A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, A.CRDN_YMD /* 단속 일자 */
, A.CRDN_TM /* 단속 시각 */
, A.VHRNO /* 차량번호 */
, A.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', A.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, A.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, B.RTPYR_ID /* 납부자 ID */
, B.RTPYR_NM /* 납부자 명 */
, C.LEVY_EXCL_ID /* 부과 제외 ID */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
FROM TB_CRDN A
LEFT OUTER JOIN TB_PAYER B ON (A.RTPYR_ID = B.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY_EXCL C ON (A.CRDN_ID = C.CRDN_ID AND C.DEL_YN = 'N')
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
</select>
<insert id="insertLevyExcl" parameterType="map">/* 부과제외 대장 등록(excl01Mapper.insertLevyExcl) */
@ -302,30 +325,6 @@
</choose>
</update>
<select id="selectCrdnLevyExcl" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl01Mapper.selectCrdnLevyExcl) */
SELECT A.CRDN_ID /* 단속 ID */
, A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, A.CRDN_YMD /* 단속 일자 */
, A.CRDN_TM /* 단속 시각 */
, A.VHRNO /* 차량번호 */
, A.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', A.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, A.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, B.LEVY_EXCL_ID /* 부과 제외 ID */
, B.LEVY_EXCL_YMD /* 부과제외 일자 */
, B.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM021', B.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */
, B.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */
, (SELECT FN_GET_CODE_NM('FIM022', B.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, B.ETC_CN /* 기타 내용 */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
FROM TB_CRDN A
LEFT OUTER JOIN TB_LEVY_EXCL B ON (A.CRDN_ID = B.CRDN_ID AND B.DEL_YN = 'N')
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
</select>
<update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(excl01Mapper.updateCrdnSttsCd) */
UPDATE TB_CRDN
SET CRDN_STTS_CD = #{excl01.crdnSttsCd} /* 단속 상태 코드 */

@ -119,8 +119,8 @@
, D.ADDR /* 주소 */
, D.DTL_ADDR /* 상세 주소 */
FROM TB_OPNN_SBMSN A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
</sql>
<select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(excl02Mapper.selectOpnnSbmsnList) */
@ -275,26 +275,59 @@
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, D.RTPYR_NM /* 납부자 명 */
FROM TB_OPNN_SBMSN A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
</sql>
<select id="selectOpnnSbmsnInfo" parameterType="map" resultMap="excl02Row">/* 의견제출 대장 객체 가져오기(excl02Mapper.selectOpnnSbmsnInfo) */
<include refid="select" />
WHERE A.OPNN_ID = #{opnnId} /* 부과 제외 ID */
<include refid="utility.orderBy" />
</select>
<select id="selectOpnnSbmsns" parameterType="map" resultMap="excl02Row">/* 의견제출 대장 객체 가져오기(excl02Mapper.selectOpnnSbmsns) */
<select id="selectOpnnSbmsns" parameterType="map" resultType="dataobject">/* 의견제출 대장 객체 가져오기(excl02Mapper.selectOpnnSbmsns) */
<include refid="select" />
WHERE A.DEL_YN = 'N' /* 삭제 여부 */
<if test="opnnIds != null">
<where>
<if test="opnnIDs != null">
AND A.OPNN_ID IN (
<foreach collection="opnnIds" item="opnnId" separator=","> #{opnnId} </foreach>
<foreach collection="opnnIDs" item="opnnId" separator=","> #{opnnId} </foreach>
)
</if>
</if>
<if test="opnnId != null">
AND A.OPNN_ID = #{opnnId} /* 의견제출 ID */
</if>
<if test="crdnId != null">
AND A.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND A.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl02Mapper.selectCrdn) */
SELECT A.CRDN_ID /* 단속 ID */
, A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, A.CRDN_YMD /* 단속 일자 */
, A.CRDN_TM /* 단속 시각 */
, A.VHRNO /* 차량번호 */
, A.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', A.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, A.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, B.RTPYR_ID /* 납부자 ID */
, B.RTPYR_NM /* 납부자 명 */
, C.OPNN_ID /* 의견 ID */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
FROM TB_CRDN A
LEFT OUTER JOIN TB_PAYER B ON (A.RTPYR_ID = B.RTPYR_ID)
LEFT OUTER JOIN TB_OPNN_SBMSN C ON (A.CRDN_ID = C.CRDN_ID AND C.DEL_YN = 'N')
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
</select>
<insert id="insertOpnnSbmsn" parameterType="map">/* 의견제출 대장 등록(excl02Mapper.insertOpnnSbmsn) */
INSERT
INTO TB_OPNN_SBMSN (
@ -403,7 +436,7 @@
WHERE OPNN_ID = #{opnnSbmsn.opnnId} /* 의견 ID */
</update>
<update id="deleteOpnnSbmsn" parameterType="map">/* 의견제출 대장 삭제(excl02Mapper.deleteOpnnSbmsn) */
<update id="delete" parameterType="map">/* 의견제출 대장 삭제(excl02Mapper.deleteOpnnSbmsn) */
UPDATE TB_OPNN_SBMSN
SET DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */

@ -350,7 +350,7 @@
id : ${pageName}Control.prefixed("dialog")
, title : "개별총정보"
, content : resp
, size : "xl"
, size : "xxl"
// , init : () => ${pageName}Control.setInfo(info) // 개별총정보 다이얼로그에서 실행할 함수
});
}
@ -409,9 +409,9 @@
*/
/**************************************************************************
*
* 초기 셋팅
**************************************************************************/
// 초기 설정
// 화면 초기값 셋팅
function initForm${pageName}() {
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
@ -497,7 +497,6 @@
if (!pageNumber) pageNumber = 1;
${pageName}Control.query = fnGetParams${pageName}(); // 검색조건
${pageName}Control.query.orderBy = "LEVY_EXCL_ID"; // 정렬
${pageName}Control.load(pageNumber);
}

@ -70,7 +70,6 @@
var prefixUrl = "/excl/excl01";
//
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
var ${pageName}Mode = "${pageMode}";
// 공통 코드
var FIM021 = new CommonCodes(${FIM021}, true);
var FIM022 = new CommonCodes(${FIM022}, true);
@ -84,11 +83,11 @@
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclInfo
, urls : {
create : wctx.url(prefixUrl + "/020/create.do") // 등록
, update : wctx.url(prefixUrl + "/020/update.do") // 수정
create : wctx.url(prefixUrl + "/020/create.do") // 등록
, update : wctx.url(prefixUrl + "/020/update.do") // 수정
}
, formats : {
LEVY_EXCL_YMD : dateFormat
LEVY_EXCL_YMD : dateFormat
}
});

@ -282,7 +282,7 @@
var ${pageName}Control = new DatasetControl({
prefix : "opnnSbmsn"
, prefixName : "의견제출"
, infoSize : "lg"
, infoSize : "xl"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnList
, appendData : true
@ -360,17 +360,16 @@
id : ${pageName}Control.prefixed("dialog")
, title : "개별총정보"
, content : resp
, size : "xl"
// , init : () => ${pageName}Control.setInfo(info) // 개별총정보 다이얼로그에서 실행할 함수
, size : "xxl"
});
}
});
}
/**************************************************************************
*
* 초기 셋팅
**************************************************************************/
// 초기 설정
// 화면 초기값 셋팅
function initForm${pageName}() {
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
@ -382,6 +381,19 @@
// 이벤트
function setEvent${pageName}() {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0,4) + "-" + value.substring(4);
}
});
});
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
@ -442,7 +454,6 @@
if (!pageNumber) pageNumber = 1;
${pageName}Control.query = fnGetParams${pageName}(); // 검색조건
${pageName}Control.query.orderBy = "OPNN_ID"; // 정렬
${pageName}Control.load(pageNumber);
}
@ -461,7 +472,7 @@
function fnModify${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 부과 제외 ID 가 없다면.. return
// 의견제출 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}

@ -0,0 +1,282 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<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="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" />
<div class="row g-1">
<!-- 차량번호 -->
<div class="col-md-6">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-25" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
</div>
<!-- 납부자 명 -->
<div class="col-md-6">
<label for="rtpyrNm--${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="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" readonly />
</div>
<!-- 접수 번호 -->
<div class="col-md-6">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 번호</label>
<input type="text" class="form-control w-25" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" required />
</div>
<!-- 접수 일자 -->
<div class="col-md-6">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 일자</label>
<input type="text" class="form-control form-date" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD"
data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 접수 구분 -->
<div class="col-md-6">
<label for="rcptSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 구분</label>
<select class="form-select" id="rcptSeCd--${pageName}" name="rcptSeCd" data-map="RCPT_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM029List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 통보 구분 코드 -->
<div class="col-md-6">
<label for="ntfctnSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">통보 구분</label>
<select class="form-select" id="ntfctnSeCd--${pageName}" name="ntfctnSeCd" data-map="NTFCTN_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM030List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 소유주 관계 구분 코드 -->
<div class="col-md-12">
<label for="ownrRelCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주 관계 구분</label>
<select class="form-select" id="ownrRelCd--${pageName}" name="ownrRelCd" data-map="OWNR_REL_CD">
<option value="">선택하세요</option>
<c:forEach items="${FIM032List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 진술자 이름 -->
<div class="col-md-6">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">성명</label>
<input type="text" class="form-control w-25" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" required />
</div>
<!-- 진술자 생년월일 -->
<div class="col-md-6">
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
<input type="text" class="form-control w-25" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YY-MM-DD" />
</div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-75" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" />
<button type="button" class="btn btn-sm btn-outline-dark" onclick="">검색</button>
</div>
<!-- 진술자 상세주소 -->
<div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 주소</label>
<input type="text" class="form-control w-85" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" />
</div>
<!-- 진술자 연락처 -->
<div class="col-md-6">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label>
<input type="text" class="form-control w-25" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" />
</div>
<!-- 진술자 이메일 -->
<div class="col-md-6">
<label for="sttrEml--${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="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" />
</div>
<!-- 의견 제출 내용 -->
<div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 내용</label>
<textarea class="form-control w-85" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="5" data-maxlengthb="4000">
</textarea>
</div>
<!-- 의견 제출 구분 코드 -->
<div class="col-md-12">
<label for="opnnSbmsnSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">의견제출 구분</label>
<select class="form-select" id="opnnSbmsnSeCd--${pageName}" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM033List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 의견 제출 요지 -->
<div class="col-md-12">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 요지</label>
<input type="text" class="form-control w-85" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" />
</div>
<!-- 담당자 검토 의견 -->
<div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토 의견</label>
<textarea class="form-control w-85" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000">
</textarea>
</div>
</div>
</form>
<!-- /입력 영역 -->
<!-- 첨부 파일 등록 -->
<div class="card">
<form id="frmFile--${pageName}" class="dpv eca" method="post" enctype="multipart/form-data">
<input type="file" id="uploadFileList--${pageName}" name="uploadFileList" multiple='multiple' hidden />
</form>
<div class="col-md-12">
<button class="btn btn-blue" id="btnAddFile--${pageName}" title="첨부파일추가">파일 추가</button>
<button class="btn btn-blue" id="btnDelFile--${pageName}" title="첨부파일삭제">파일 삭제</button>
</div>
</div>
<!-- /첨부 파일 등록 -->
</div>
<!-- <div class="card"> -->
<!-- 업무 버튼 표시 -->
<div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button class="btn btn-primary" id="btnSave--${pageName}" title="저장" onclick="fnSave${pageName}()">저장</button>
</span>
</span>
</div>
<!-- / 업무 버튼 표시 -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var prefixUrl = "/excl/excl02";
//
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
// 파일 업로드
var ${pageName}UploadFile = uploadSupport("#uploadFileList--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "opnnSbmsn"
, prefixName : "의견제출"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnInfo
, urls : {
create : wctx.url(prefixUrl + "/020/create.do") // 등록
, update : wctx.url(prefixUrl + "/020/update.do") // 수정
}
, formats : {
RCPT_YMD : dateFormat
}
});
${pageName}Control.onCurrentChange = item => {
${pageName}Fields.set(item);
}
/**************************************************************************
*
**************************************************************************/
// 저장 callback
${pageName}Control.onSave = (resp) => {
if (resp.retSaved == "true") {
dialog.alert(resp.retMessage);
dialog.close(${pageName}Control.prefix + "dialog");
}
}
// 저장
${pageName}Control.save = (info) => {
if (!info) return;
let item = ${pageName}Control.getCurrent("item");
let create = isEmpty(info.opnnId);
let formData = new FormData(document.getElementById("frmFile--${pageName}"));
for(let key in info) {
let value = info[key];
formData.append(key, value);
}
if (formData.get("uploadFileList").size == 0) {
formData.delete("uploadFileList");
}
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
, data: formData, contentType : false, processData : false
, success : resp => ${pageName}Control.onSave(resp)
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 검색조건 초기값 셋팅
function initForm${pageName}() {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#rcptYmd--${pageName}").datepicker("setDate", new Date());
}
// 이벤트 설정
function setEvent${pageName}() {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0,4) + "-" + value.substring(4);
}
});
});
$("#btnAddFile--${pageName}").on('click', () => { $("#uploadFileList--${pageName}").trigger("click"); });
}
/**************************************************************************
* function
**************************************************************************/
// 저장
function fnSave${pageName}() {
let formFields = new FimsFormFields("#frmEdit--${pageName}");
let data = formFields.get();
dialog.alert({
content : "현재 prefixName 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(formFields.get());
}
});
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정
setEvent${pageName}();
// 화면 초기 설정
initForm${pageName}();
// Dataset 셋팅 - 단건일 경우 setData
${pageName}Control.setData([${opnnSbmsnInfo}]);
});
// #sourceURL=excl01020-info.jsp
</script>

@ -147,9 +147,6 @@
<button class="btn btn-primary" id="btnCreate--${pageName}" title="등록" onclick="fnSave${pageName}();">
등록
</button>
<button class="btn btn-primary" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();">
삭제
</button>
<button class="btn btn-primary" id="btnBfrCrdnTotalInfo--${pageName}" title="이전 단속정보 보기" onclick="fnBfrCrdnTotalInfo${pageName}();">
이전 단속정보 보기
</button>
@ -250,7 +247,6 @@
, urls : {
load : wctx.url(prefixUrl + "/010/list.do") // 검색
, create : wctx.url(prefixUrl + "/010/create.do") // 신규 등록
, remove : wctx.url(prefixUrl + "/010/remove.do") // 자료 삭제
}
, formats : {
RE_REG_YMD : dateFormat
@ -317,8 +313,7 @@
id : ${pageName}Control.prefixed("dialog")
, title : "개별총정보"
, content : resp
, size : "xl"
// , init : () => ${pageName}Control.setInfo(info) // 개별총정보 다이얼로그에서 실행할 함수
, size : "xxl"
});
}
});
@ -432,7 +427,6 @@
if (!pageNumber) pageNumber = 1;
${pageName}Control.query = fnGetParams${pageName}(); // 검색조건
${pageName}Control.query.orderBy = "RE_REG_ID"; // 정렬
${pageName}Control.load(pageNumber);
}
@ -463,16 +457,6 @@
});
}
// 삭제
function fnRemove${pageName}() {
dialog.alert({
content : "선택한 ${prefixName} 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.remove();
}
});
}
// 이전 단속정보 보기
function fnBfrCrdnTotalInfo${pageName}() {
let bfrCrdnId = ${pageName}Control.dataset.getValue("BFR_CRDN_ID");

Loading…
Cancel
Save