1. 안내문관리 info 추가

2. 안내문관리 등록, 수정, 삭제 수정.
main
jjh 12 months ago
parent 74e8082eba
commit 2f5430e0a8

@ -12,6 +12,11 @@ import lombok.Setter;
@Setter @Setter
public class EpostGdcc extends AbstractEntity { public class EpostGdcc extends AbstractEntity {
/**
* ID
*/
private String gdccId;
/** /**
* *
*/ */
@ -27,11 +32,6 @@ public class EpostGdcc extends AbstractEntity {
*/ */
private String sndngSeCd; private String sndngSeCd;
/**
* ID
*/
private String gdccId;
/** /**
* *
*/ */
@ -47,5 +47,10 @@ public class EpostGdcc extends AbstractEntity {
*/ */
private String lastUseDt; private String lastUseDt;
/**
* IDs
*/
private String[] gdccIDs;
} }

@ -108,7 +108,7 @@ public interface EpostGdccMapper extends AbstractMapper {
* </ul> * </ul>
*/ */
default boolean delete(EpostGdcc epostGdcc) { default boolean delete(EpostGdcc epostGdcc) {
return epostGdcc != null && deleteEpostGdcc(params().set("epostGdcc", epostGdcc)) == 1; return epostGdcc != null && deleteEpostGdcc(params().set("epostGdcc", epostGdcc)) >= 1;
} }
} }

@ -37,6 +37,33 @@ public interface EpostGdccService {
*/ */
DataObject getEpostGdccInfo(EpostQuery req); DataObject getEpostGdccInfo(EpostQuery req);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createEpostGdcc(EpostGdcc epostGdcc);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String updateEpostGdcc(EpostGdcc epostGdcc);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeEpostGdcc(EpostGdcc epostGdcc);
/** . /** .
* @param epostGdcc * @param epostGdcc
* @return * @return

@ -61,6 +61,84 @@ public class EpostGdccBean extends AbstractComponent {
return epostGdccMapper.selectEpostGdccInfo(req); return epostGdccMapper.selectEpostGdccInfo(req);
} }
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createEpostGdcc(EpostGdcc epostGdcc) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// 전자우편 안내문 정보를 등록한다.
rtnScs = epostGdccMapper.insert(epostGdcc); // 등록
if (!rtnScs) {
rtnMsg = "전자우편 안내문 정보 등록에 실패하였습니다.";
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String updateEpostGdcc(EpostGdcc epostGdcc) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// 전자우편 안내문 정보를 수정한다.
rtnScs = epostGdccMapper.update(epostGdcc); // 수정
if (!rtnScs) {
rtnMsg = "전자우편 안내문 정보 수정에 실패하였습니다.";
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeEpostGdcc(EpostGdcc epostGdcc) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// ID를 확인하여 자료가 없다면.. 종료
if (epostGdcc.getGdccId() == null && epostGdcc.getGdccIDs().length < 1) {
rtnMsg = "작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 전자우편 안내문 정보를 삭제한다.
rtnScs = epostGdccMapper.delete(epostGdcc); // 삭제
if (!rtnScs) {
rtnMsg = "전자우편 안내문 정보 수정에 실패하였습니다.";
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
/** . /** .
* @param epostGdcc * @param epostGdcc
* @return * @return

@ -42,11 +42,22 @@ public class EpostGdccServiceBean extends AbstractServiceBean implements EpostGd
@Override @Override
public DataObject getEpostGdccInfo(EpostQuery req) { public DataObject getEpostGdccInfo(EpostQuery req) {
if (req.getCallPurpose().equals("create")) {
return null;
} else {
return epostGdccBean.getEpostGdccInfo(req); return epostGdccBean.getEpostGdccInfo(req);
} }
@Override
public String createEpostGdcc(EpostGdcc epostGdcc) {
return epostGdccBean.createEpostGdcc(epostGdcc);
}
@Override
public String updateEpostGdcc(EpostGdcc epostGdcc) {
return epostGdccBean.updateEpostGdcc(epostGdcc);
}
@Override
public String removeEpostGdcc(EpostGdcc epostGdcc) {
return epostGdccBean.removeEpostGdcc(epostGdcc);
} }
@Override @Override

@ -6,7 +6,6 @@ import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode; import cokr.xit.base.code.CommonCode;
@ -27,7 +26,6 @@ import cokr.xit.foundation.data.DataObject;
* ================================ * ================================
* </pre> * </pre>
*/ */
@RequestMapping(name = "전자우편 안내문", value = "/epostGdcc")
public class Epst02Controller extends ApplicationController { public class Epst02Controller extends ApplicationController {
public static final String CLASS_URL = "/epst/epst02"; public static final String CLASS_URL = "/epst/epst02";
@ -36,10 +34,10 @@ public class Epst02Controller extends ApplicationController {
public static final String public static final String
epostGuidanceDocumentMain = "/010/main.do" // 전자우편 안내문 메인 화면 epostGuidanceDocumentMain = "/010/main.do" // 전자우편 안내문 메인 화면
, getEpostGuidanceDocumentList = "/010/list.do" // 전자우편 안내문 대장 목록 조회 , getEpostGuidanceDocumentList = "/010/list.do" // 전자우편 안내문 대장 목록 조회
, getEpostGuidanceDocumentInfo = "/020/info.do" // 전자우편 안내문 대장 목록 조회 , getEpostGuidanceDocumentInfo = "/020/info.do" // 전자우편 안내문 정보 조회
, create = "/010/create.do" // 등록 , createEpostGuidanceDocument = "/020/create.do" // 전자우편 안내문 정보 등록
, update = "/010/update.do" // 수정 , updateEpostGuidanceDocument = "/020/update.do" // 전자우편 안내문 정보 수정
, remove = "/010/remove.do" // 삭제 , removeEpostGuidanceDocument = "/010/remove.do" // 전자우편 안내문 정보 삭제
; ;
} }
@ -88,11 +86,19 @@ public class Epst02Controller extends ApplicationController {
* @param req * @param req
* @return fims/epst/epst02020-info jsonView * @return fims/epst/epst02020-info jsonView
* <pre>{ * <pre>{
* "levyExclInfo": * "epostGdccInfo":
* }</pre> * }</pre>
*/ */
public ModelAndView getEpostGuidanceDocumentInfo(EpostQuery req) { public ModelAndView getEpostGuidanceDocumentInfo(EpostQuery req) {
DataObject epostGdccInfo = epostGdccService.getEpostGdccInfo(req); //
DataObject epostGdccInfo = new DataObject();
if (req.getCallPurpose().equals("create")) {
epostGdccInfo.set("SGG_CD", req.getSggCd());
epostGdccInfo.set("TASK_SE_CD", req.getTaskSeCd());
} else {
epostGdccInfo = epostGdccService.getEpostGdccInfo(req);
}
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -112,6 +118,73 @@ public class Epst02Controller extends ApplicationController {
; ;
} }
/** .
* @param epostGdcc
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createEpostGuidanceDocument(EpostGdcc epostGdcc) {
boolean saved = false;
String retMessage = epostGdccService.createEpostGdcc(epostGdcc);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param epostGdcc
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateEpostGuidanceDocument(EpostGdcc epostGdcc) {
boolean saved = false;
String retMessage = epostGdccService.updateEpostGdcc(epostGdcc);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param epostGdccIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
public ModelAndView removeEpostGuidanceDocument(EpostGdcc epostGdcc) {
boolean saved = false;
String retMessage = epostGdccService.removeEpostGdcc(epostGdcc);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** . /** .
* @param epostGdcc * @param epostGdcc
* @return jsonView * @return jsonView

@ -554,12 +554,12 @@ public class Sndb01Controller extends ApplicationController {
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01220-info"); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01220-info");
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054", "FIM079"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054", "FIM081");
return mav.addObject("pageName", "sndb01220") return mav.addObject("pageName", "sndb01220")
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM079List", commonCodes.get("FIM079")) // 미배달 사유 코드(UNDLVR_RSN_CD) .addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD)
.addObject("sndbkInfo", json ? sndbkInfo : toJson(sndbkInfo)) // 반송 정보 .addObject("sndbkInfo", json ? sndbkInfo : toJson(sndbkInfo)) // 반송 정보
; ;
} }

@ -10,6 +10,7 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.CrdnQuery;
import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.cvlc.CrdnCvlcpt;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery; import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.excl.CrdnReReg; import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.excl.LevyExclQuery;
@ -856,37 +857,37 @@ public class DpvController {
class Sprt04Controller extends cokr.xit.fims.sprt.web.Sprt04Controller { class Sprt04Controller extends cokr.xit.fims.sprt.web.Sprt04Controller {
@Override @Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 대장 목록 조회", value=METHOD_URL.getCvlcptDscsnList) @RequestMapping(name="민원상담내용 대장 목록 조회", value=METHOD_URL.getCvlcptDscsnList)
public ModelAndView getCvlcptDscsnList(CvlcptDscsnQuery req) { public ModelAndView getCvlcptDscsnList(CvlcptDscsnQuery req) {
return super.getCvlcptDscsnList(req); return super.getCvlcptDscsnList(req);
} }
@Override @Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 정보 조회", value=METHOD_URL.getCvlcptDscsnInfo) @RequestMapping(name="민원상담내용 정보 조회", value=METHOD_URL.getCvlcptDscsnInfo)
public ModelAndView getCvlcptDscsnInfo(CvlcptDscsnQuery req) { public ModelAndView getCvlcptDscsnInfo(CvlcptDscsnQuery req) {
return super.getCvlcptDscsnInfo(req); return super.getCvlcptDscsnInfo(req);
} }
@Override @Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 대장 등록", value=METHOD_URL.createCvlcptDscsn) @RequestMapping(name="민원상담내용 대장 등록", value=METHOD_URL.createCvlcptDscsn)
public ModelAndView createCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public ModelAndView createCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
return super.createCvlcptDscsn(cvlcptDscsn); return super.createCvlcptDscsn(cvlcptDscsn);
} }
@Override @Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 대장 수정", value=METHOD_URL.updateCvlcptDscsn) @RequestMapping(name="민원상담내용 대장 수정", value=METHOD_URL.updateCvlcptDscsn)
public ModelAndView updateCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public ModelAndView updateCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
return super.updateCvlcptDscsn(cvlcptDscsn); return super.updateCvlcptDscsn(cvlcptDscsn);
} }
@Override @Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 대장 목록 삭제", value=METHOD_URL.removeCvlcptDscsnList) @RequestMapping(name="민원상담내용대장 목록 삭제", value=METHOD_URL.removeCvlcptDscsnList)
public ModelAndView removeCvlcptDscsnList(CvlcptDscsnQuery req) { public ModelAndView removeCvlcptDscsnList(CvlcptDscsnQuery req) {
return super.removeCvlcptDscsnList(req); return super.removeCvlcptDscsnList(req);
} }
@Override @Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 대장 삭제", value=METHOD_URL.removeCvlcptDscsn) @RequestMapping(name="민원상담내용대장 삭제", value=METHOD_URL.removeCvlcptDscsn)
public ModelAndView removeCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public ModelAndView removeCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
return super.removeCvlcptDscsn(cvlcptDscsn); return super.removeCvlcptDscsn(cvlcptDscsn);
} }
@ -898,17 +899,35 @@ public class DpvController {
class Epst02Controller extends cokr.xit.fims.epst.web.Epst02Controller { class Epst02Controller extends cokr.xit.fims.epst.web.Epst02Controller {
@Override @Override
@RequestMapping(name="전자우편 안내문 대장 목록 조회", value=METHOD_URL.getEpostGuidanceDocumentList) @RequestMapping(name="전자우편안내문 대장 목록 조회", value=METHOD_URL.getEpostGuidanceDocumentList)
public ModelAndView getEpostGuidanceDocumentList(EpostQuery req) { public ModelAndView getEpostGuidanceDocumentList(EpostQuery req) {
return super.getEpostGuidanceDocumentList(req); return super.getEpostGuidanceDocumentList(req);
} }
@Override @Override
@RequestMapping(name="전자우편 안내문 대장 목록 조회", value=METHOD_URL.getEpostGuidanceDocumentInfo) @RequestMapping(name="전자우편안내문 정보 조회", value=METHOD_URL.getEpostGuidanceDocumentInfo)
public ModelAndView getEpostGuidanceDocumentInfo(EpostQuery req) { public ModelAndView getEpostGuidanceDocumentInfo(EpostQuery req) {
return super.getEpostGuidanceDocumentInfo(req); return super.getEpostGuidanceDocumentInfo(req);
} }
@Override
@RequestMapping(name="전자우편안내문 정보 등록", value=METHOD_URL.createEpostGuidanceDocument)
public ModelAndView createEpostGuidanceDocument(EpostGdcc epostGdcc) {
return super.createEpostGuidanceDocument(epostGdcc);
}
@Override
@RequestMapping(name="전자우편안내문 정보 수정", value=METHOD_URL.updateEpostGuidanceDocument)
public ModelAndView updateEpostGuidanceDocument(EpostGdcc epostGdcc) {
return super.updateEpostGuidanceDocument(epostGdcc);
}
@Override
@RequestMapping(name="전자우편안내문 정보 삭제", value=METHOD_URL.removeEpostGuidanceDocument)
public ModelAndView removeEpostGuidanceDocument(EpostGdcc epostGdcc) {
return super.removeEpostGuidanceDocument(epostGdcc);
}
} }
@Controller @Controller

@ -37,6 +37,7 @@
, EG.MDFR /* 수정자 */ , EG.MDFR /* 수정자 */
, (SELECT GET_CODE_NM('FIM054', EG.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ , (SELECT GET_CODE_NM('FIM054', EG.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM047', EG.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ , (SELECT GET_CODE_NM('FIM047', EG.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */
, (SELECT GET_CODE_NM('CMM003', EG.USE_YN) FROM DUAL) AS USE_YN_NM /* 사용 여부 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = EG.RGTR) AS RGTR_NM /* 등록자 명 */ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = EG.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = EG.MDFR) AS MDFR_NM /* 수정자 명 */ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = EG.MDFR) AS MDFR_NM /* 수정자 명 */
FROM TB_EPOST_GDCC EG FROM TB_EPOST_GDCC EG
@ -75,6 +76,11 @@
</select> </select>
<insert id="insertEpostGdcc" parameterType="map">/* 전자우편 안내문 등록(epostGdccMapper.insertEpostGdcc) */ <insert id="insertEpostGdcc" parameterType="map">/* 전자우편 안내문 등록(epostGdccMapper.insertEpostGdcc) */
<selectKey resultType="string" keyProperty="epostGdcc.gdccId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y%m%d'), '-', LPAD(CAST(IFNULL(MAX(SUBSTRING(GDCC_ID, 10)) + 1, 1) AS INT), 4, '0')) AS NEW_ID
FROM TB_EPOST_GDCC
WHERE GDCC_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y%m%d'), '%')
</selectKey>
INSERT INSERT
INTO TB_EPOST_GDCC ( INTO TB_EPOST_GDCC (
GDCC_ID /* 안내문 ID */ GDCC_ID /* 안내문 ID */
@ -108,13 +114,13 @@
<update id="updateEpostGdcc" parameterType="map">/* 전자우편 안내문 수정(epostGdccMapper.updateEpostGdcc) */ <update id="updateEpostGdcc" parameterType="map">/* 전자우편 안내문 수정(epostGdccMapper.updateEpostGdcc) */
UPDATE TB_EPOST_GDCC UPDATE TB_EPOST_GDCC
SET TTL_NM = #{epostGdcc.ttlNm} /* 제목 명 */ SET SNDNG_SE_CD = #{epostGdcc.sndngSeCd} /* 발송 구분 코드 */
, TTL_NM = #{epostGdcc.ttlNm} /* 제목 명 */
, WORDS_CN = #{epostGdcc.wordsCn} /* 문구 내용 */ , WORDS_CN = #{epostGdcc.wordsCn} /* 문구 내용 */
, LAST_USE_DT = #{epostGdcc.lastUseDt} /* 최종 사용 일시 */
, MDFCN_DT = #{epostGdcc.lastModified} /* 수정 일시 */ , MDFCN_DT = #{epostGdcc.lastModified} /* 수정 일시 */
, MDFR = #{epostGdcc.modifiedBy} /* 수정자 */ , MDFR = #{epostGdcc.modifiedBy} /* 수정자 */
WHERE GDCC_ID = #{epostGdcc.gdccId} WHERE GDCC_ID = #{epostGdcc.gdccId} /* 안내문 ID */
AND USE_YN = 'Y' AND USE_YN = 'Y' /* 사용 여부 */
</update> </update>
<update id="deleteEpostGdcc" parameterType="map">/* 전자우편 안내문 삭제(epostGdccMapper.deleteEpostGdcc) */ <update id="deleteEpostGdcc" parameterType="map">/* 전자우편 안내문 삭제(epostGdccMapper.deleteEpostGdcc) */
@ -122,8 +128,17 @@
SET USE_YN = 'N' /* 사용 여부 */ SET USE_YN = 'N' /* 사용 여부 */
, MDFCN_DT = #{epostGdcc.lastModified} /* 수정 일시 */ , MDFCN_DT = #{epostGdcc.lastModified} /* 수정 일시 */
, MDFR = #{epostGdcc.modifiedBy} /* 수정자 */ , MDFR = #{epostGdcc.modifiedBy} /* 수정자 */
WHERE GDCC_ID = #{epostGdcc.gdccId} <choose>
AND USE_YN = 'Y' <when test="epostGdcc.gdccIDs != null">
WHERE GDCC_ID IN ( /* 안내문 IDs */
<foreach collection="epostGdcc.gdccIDs" item="epostGdcc.gdccId" separator=","> #{epostGdcc.gdccId} </foreach>
)
</when>
<otherwise>
WHERE GDCC_ID = #{epostGdcc.gdccId} /* 안내문 ID */
</otherwise>
</choose>
AND USE_YN = 'Y' /* 사용 여부 */
</update> </update>
</mapper> </mapper>

@ -110,13 +110,13 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnCreateEpostGdcc--${pageName}" title="안내문 등록" onclick="fnCreateEpostGdcc${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="안내문 등록" onclick="fnCreate${pageName}();">
안내문 등록 안내문 등록
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateEpostGdcc--${pageName}" title="안내문 수정" onclick="fnUpdateEpostGdcc${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="안내문 수정" onclick="fnUpdate${pageName}();">
안내문 수정 안내문 수정
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveEpostGdcc--${pageName}" title="안내문 삭제" onclick="fnRemoveEpostGdcc${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="안내문 삭제" onclick="fnRemove${pageName}();">
안내문 삭제 안내문 삭제
</button> </button>
</span> </span>
@ -138,6 +138,7 @@
</th> </th>
<th class="cmn" style="width: 160px;">업무구분</th> <th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;">발송구분</th> <th class="cmn" style="width: 120px;">발송구분</th>
<th class="cmn" style="width: 100px;">사용여부</th>
<th class="cmn" style="width: 180px;">최종사용일시</th> <th class="cmn" style="width: 180px;">최종사용일시</th>
<th class="cmn" style="width: 300px;">제목</th> <th class="cmn" style="width: 300px;">제목</th>
<th class="cmn" style="width: 180px;">등록일시</th> <th class="cmn" style="width: 180px;">등록일시</th>
@ -156,7 +157,8 @@
<input type="checkbox" class="form-check-input" value="{GDCC_ID}" onchange="${pageName}Control.select('{GDCC_ID}', this.checked);"> <input type="checkbox" class="form-check-input" value="{GDCC_ID}" onchange="${pageName}Control.select('{GDCC_ID}', this.checked);">
</td> </td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{USE_YN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LAST_USE_DT}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LAST_USE_DT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{TTL_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{TTL_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
@ -195,6 +197,8 @@
var ${pageName}PrefixUrl = "/epst/epst02"; var ${pageName}PrefixUrl = "/epst/epst02";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 시군구 코드(SGG_CD)
var ${pageName}sggCd = "${sggCd}";
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -253,7 +257,7 @@
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
$("#btnRemoveEpostGdcc--${pageName}").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
}; };
// 전자우편 안내문 dialog // 전자우편 안내문 dialog
@ -265,8 +269,8 @@
let params = { let params = {
callPurpose : callPurpose callPurpose : callPurpose
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $("input[name=taskSeCd]:checked").val() // 업무 구분 코드
}; };
if (callPurpose == "view" || callPurpose == "update") { if (callPurpose == "view" || callPurpose == "update") {
@ -285,6 +289,8 @@
, title : "전자우편 안내문 정보" , title : "전자우편 안내문 정보"
, content : resp , content : resp
, size : ${pageName}Control.infoSize , size : ${pageName}Control.infoSize
, init : () => { }
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
}); });
} }
}); });
@ -292,7 +298,7 @@
// 삭제 callback // 삭제 callback
${pageName}Control.onRemove = (selected, resp) => { ${pageName}Control.onRemove = (selected, resp) => {
let btnTitle = $("#btnRemoveEpostGdcc--${pageName}").attr("title"); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert(showMessage);
@ -310,12 +316,12 @@
if (!params) { if (!params) {
params = {}; params = {};
params["GDCC_IDs"] = selected.join(","); params["GdccIDs"] = selected.join(","); // params[${pageName}Control.prefixed("IDs")] = selected.join(",");
} }
ajax.post({ ajax.post({
url : ${pageName}Control.urls.remove url : ${pageName}Control.urls.remove
, data : params , data : params || {}
, success : resp => ${pageName}Control.onRemove(selected, resp) , success : resp => ${pageName}Control.onRemove(selected, resp)
}); });
} }
@ -347,15 +353,6 @@
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/
// 초기화
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화
${pageName}Control.dataset.clear();
}
// 이벤트 // 이벤트
setEvent${pageName} = () => { setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
@ -400,11 +397,22 @@
}); });
} }
// 화면 초기값 셋팅 // 초기 화면 설정
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화
${pageName}Control.dataset.clear();
}
// 초기 데이터 설정
setForm${pageName} = (taskSeCd) => { setForm${pageName} = (taskSeCd) => {
// 기본 데이터 설정
$("#sggCd--${pageName}").val(${pageName}sggCd); // 시군구 코드
// 업무 구분 코드 // 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true"); $(this).prop("disabled", "true");
@ -423,14 +431,14 @@
**************************************************************************/ **************************************************************************/
// 업무 구분 변경 // 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => { fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 초기화
initForm${pageName}();
// 업무 구분 코드 // 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
} }
// 초기화
initForm${pageName}();
// 화면 초기값 설정 // 화면 초기값 설정
setForm${pageName}(taskSeCd); setForm${pageName}(taskSeCd);
@ -449,7 +457,7 @@
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.useYN = "N"; // 사용 여부 ${pageName}Control.query.useYN = "Y"; // 사용 여부 - Y
${pageName}Control.load(); ${pageName}Control.load();
} }
@ -465,22 +473,22 @@
} }
// 전자우편 안내문 등록 버튼 이벤트 // 전자우편 안내문 등록 버튼 이벤트
fnCreateEpostGdcc${pageName} = () => { fnCreate${pageName} = () => {
${pageName}Control.getInfo(); ${pageName}Control.getInfo("create");
} }
// 전자우편 안내문 수정 버튼 이벤트 // 전자우편 안내문 수정 버튼 이벤트
fnUpdateEpostGdcc${pageName} = () => { fnUpdate${pageName} = () => {
let gdccId = ${pageName}Control.dataset.getValue("GDCC_ID"); let gdccId = ${pageName}Control.dataset.getValue("GDCC_ID");
// 전자우편 안내문 ID 가 없다면.. return // 전자우편 안내문 ID 가 없다면.. return
if (typeof gdccId == "undefined" || gdccId == null || gdccId == "") return; if (typeof gdccId == "undefined" || gdccId == null || gdccId == "") return;
${pageName}Control.getInfo(gdccId); ${pageName}Control.getInfo("update", gdccId);
} }
// 전자우편 안내문 삭제 버튼 이벤트 // 전자우편 안내문 삭제 버튼 이벤트
fnRemoveEpostGdcc${pageName} = () => { fnRemove${pageName} = () => {
dialog.alert({ dialog.alert({
content : "선택한 전자우편 안내문 정보를 삭제하시겠습니까?" content : "선택한 전자우편 안내문 정보를 삭제하시겠습니까?"
, onOK : () => { , onOK : () => {
@ -493,9 +501,6 @@
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();

@ -0,0 +1,182 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">의견제출 심의 정보</c:set>
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<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="gdccId--${pageName}" name="gdccId" data-map="GDCC_ID" />
<div class="row g-1">
<!-- 발송 구분 코드 -->
<div class="col-md-12">
<label for="sndngSeCd--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end required">발송구분</label>
<select class="form-select" id="sndngSeCd--${pageName}" name="sndngSeCd" data-map="SNDNG_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 제목 명 -->
<div class="col-md-12">
<label for="ttlNm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end required">제목</label>
<input type="text" class="form-control w-75" id="ttlNm--${pageName}" name="ttlNm" data-map="TTL_NM" required autocomplete="off" />
</div>
<!-- 문구 내용 -->
<div class="col-md-12">
<label for="wordsCn--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">문구내용</label>
</div>
<div class="col-md-12">
<textarea class="form-control w-100" id="wordsCn--${pageName}" name="wordsCn" data-map="WORDS_CN" rows="15" data-maxlengthb="4000" autocomplete="off"></textarea>
</div>
</div>
</form> <!-- /입력 영역 -->
</div> <!-- <div class="card"> -->
<!-- 업무 버튼 표시 -->
<div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장" onclick="fnSave${pageName}()">저장</button>
</span>
</span>
</div>
<!-- / 업무 버튼 표시 -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> -->
</div> <!-- / inner page html <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/epst/epst02";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
var ${pageName}CallPurpose = "${callPurpose}";
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "epostGdcc"
, prefixName : "전자우편 안내문 정보"
, keymapper : info => info ? info.GDCC_ID : ""
, dataGetter : obj => obj.epostGdccInfo
});
${pageName}Control.onCurrentChange = item => {
if (!item) return;
// Dataset 셋팅
${pageName}Fields.set(item);
// 업무구분에 따른 url 변경
${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/create.do");
${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/update.do");
}
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 저장 callback
${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage);
if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog");
}
}
// 저장
${pageName}Control.save = (info) => {
if (!info) return;
let create = (${pageName}CallPurpose == "create"); // if 문
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
, data : info
, success : resp => ${pageName}Control.onSave(resp)
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
setEvent${pageName} = () => {
}
// 초기 화면 설정
initForm${pageName} = () => {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
}
// 초기 데이터 설정
setForm${pageName} = () => {
$("#sndngSeCd--${pageName}").attr("disabled", true);
$("#ttlNm--${pageName}").attr("disabled", true);
$("#wordsCn--${pageName}").attr("disabled", true);
$("#btnSave--${pageName}").attr("disabled", true);
if (${pageName}CallPurpose != "view") {
$("#sndngSeCd--${pageName}").attr("disabled", false);
$("#ttlNm--${pageName}").attr("disabled", false);
$("#wordsCn--${pageName}").attr("disabled", false);
$("#btnSave--${pageName}").attr("disabled", false);
}
}
/**************************************************************************
* function
**************************************************************************/
// 저장
fnSave${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(${pageName}Fields.get());
}
});
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정
setEvent${pageName}();
// 화면 초기화
initForm${pageName}();
// Dataset 셋팅 - 단건일 경우 setData
${pageName}Control.setData([${epostGdccInfo}]);
// 화면 데이터 셋팅
setForm${pageName}();
});
</script>

@ -29,7 +29,7 @@
<div class="col-md-12"> <div class="col-md-12">
<label for="undlvrRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">미배달사유</label> <label for="undlvrRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">미배달사유</label>
<select class="form-select" id="undlvrRsnCd--${pageName}" name="undlvrRsnCd" data-map="UNDLVR_RSN_CD" required> <select class="form-select" id="undlvrRsnCd--${pageName}" name="undlvrRsnCd" data-map="UNDLVR_RSN_CD" required>
<c:forEach items="${FIM079List}" var="item"> <c:forEach items="${FIM081List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>

Loading…
Cancel
Save