부과제외 등록, 수정, 삭제 수정.

main
jjh 1 year ago
parent 042e1a1982
commit 9fbbd7f51a

@ -97,6 +97,11 @@ public class Excl01 extends cokr.xit.foundation.AbstractEntity {
*/ */
private java.lang.String delRsn; private java.lang.String delRsn;
/**
* IDs
*/
private java.lang.String[] levyExclIDs;
/** /**
* ID() . * ID() .
* @return ID * @return ID
@ -354,4 +359,3 @@ public class Excl01 extends cokr.xit.foundation.AbstractEntity {
} }
} }

@ -16,6 +16,8 @@ public class Excl01Query extends QueryRequest {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
//
private String callMethod;
// 필수 조건 // 필수 조건
private String sggCd; // 시군구 코드 private String sggCd; // 시군구 코드
private String taskSeCd; // 업무 구분 코드 private String taskSeCd; // 업무 구분 코드
@ -43,6 +45,16 @@ public class Excl01Query extends QueryRequest {
private String crdnId; // 단속 ID private String crdnId; // 단속 ID
private String levyExclSeCd; // 부과 제외 구분 코드 private String levyExclSeCd; // 부과 제외 구분 코드
public String getCallMethod() {
return ifEmpty(callMethod, () -> null);
}
public <T extends Excl01Query> T setCallMethod(String callMethod) {
this.callMethod = callMethod;
return self();
}
public String getSggCd() { public String getSggCd() {
return ifEmpty(sggCd, () -> null); return ifEmpty(sggCd, () -> null);
} }

@ -29,12 +29,6 @@ public interface Excl01Mapper extends AbstractMapper {
*/ */
List<DataObject> selectLevyExclList(Excl01Query req); List<DataObject> selectLevyExclList(Excl01Query req);
/** .
* @param req
* @return
*/
List<Excl01> selectLevyExcls(Excl01Query req);
/** ID . /** ID .
* @param levyExclId ID * @param levyExclId ID
* @return * @return
@ -47,45 +41,29 @@ public interface Excl01Mapper extends AbstractMapper {
return levyExclInfo; return levyExclInfo;
} }
/** . /** ID .
* @param params * @param crdnId ID
* <ul><li>"levyExcl" - </li> * @return
* <li>"currentUser" - </li>
* </ul>
* @return
*/ */
int insertLevyExcl(Map<String, Object> params); DataObject selectCrdn(Excl01Query req);
/** . default DataObject selectCrdn(String crdnId) {
* @param excl DataObject levyExclInfo = selectCrdn(new Excl01Query().setCrdnId(crdnId));
* @return
* <ul><li> true</li> return levyExclInfo;
* <li> false</li>
* </ul>
*/
default boolean insertLevyExcl(Excl01 excl01) {
return excl01 != null && insertLevyExcl(params().set("excl01", excl01)) == 1;
} }
/** . /** .
* @param params * @param excl
* <ul><li>"excl" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return * @return
*/ */
int updateLevyExcl(Map<String, Object> params); int insertLevyExcl(Excl01 excl01);
/** . /** .
* @param excl * @param excl
* @return * @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/ */
default boolean updateLevyExcl(Excl01 excl01) { int updateLevyExcl(Excl01 excl01);
return excl01 != null && updateLevyExcl(params().set("excl01", excl01)) == 1;
}
/** . /** .
* @param params * @param params
@ -94,7 +72,8 @@ public interface Excl01Mapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteLevyExcl(Map<String, ?> params); // int deleteLevyExcl(Map<String, ?> params);
int deleteLevyExcl(Excl01 excl01);
/** . /** .
* @param levyExcl * @param levyExcl
@ -103,8 +82,14 @@ public interface Excl01Mapper extends AbstractMapper {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
default boolean deleteLevyExcl(Excl01 excl01) { // default boolean deleteLevyExcl(Excl01 excl01) {
return excl01 != null && deleteLevyExcl(params().set("excl01", excl01)) == 1; // return excl01 != null && deleteLevyExcl(params().set("excl01", excl01)) == 1;
} // }
//
// default int deleteLevyExcl(String... levyExclIDs) {
// return deleteLevyExcl(
// params().set("levyExclIDs", levyExclIDs)
// );
// }
} }

@ -24,13 +24,7 @@ public interface Excl01Service {
*/ */
List<DataObject> getLevyExclusionList(Excl01Query req); List<DataObject> getLevyExclusionList(Excl01Query req);
/** . /** ID .<br />
* @param req
* @return
*/
List<Excl01> getLevyExclusions(Excl01Query req);
/** ID .<br />
* @param levyExclId ID * @param levyExclId ID
* @return * @return
*/ */
@ -65,10 +59,3 @@ public interface Excl01Service {
} }
///**지정한 ID의 부과제외 정보를 반환한다.<br />
// * @param levyExclId 부과 제외 ID
// * @return 부과제외 정보
// */
//Excl01 getLevyExclusionInfo(String levyExclId);

@ -37,20 +37,16 @@ public class Excl01Bean extends AbstractComponent {
return excl01Mapper.selectLevyExclList(req); return excl01Mapper.selectLevyExclList(req);
} }
/** . /** ID .<br />
* @param req
* @return
*/
public List<Excl01> getLevyExclusions(Excl01Query req) {
return excl01Mapper.selectLevyExcls(req);
}
/** ID .<br />
* @param levyExclId ID * @param levyExclId ID
* @return * @return
*/ */
public DataObject getLevyExclusionInfo(Excl01Query req) { public DataObject getLevyExclusionInfo(Excl01Query req) {
return excl01Mapper.selectLevyExcl(req); if (req.getLevyExclId() != null) {
return excl01Mapper.selectLevyExcl(req); // 수정(부과제외 조회)
} else {
return excl01Mapper.selectCrdn(req); // 등록(단속 조회)
}
} }
/** . /** .
@ -61,7 +57,7 @@ public class Excl01Bean extends AbstractComponent {
* </ul> * </ul>
*/ */
public boolean createLevyExclusion(Excl01 excl01) { public boolean createLevyExclusion(Excl01 excl01) {
return excl01Mapper.insertLevyExcl(excl01); return excl01 != null && excl01Mapper.insertLevyExcl(excl01) == 1;
} }
/** . /** .
@ -72,7 +68,7 @@ public class Excl01Bean extends AbstractComponent {
* </ul> * </ul>
*/ */
public boolean updateLevyExclusion(Excl01 excl01) { public boolean updateLevyExclusion(Excl01 excl01) {
return excl01Mapper.updateLevyExcl(excl01); return excl01 != null && excl01Mapper.updateLevyExcl(excl01) == 1;
} }
/** . /** .
@ -83,16 +79,7 @@ public class Excl01Bean extends AbstractComponent {
* </ul> * </ul>
*/ */
public boolean removeLevyExclusion(Excl01 excl01) { public boolean removeLevyExclusion(Excl01 excl01) {
return excl01Mapper.deleteLevyExcl(excl01); return excl01 != null && excl01Mapper.deleteLevyExcl(excl01) == 1;
} }
} }
///**지정한 ID의 부과제외 정보를 반환한다.<br />
// * @param levyExclId 부과제외 ID
// * @return 부과제외 정보
// */
//public Excl01 getLevyExclusionInfo(String levyExclId) {
// return excl01Mapper.selectLevyExclInfo(levyExclId);
//}

@ -1,7 +1,5 @@
package cokr.xit.fims.excl.service.bean; package cokr.xit.fims.excl.service.bean;
import static org.mockito.ArgumentMatchers.nullable;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -36,20 +34,9 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
return excl01Bean.getLevyExclusionList(req); return excl01Bean.getLevyExclusionList(req);
} }
@Override
public List<Excl01> getLevyExclusions(Excl01Query req) {
return excl01Bean.getLevyExclusions(req);
}
@Override @Override
public DataObject getLevyExclusionInfo(Excl01Query req) { public DataObject getLevyExclusionInfo(Excl01Query req) {
// 단속 ID 확인 return excl01Bean.getLevyExclusionInfo(req);
if (req.getCrdnId() == null || "".equals(req.getCrdnId())) {
// 단속 ID가 없다면 오류 발생..
return excl01Bean.getLevyExclusionInfo(req);
} else {
return excl01Bean.getLevyExclusionInfo(req);
}
} }
@Override @Override
@ -68,10 +55,3 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
} }
} }
//@Override
//public Excl01 getLevyExclusionInfo(String levyExclId) {
// return excl01Bean.getLevyExclusionInfo(levyExclId);
//}

@ -51,7 +51,7 @@ public class Excl01Controller extends ApplicationController {
return mav.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("urlPrefix", "/excl/excl01") // URL로 사용할 prefix .addObject("urlPrefix", "/excl/excl01") // URL로 사용할 prefix
.addObject("infoPrefix", "levyExcl") // prefix .addObject("infoPrefix", "levyExcl") // prefix
.addObject("FIM021List", commonCodes.get("FIM021")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM021List", commonCodes.get("FIM021")) //
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
; ;
} }
@ -74,8 +74,8 @@ public class Excl01Controller extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl"); return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl");
} }
/** ID . /** ID (info) .
* @param levyExclId ID * @param Excl01Query req
* @return fims/excl/excl01020-info jsonView * @return fims/excl/excl01020-info jsonView
* <pre>{ * <pre>{
* "levyExclusionInfo": * "levyExclusionInfo":
@ -83,28 +83,24 @@ public class Excl01Controller extends ApplicationController {
*/ */
@RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do") @RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do")
public ModelAndView getLevyExclusionInfo(Excl01Query req) { public ModelAndView getLevyExclusionInfo(Excl01Query req) {
// View(jsp)에서 사용할 공통코드를 조회
DataObject levyExclusionInfo = excl01Service.getLevyExclusionInfo(req); DataObject levyExclusionInfo = excl01Service.getLevyExclusionInfo(req);
boolean json = jsonResponse(); boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info") ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info");
.addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
; // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054");
// 조회 결과가 없다면.. 0 addCodes(commonCodes, mav, "FIM021", "FIM022", "FIM054");
if (levyExclusionInfo == null) {
return mav return mav
.addObject("pageMode", "create") // .addObject("pageName", "excl01020")
.addObject("levyExclSeCd", req.getLevyExclSeCd()) .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
; .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
} else { .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
return mav .addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo))
.addObject("pageMode", "update") // ;
.addObject("levyExclSeCd", levyExclusionInfo.string("LEVY_EXCL_SE_CD"))
.addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo))
;
}
} }
/** . /** .
@ -154,40 +150,3 @@ public class Excl01Controller extends ApplicationController {
} }
} }
///**지정한 ID의 부과제외 정보를 반환한다.
// * @param levyExclId 부과 제외 ID
// * @return fims/excl/excl01020-info 또는 jsonView
// * <pre>{
// * "levyExclusionInfo": 부과제외 정보
// * }</pre>
// */
//@RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do")
//public ModelAndView getLevyExclusionInfo(String levyExclId) {
// // View(jsp)에서 사용할 공통코드를 조회
// Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054");
//
// if (!isEmpty(levyExclId)) {
// Excl01 levyExclusionInfo = excl01Service.getLevyExclusionInfo(levyExclId);
//
// boolean json = jsonResponse();
//
// return new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info")
// .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
// .addObject("pageMode", "update") //
// .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
// .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
// .addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo))
// ;
// } else {
// return new ModelAndView("fims/excl/excl01020-info")
// .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
// .addObject("pageMode", "create") //
// .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
// .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
// ;
// }
//}

@ -191,15 +191,18 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<select id="selectLevyExcls" parameterType="map" resultMap="excl01Row">/* 부과제외 대장 객체 가져오기(excl01Mapper.selectLevyExcls) */ <select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl01Mapper.selectCrdn) */
<include refid="select" /> SELECT A.CRDN_ID /* 단속 ID */
WHERE A.DEL_YN = 'N' /* 삭제 여부 */ , A.SGG_CD /* 시군구 코드 */
<if test="levyExclIds != null"> , A.TASK_SE_CD /* 업무 구분 코드 */
AND A.LEVY_EXCL_ID IN ( , A.CRDN_YMD /* 단속 일자 */
<foreach collection="levyExclIds" item="levyExclId" separator=","> #{levyExclId} </foreach> , A.CRDN_TM /* 단속 시각 */
) , A.VHRNO /* 차량번호 */
</if> , A.CRDN_STTS_CD /* 단속 상태 코드 */
<include refid="utility.orderBy" /> , DATE_FORMAT(CURRENT_DATE, '%Y%m%d') AS LEVY_EXCL_YMD /* 부과 제외 일자 */
, #{levyExclSeCd} AS LEVY_EXCL_SE_CD /* 부과 제외 구분 코드 */
FROM TB_CRDN A
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
</select> </select>
<insert id="insertLevyExcl" parameterType="map">/* 부과제외 대장 등록(excl01Mapper.insertLevyExcl) */ <insert id="insertLevyExcl" parameterType="map">/* 부과제외 대장 등록(excl01Mapper.insertLevyExcl) */
@ -242,15 +245,15 @@
) )
</insert> </insert>
<update id="updateLevyExcl" parameterType="map">/* 부과제외 대장 수정(excl01Mapper.updateLevyExcl) */ <update id="updateLevyExcl" parameterType="cokr.xit.fims.excl.Excl01">/* 부과제외 대장 수정(excl01Mapper.updateLevyExcl) */
UPDATE TB_LEVY_EXCL UPDATE TB_LEVY_EXCL
SET LEVY_EXCL_YMD = #{excl01.levyExclYmd} /* 부과 제외 일자 */ SET LEVY_EXCL_YMD = #{levyExclYmd} /* 부과 제외 일자 */
, LEVY_EXCL_SE_CD = #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */ , LEVY_EXCL_SE_CD = #{levyExclSeCd} /* 부과 제외 구분 코드 */
, LEVY_EXCL_RSN_CD = #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */ , LEVY_EXCL_RSN_CD = #{levyExclRsnCd} /* 부과 제외 사유 코드 */
, ETC_CN = #{excl01.etcCn} /* 기타 내용 */ , ETC_CN = #{etcCn} /* 기타 내용 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */ , MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{currentUser.id} /* 수정자 */ , MDFR = #{mdfr} /* 수정자 */
WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ WHERE LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */
AND DEL_YN = 'N' /* 삭제 여부 */ AND DEL_YN = 'N' /* 삭제 여부 */
</update> </update>
@ -258,10 +261,19 @@
UPDATE TB_LEVY_EXCL UPDATE TB_LEVY_EXCL
SET DEL_YN = 'Y' /* 삭제 여부 */ SET DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */ , DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */
, DLTR = #{currentUser.id} /* 삭제자 */ , DLTR = #{dltr} /* 삭제자 */
, DEL_RSN = #{delRsn} /* 삭제 사유 */ , DEL_RSN = #{delRsn} /* 삭제 사유 */
WHERE LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ WHERE DEL_YN = 'N' /* 삭제 여부 */
AND DEL_YN = 'N' /* 삭제 여부 */ <choose>
<when test="levyExclIDs != null">
AND LEVY_EXCL_ID IN (
<foreach collection="levyExclIDs" item="levyExclId" separator=","> #{levyExclId} </foreach>
)
</when>
<otherwise>
AND LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */
</otherwise>
</choose>
</update> </update>
</mapper> </mapper>

@ -224,7 +224,7 @@ $(document).ready(function(){
var $P = pageObject["${pageName}"]; var $P = pageObject["${pageName}"];
$P.scrollable = true; $P.scrollable = true;
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
@ -312,7 +312,7 @@ $(document).ready(function(){
this.innerHTML = ""; this.innerHTML = "";
} }
}); });
//업무별 그리드 //업무별 그리드
var colsContent = document.getElementById("crdnCols--${pageName}").content; var colsContent = document.getElementById("crdnCols--${pageName}").content;
var cols = $(colsContent).find("."+clsForTask+",.cmn"); var cols = $(colsContent).find("."+clsForTask+",.cmn");
@ -329,10 +329,10 @@ $(document).ready(function(){
} }
$P.scrollEnd = (obj) => { $P.scrollEnd = (obj) => {
if(!$P.scrollable){ if(!$P.scrollable){
return; return;
} }
var el = $(obj); var el = $(obj);
if(el.scrollTop() == 0){ if(el.scrollTop() == 0){
return; return;
@ -366,13 +366,13 @@ $(document).ready(function(){
var foundContent = document.getElementById("crdnRow--${pageName}").content; var foundContent = document.getElementById("crdnRow--${pageName}").content;
var foundTr = $(foundContent).find("tr")[0].cloneNode(false); var foundTr = $(foundContent).find("tr")[0].cloneNode(false);
var foundTds = $(foundContent).find("."+clsForTask+",.cmn"); var foundTds = $(foundContent).find("."+clsForTask+",.cmn");
foundTds.each(function(){ foundTds.each(function(){
foundTr.appendChild(this.cloneNode(true)); foundTr.appendChild(this.cloneNode(true));
}); });
var found = foundTr.outerHTML; var found = foundTr.outerHTML;
var replacer = (str, dataItem) => str var replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].clickCrdnList('" + dataItem.getValue("CRDN_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].clickCrdnList('" + dataItem.getValue("CRDN_ID") + "');")
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].dblclickCrdnList('" + dataItem.getValue("CRDN_ID") + "');"); .replace(/{ondblclick}/gi, "pageObject['${pageName}'].dblclickCrdnList('" + dataItem.getValue("CRDN_ID") + "');");
@ -380,7 +380,7 @@ $(document).ready(function(){
$("#crdnTbody--${pageName}").html(trs.join()); $("#crdnTbody--${pageName}").html(trs.join());
fn_securityModeToggle($("#securityMode--top").is(":checked")); //보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); //보안모드
$P.scrollable = true; $P.scrollable = true;
} }

@ -14,10 +14,16 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화">초기화</button> <button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색">검색</button> <button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색" onclick="fnSearchList${pageName}();">
<button type="button" class="btn btn-search" id="btnExcel--${pageName}" title="엑셀">엑셀</button> 검색
</button>
<button type="button" class="btn btn-search" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();">
엑셀
</button>
</span> </span>
</div> </div>
<!-- / 상단 버튼 --> <!-- / 상단 버튼 -->
@ -157,10 +163,18 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<a href="#" class="btn btn-blue" id="btnCreateNotLevy--${pageName}" title="비부과 등록">비부과 등록</a> <button class="btn btn-primary" id="btnCreateNotLevy--${pageName}" title="비부과 등록" onclick="fnCreate${pageName}('1');">
<a href="#" class="btn btn-blue" id="btnCreateWarning--${pageName}" title="계고 등록">계고 등록</a> 비부과 등록
<a href="#" class="btn btn-blue" id="btnUpdate--${pageName}" title="수정">수정</a> </button>
<a href="#" class="btn btn-blue" id="btnRemove--${pageName}" title="삭제">삭제</a> <button class="btn btn-primary" id="btnCreateWarning--${pageName}" title="계고 등록" onclick="fnCreate${pageName}('2');">
계고 등록
</button>
<button class="btn btn-primary" id="btnUpdate--${pageName}" title="수정" onclick="fnModify${pageName}();">
수정
</button>
<button class="btn btn-primary" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();">
삭제
</button>
</span> </span>
</span> </span>
</div> </div>
@ -248,8 +262,8 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// URL
var prefixUrl = "/excl/excl01"; var prefixUrl = "/excl/excl01";
// 공통 코드 // 공통 코드
var FIM021 = new CommonCodes(${FIM021}, true); var FIM021 = new CommonCodes(${FIM021}, true);
var FIM022 = new CommonCodes(${FIM022}, true); var FIM022 = new CommonCodes(${FIM022}, true);
@ -269,7 +283,7 @@
, getInfo : wctx.url(prefixUrl + "/020/info.do") , getInfo : wctx.url(prefixUrl + "/020/info.do")
, create : wctx.url(prefixUrl + "/020/create.do") , create : wctx.url(prefixUrl + "/020/create.do")
, update : wctx.url(prefixUrl + "/020/update.do") , update : wctx.url(prefixUrl + "/020/update.do")
, remove : wctx.url(prefixUrl + "/020/remove.do") , remove : wctx.url(prefixUrl + "/010/remove.do")
} }
, formats : { , formats : {
LEVY_EXCL_YMD : dateFormat LEVY_EXCL_YMD : dateFormat
@ -278,11 +292,10 @@
, REG_DT : datetimeFormat , REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat , MDFCN_DT : datetimeFormat
} }
}); });
/************************************************************************** /**************************************************************************
* DatasetControl.on * DatasetControl
**************************************************************************/ **************************************************************************/
// onDatasetChange 이벤트 // onDatasetChange 이벤트
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
@ -308,7 +321,6 @@
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
}; };
// onSelectionChange 이벤트 // onSelectionChange 이벤트
${pageName}Control.onSelectionChange = selected => { ${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
@ -320,12 +332,9 @@
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
// $("#btnRemove${infoPrefix}s").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
}; };
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
function renderList${pageName}() { function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
@ -372,21 +381,41 @@
// Create 신규 등록 // Create 신규 등록
${pageName}Control.newInfo = (obj) => { ${pageName}Control.newInfo = (obj) => {
${pageName}Control.dataset.append(obj || {}); // ${pageName}Control.dataset.append(obj || {});
${pageName}Control.getInfo(); // ${pageName}Control.getInfo();
}
// Create 신규 등록
${pageName}Control.afterNewInfo = (obj) => {
// ${pageName}Control.dataset.append(obj || {});
${pageName}Control.getInfo(obj); ${pageName}Control.getInfo(obj);
} }
// // 삭제
// ${pageName}Control.onRemove = (selected, resp) => {
// if (resp.saved)
// ${pageName}Control._load();
// }
// // 삭제
// ${pageName}Control.remove = (params) => {
// let selected = ${pageName}Control.dataset.getKeys("selected");
// debugger;
// if (selected.length < 1) return;
// if (!params) {
// params = {};
// params[${pageName}Control.prefixed("IDs")] = selected.join(",");
// }
// ajax.post({
// url : ${pageName}Control.urls.remove
// , data : params
// , success : resp => ${pageName}Control.onRemove(selected, resp)
// });
// }
/************************************************************************** /**************************************************************************
* 초기 셋팅 *
**************************************************************************/ **************************************************************************/
// 검색 조건 초기값 // 초기 설정
function initSearch${pageName}() { function initForm${pageName}() {
// 업무구분 // 업무구분
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true);
@ -399,22 +428,13 @@
// 이벤트 // 이벤트
function setEvent${pageName}() { function setEvent${pageName}() {
// 버튼 이벤트
$("#btnReset--${pageName}").on("click", () => fnReset${pageName}()); // 초기화
$("#btnSearch--${pageName}").on("click", () => fnSearchList${pageName}()); // 검색
$("#btnExcle--${pageName}").on("click", () => fnExcel${pageName}()); // 엑셀
$("#btnCreateNotLevy--${pageName}").on("click", () => fnCreate${pageName}("1")); // 비부과 등록
$("#btnCreateWarning--${pageName}").on("click", () => fnCreate${pageName}("2")); // 계고 등록
$("#btnRemove--${pageName}").on("click", () => fnRemove${pageName}()); // 삭제
$("#term--${pageName}").onEnterPress(() => fnSearchList${pageName}()); // 동적 검색
// DataTables 스크롤 이벤트 // DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() { $("#table-responsive--${pageName}").scroll(function() {
let el = $(this); let el = $(this);
if (el.scrollTop() == 0) return; if (el.scrollTop() == 0) return;
if ((el[0].scrollHeight - el.scrollTop() + 15) == el.outerHeight()) { if ((el[0].scrollHeight - el.scrollTop() + 17) == el.outerHeight()) {
fnSearchList${pageName}(${pageName}Control.query.pageNum + 1); fnSearchList${pageName}(${pageName}Control.query.pageNum + 1);
} }
}); });
@ -423,9 +443,27 @@
/************************************************************************** /**************************************************************************
* function * function
**************************************************************************/ **************************************************************************/
// 업무구분 변경
function fnResetAndChangeBiz${pageName}(taskSeCd) {
$("tbody--${pageName}").html("");
}
// 검색 조건 파라미터 가져오기
function fnGetParams${pageName}() {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
formData.fetchSize = 30; // 한번에 30건씩 조회
return formData;
}
// 초기화 // 초기화
function fnReset${pageName}() { function fnReset${pageName}() {
initForm${pageName}();
${pageName}Control.dataset.clear();
} }
// 검색 // 검색
@ -446,52 +484,45 @@
// 등록 // 등록
function fnCreate${pageName}(levyExclSeCd) { function fnCreate${pageName}(levyExclSeCd) {
// test
let dialogInfo = { let dialogInfo = {
callMode : "create" crdnId : "4148020180000150"
, crdnId : "4148020180000150" , levyExclSeCd : levyExclSeCd
, levyExclSeCd : levyExclSeCd
}; };
// 테이블에서 선택한 현재 자료 ${pageName}Control.newInfo(dialogInfo);
// dialogInfo = ${pageName}Control.getCurrent();
// dialogInfo.callMode = "create";
// dialogInfo.crdnId = "4148020180000150";
// dialogInfo.levyExclSeCd = levyExclSeCd;
${pageName}Control.afterNewInfo(dialogInfo);
} }
// 삭제 // 수정
function fnRemove${pageName}(levyExclSeCd) { function fnModify${pageName}() {
let params = {
} levyExclId : excl01010Control.dataset.getValue("LEVY_EXCL_ID")
};
// 업무구분 변경 ${pageName}Control.getInfo(params);
function fnResetAndChangeBiz${pageName}(taskSeCd) {
$("tbody--${pageName}").html("");
} }
// 검색 조건 파라미터 가져오기 // 삭제
function fnGetParams${pageName}() { function fnRemove${pageName}() {
let formFields = new FimsFormFields("#frmSearch--${pageName}"); dialog.alert({
let formData = formFields.get(); content : "선택한 ${prefixName} 정보를 제거하시겠습니까?"
, onOK : () => {
formData.sggCd = "41480"; // 시군구 코드 임시 ${pageName}Control.remove();
formData.fetchSize = 30; // 한번에 30건씩 조회 }
});
return formData;
} }
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 검색조건 초기값 설정 // 화면 초기 설정
initSearch${pageName}(); initForm${pageName}();
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// Dataset 셋팅
${pageName}Control.addData(${levyExcl}); ${pageName}Control.addData(${levyExcl});
}); });

@ -4,16 +4,18 @@
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="formInput--${pageName}" name="formInput"> <form id="frmInfo--${pageName}" name="frmInfo">
<input type="hidden" name="levyExclId" data-map="LEVY_EXCL_ID" /> <input type="hidden" id="levyExclId--${pageName}" name="levyExclId" data-map="LEVY_EXCL_ID" />
<input type="hidden" name="crdnId" data-map="CRDN_ID" /> <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" />
<div class="row g-1"> <div class="row g-1">
<!-- 부과제외 구분 --> <!-- 부과제외 구분 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="levyExclSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">처리 구분</label> <label for="levyExclSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">처리 구분</label>
<input id="levyExclSeNm--${pageName}" type="text" readonly class="form-control"/> <input type="text" class="form-control" id="levyExclSeNm--${pageName}" readonly />
<input id="levyExclSeCd--${pageName}" type="hidden" data-map="LEVY_EXCL_SE_CD"/> <input type="hidden" id="levyExclSeCd--${pageName}" name="levyExclSeCd" data-map="LEVY_EXCL_SE_CD" />
</div> </div>
<!-- 부과제외 일자 --> <!-- 부과제외 일자 -->
<div class="col-md-12"> <div class="col-md-12">
@ -34,7 +36,7 @@
</div> </div>
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="levyExclRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label> <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" /> <input type="text" class="form-control w-px-400" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" />
</div> </div>
</div> </div>
@ -48,7 +50,7 @@
<span class="container-page-btn"> <span class="container-page-btn">
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<a href="#" class="btn btn-blue" id="btnSave--${pageName}" title="저장">저장</a> <button class="btn btn-primary" id="btnSave--${pageName}" title="저장" onclick="fnSave${pageName}()">저장</button>
</span> </span>
</span> </span>
</div> </div>
@ -58,8 +60,14 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
var ${pageName}Fields = new FormFields("#formInput--${pageName}"); // URL
var prefixUrl = "/excl/excl01";
//
var ${pageName}Fields = new FormFields("#frmInfo--${pageName}");
var ${pageName}Mode = "${pageMode}"; var ${pageName}Mode = "${pageMode}";
// 공통 코드
var FIM021 = new CommonCodes(${FIM021}, true);
var FIM022 = new CommonCodes(${FIM022}, true);
/************************************************************************** /**************************************************************************
* Dataset * Dataset
@ -69,25 +77,22 @@
, prefixName : "부과제외" , prefixName : "부과제외"
, keymapper : info => info ? info.levyExclId : "" , keymapper : info => info ? info.levyExclId : ""
, urls : { , urls : {
load : wctx.url(prefixUrl + "/010/list.do") create : wctx.url(prefixUrl + "/020/create.do")
, getInfo : wctx.url(prefixUrl + "/020/info.do")
, create : wctx.url(prefixUrl + "/020/create.do")
, update : wctx.url(prefixUrl + "/020/update.do") , update : wctx.url(prefixUrl + "/020/update.do")
, remove : wctx.url(prefixUrl + "/020/remove.do")
} }
, formats : { , formats : {
LEVY_EXCL_YMD : dateFormat LEVY_EXCL_YMD : dateFormat
} }
, onCurrentChange : item => { , onCurrentChange : item => {
${pageName}Fields.set(item); ${pageName}Fields.set(item);
setFim021(item.data.LEVY_EXCL_SE_CD); setFim021(item.data.LEVY_EXCL_SE_CD);
} }
}); });
/************************************************************************** /**************************************************************************
* *
**************************************************************************/ **************************************************************************/
// // 저장 callback
${pageName}Info.onSave = (resp) => { ${pageName}Info.onSave = (resp) => {
if (resp.saved) { if (resp.saved) {
dialog.alert("저장됐습니다."); dialog.alert("저장됐습니다.");
@ -95,10 +100,7 @@
} }
} }
/************************************************************************** // 저장
*
**************************************************************************/
//
${pageName}Info.save = (info) => { ${pageName}Info.save = (info) => {
if (!info) return; if (!info) return;
@ -112,31 +114,30 @@
}); });
} }
//
function setFim021(code) { function setFim021(code) {
let cmnCode = FIM021[code]; let cmnCode = FIM021[code];
$("#levyExclSeCd--${pageName}").val(cmnCode.code); $("#levyExclSeCd--${pageName}").val(cmnCode.code);
$("#levyExclSeNm--${pageName}").val(cmnCode.value); $("#levyExclSeNm--${pageName}").val(cmnCode.value);
let reasons = FIM022.list().filter(reason => "1" == code ? reason.code < "200" : reason.code > "200");
$("#levyExclRsnCd--${pageName}").html(reasons.map(reason => "<option value='" + reason.code + "'>" + reason.value + "</option>").join());
} }
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/
// 검색조건 초기값 셋팅 // 검색조건 초기값 셋팅
function initSearch${pageName}() { function initForm${pageName}() {
// 달력 초기화 // 달력 초기화
initDatepicker("formInput--${pageName}"); initDatepicker("frmInfo--${pageName}");
$("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); $("#levyExclYmd--${pageName}").datepicker("setDate", new Date());
// 부과제외구분에 따른 부과제외사유 코드 설정
setFim021("${levyExclSeCd}");
let reasons = FIM022.list().filter(reason => "1" == "${levyExclSeCd}" ? reason.code < "200" : reason.code > "200");
$("#levyExclRsnCd--${pageName}").html(reasons.map(reason => "<option value='" + reason.code + "'>" + reason.value + "</option>").join());
} }
// // 이벤트 설정
function setEvent${pageName}() { function setEvent${pageName}() {
// 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => fnSave${pageName}()); // 저장
} }
/************************************************************************** /**************************************************************************
@ -144,7 +145,7 @@
**************************************************************************/ **************************************************************************/
// 저장 // 저장
function fnSave${pageName}() { function fnSave${pageName}() {
let formFields = new FimsFormFields("#frmInput--${pageName}"); let formFields = new FimsFormFields("#frmInfo--${pageName}");
let data = formFields.get(); let data = formFields.get();
dialog.alert({ dialog.alert({
@ -159,21 +160,14 @@
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 초기 설정 // 화면 초기 설정
initSearch${pageName}(); initForm${pageName}();
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// Data 셋팅 // Dataset 셋팅
if (${pageName}Mode == "create") { ${pageName}Info.setData([${levyExclInfo}]);
} else if (${pageName}Mode == "update") {
${pageName}Info.setData([${levyExclInfo}]);
} else {
}
}); });
// #sourceURL=excl01020-info.jsp // #sourceURL=excl01020-info.jsp

Loading…
Cancel
Save