부서 등록,수정 기능 추가

main
이범준 9 months ago
parent 8e9310473e
commit c110c779e0

@ -12,6 +12,11 @@ import lombok.Setter;
@Setter
public class FineIntegrationDepartment extends Department {
/**
*
*/
private String cvlcptLinkSeCd;
/**
*
*/
@ -47,11 +52,21 @@ public class FineIntegrationDepartment extends Department {
*/
private String egpApvlNb;
/**
* E ESB
*/
private String egpEsbPath;
/**
* E ID
*/
private String egpPostInstId;
/**
* E CN
*/
private String egpCertCn;
/**
* ID
*/
@ -72,6 +87,16 @@ public class FineIntegrationDepartment extends Department {
*/
private String ensUrl;
/**
*
*/
private String nxrpLinkYn;
/**
*
*/
private String nxrpRgnSeCd;
/**
*
*/

@ -122,10 +122,7 @@ public interface FactionMapper extends AbstractMapper {
* @return
*/
default DataObject selectDeptInfo(CmmnQuery req) {
// 사용 여부 확인
if (req.getUseYN() == null) {
req.setUseYN("Y");
}
// 기본 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("D.DEPT_CD DESC");

@ -8,6 +8,7 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.cmmn.CmmnQuery;
import cokr.xit.fims.mngt.FineIntegrationDepartment;
import cokr.xit.fims.mngt.dao.FactionMapper;
import cokr.xit.fims.mngt.service.FactionService;
import cokr.xit.fims.mngt.service.bean.FactionBean;
@ -25,8 +26,10 @@ public class Mngt04Controller extends ApplicationController {
public static final String
deptMngtMain = "/010/main.do"
, getDeptList = "/010/list.do"
, getDeptInfo = "/020/info.do"
, removeDept = "/010/remove.do"
, getDeptInfo = "/020/info.do"
, createDept = "/020/create.do"
, updateDept = "/020/update.do"
;
}
@ -78,8 +81,13 @@ public class Mngt04Controller extends ApplicationController {
* }</pre>
*/
public ModelAndView getDeptInfo(CmmnQuery query) {
DataObject deptInfo = new DataObject();
DataObject deptInfo = factionService.getDeptInfo(query);
if(!ifEmpty(query.getDeptCd(), ()->"").equals("")) {
deptInfo = factionService.getDeptInfo(query);
} else {
deptInfo = null;
}
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/mngt/mngt04020-info");
@ -107,4 +115,42 @@ public class Mngt04Controller extends ApplicationController {
mav.addObject("saved", saved);
return mav;
}
/** .
* @param dept
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createDept(FineIntegrationDepartment dept) {
ModelAndView mav = new ModelAndView("jsonView");
boolean saved = false;
String rtnMsg = factionService.create(dept);
if(rtnMsg.contains("[S]")) {
saved = true;
}
mav.addObject("saved", saved);
return mav;
}
/** .
* @param dept
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateDept(FineIntegrationDepartment dept) {
ModelAndView mav = new ModelAndView("jsonView");
boolean saved = false;
String rtnMsg = factionService.update(dept);
if(rtnMsg.contains("[S]")) {
saved = true;
}
mav.addObject("saved", saved);
return mav;
}
}

@ -9,6 +9,7 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.cmmn.CmmnQuery;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.mngt.FineIntegrationDepartment;
import cokr.xit.fims.mngt.FineIntegrationSigungu;
import cokr.xit.fims.mngt.Task;
import cokr.xit.fims.mngt.VltnQuery;
@ -666,6 +667,18 @@ public class CmnController {
public ModelAndView removeDept(String... deptCds) {
return super.removeDept(deptCds);
}
@Override
@RequestMapping(name="부서 등록", value=METHOD_URL.createDept)
public ModelAndView createDept(FineIntegrationDepartment dept) {
return super.createDept(dept);
}
@Override
@RequestMapping(name="부서 수정", value=METHOD_URL.updateDept)
public ModelAndView updateDept(FineIntegrationDepartment dept) {
return super.updateDept(dept);
}
}
@Controller

@ -162,6 +162,7 @@ UPDATE TB_SGG
<result property="name" column="DEPT_NM" /> <!-- 부서 명 -->
<result property="telno" column="DEPT_TELNO" /> <!-- 부서 전화번호 -->
<result property="faxno" column="DEPT_FXNO" /> <!-- 부서 팩스번호 -->
<result property="cvlcptLinkSeCd" column="CVLCPT_LINK_SE_CD" /> <!-- 민원 연계 구분 코드 -->
<result property="vrbacntLinkSeCd" column="VRBACNT_LINK_SE_CD" /> <!-- 가상계좌 연계 구분 코드 -->
<result property="pstofcNm" column="PSTOFC_NM" /> <!-- 우체국 명 -->
<result property="rgNoHeader" column="RG_NO_HEADER" /> <!-- 등기 번호 헤더 -->
@ -169,11 +170,15 @@ UPDATE TB_SGG
<result property="egpConOrg" column="EGP_CON_ORG" /> <!-- E그린 외부기관구분코드 -->
<result property="egpRceptId" column="EGP_RCEPT_ID" /> <!-- E그린 접수우체국국기호 -->
<result property="egpApvlNb" column="EGP_APVL_NB" /> <!-- E그린 후납계약승인번호 -->
<result property="egpEsbPath" column="EGP_ESB_PATH" /> <!-- E그린 ESB경로 -->
<result property="egpPostInstId" column="EGP_POST_INST_ID" /> <!-- E그린 우정정보센터 기관ID -->
<result property="egpCertCn" column="EGP_CERT_CN" /> <!-- E그린 인증서CN -->
<result property="ensInterfaceId" column="ENS_INTERFACE_ID" /> <!-- 세외수입 인터페이스ID -->
<result property="ensSourceCd" column="ENS_SOURCE_CD" /> <!-- 세외수입 소스코드 -->
<result property="ensTargetCd" column="ENS_TARGET_CD" /> <!-- 세외수입 타겟코드 -->
<result property="ensUrl" column="ENS_URL" /> <!-- 세외수입 URL -->
<result property="nxrpLinkYn" column="NXRP_LINK_YN" /> <!-- 세외수입 연계 여부 -->
<result property="nxrpRgnSeCd" column="NXRP_RGN_SE_CD" /> <!-- 세외수입 지역 구분 코드 -->
<result property="dtbnBankNm" column="DTBN_BANK_NM" /> <!-- 교부 은행 명 -->
<result property="dtbnActno" column="DTBN_ACTNO" /> <!-- 교부 계좌번호 -->
<result property="docHeader" column="DOC_HEADER" /> <!-- 문서 머릿말 -->
@ -194,6 +199,7 @@ UPDATE TB_SGG
, D.DEPT_NM <!-- 부서 명 -->
, D.DEPT_TELNO <!-- 부서 전화번호 -->
, D.DEPT_FXNO <!-- 부서 팩스번호 -->
, D.CVLCPT_LINK_SE_CD <!-- 민원 연계 구분 코드 -->
, D.VRBACNT_LINK_SE_CD <!-- 가상계좌 연계 구분 코드 -->
, D.PSTOFC_NM <!-- 우체국 명 -->
, D.RG_NO_HEADER <!-- 등기 번호 헤더 -->
@ -201,11 +207,15 @@ UPDATE TB_SGG
, D.EGP_CON_ORG <!-- E그린 외부기관구분코드 -->
, D.EGP_RCEPT_ID <!-- E그린 접수우체국국기호 -->
, D.EGP_APVL_NB <!-- E그린 후납계약승인번호 -->
, D.EGP_ESB_PATH <!-- E그린 ESB경로 -->
, D.EGP_POST_INST_ID <!-- E그린 우정정보센터 기관ID -->
, D.EGP_CERT_CN <!-- E그린 인증서CN -->
, D.ENS_INTERFACE_ID <!-- 세외수입 인터페이스ID -->
, D.ENS_SOURCE_CD <!-- 세외수입 소스코드 -->
, D.ENS_TARGET_CD <!-- 세외수입 타겟코드 -->
, D.ENS_URL <!-- 세외수입 URL -->
, D.NXRP_LINK_YN <!-- 세외수입 연계 여부 -->
, D.NXRP_RGN_SE_CD <!-- 세외수입 지역 구분 코드 -->
, D.DTBN_BANK_NM <!-- 교부 은행 명 -->
, D.DTBN_ACTNO <!-- 교부 계좌번호 -->
, D.DOC_HEADER <!-- 문서 머릿말 -->
@ -267,6 +277,7 @@ UPDATE TB_SGG
, DEPT_NM <!-- 부서 명 -->
, DEPT_TELNO <!-- 부서 전화번호 -->
, DEPT_FXNO <!-- 부서 팩스번호 -->
, CVLCPT_LINK_SE_CD <!-- 민원 연계 구분 코드 -->
, VRBACNT_LINK_SE_CD <!-- 가상계좌 연계 구분 코드 -->
, PSTOFC_NM <!-- 우체국 명 -->
, RG_NO_HEADER <!-- 등기 번호 헤더 -->
@ -274,11 +285,15 @@ UPDATE TB_SGG
, EGP_CON_ORG <!-- E그린 외부기관구분코드 -->
, EGP_RCEPT_ID <!-- E그린 접수우체국국기호 -->
, EGP_APVL_NB <!-- E그린 후납계약승인번호 -->
, EGP_ESB_PATH <!-- E그린 ESB경로 -->
, EGP_POST_INST_ID <!-- E그린 우정정보센터 기관ID -->
, EGP_CERT_CN <!-- E그린 인증서CN -->
, ENS_INTERFACE_ID <!-- 세외수입 인터페이스ID -->
, ENS_SOURCE_CD <!-- 세외수입 소스코드 -->
, ENS_TARGET_CD <!-- 세외수입 타겟코드 -->
, ENS_URL <!-- 세외수입 URL -->
, NXRP_LINK_YN <!-- 세외수입 연계 여부 -->
, NXRP_RGN_SE_CD <!-- 세외수입 지역 구분 코드 -->
, DTBN_BANK_NM <!-- 교부 은행 명 -->
, DTBN_ACTNO <!-- 교부 계좌번호 -->
, DOC_HEADER <!-- 문서 머릿말 -->
@ -295,6 +310,7 @@ UPDATE TB_SGG
, #{dept.name} <!-- 부서 명 -->
, #{dept.telno} <!-- 부서 전화번호 -->
, #{dept.faxno} <!-- 부서 팩스번호 -->
, #{dept.cvlcptLinkSeCd} <!-- 민원 연계 구분 코드 -->
, #{dept.vrbacntLinkSeCd} <!-- 가상계좌 연계 구분 코드 -->
, #{dept.pstofcNm} <!-- 우체국 명 -->
, #{dept.rgNoHeader} <!-- 등기 번호 헤더 -->
@ -302,11 +318,15 @@ UPDATE TB_SGG
, #{dept.egpConOrg} <!-- E그린 외부기관구분코드 -->
, #{dept.egpRceptId} <!-- E그린 접수우체국국기호 -->
, #{dept.egpApvlNb} <!-- E그린 후납계약승인번호 -->
, #{dept.egpEsbPath} <!-- E그린 ESB경로 -->
, #{dept.egpPostInstId} <!-- E그린 우정정보센터 기관ID -->
, #{dept.egpCertCn} <!-- E그린 인증서CN -->
, #{dept.ensInterfaceId} <!-- 세외수입 인터페이스ID -->
, #{dept.ensSourceCd} <!-- 세외수입 소스코드 -->
, #{dept.ensTargetCd} <!-- 세외수입 타겟코드 -->
, #{dept.ensUrl} <!-- 세외수입 URL -->
, #{dept.nxrpLinkYn} <!-- 세외수입 연계 여부 -->
, #{dept.nxrpRgnSeCd} <!-- 세외수입 지역 구분 코드 -->
, #{dept.dtbnBankNm} <!-- 교부 은행 명 -->
, #{dept.dtbnActno} <!-- 교부 계좌번호 -->
, #{dept.docHeader} <!-- 문서 머릿말 -->
@ -323,10 +343,11 @@ UPDATE TB_SGG
/* 부서 수정(factionMapper.updateDept) */
UPDATE TB_DEPT
SET SGG_CD = #{dept.sggID} <!-- 시군구 코드 -->
, INST_CD = #{dept.instCode} <!-- 기관 코드 -->
, DEPT_NM = #{dept.name} <!-- 부서 명 -->
, DEPT_TELNO = #{dept.telno} <!-- 부서 전화번호 -->
, INST_CD = #{dept.instCode} <!-- 기관 코드 -->
, DEPT_NM = #{dept.name} <!-- 부서 명 -->
, DEPT_TELNO = #{dept.telno} <!-- 부서 전화번호 -->
, DEPT_FXNO = #{dept.faxno} <!-- 부서 팩스번호 -->
, CVLCPT_LINK_SE_CD = #{dept.cvlcptLinkSeCd} <!-- 민원 연계 구분 코드 -->
, VRBACNT_LINK_SE_CD = #{dept.vrbacntLinkSeCd} <!-- 가상계좌 연계 구분 코드 -->
, PSTOFC_NM = #{dept.pstofcNm} <!-- 우체국 명 -->
, RG_NO_HEADER = #{dept.rgNoHeader} <!-- 등기 번호 헤더 -->
@ -334,11 +355,15 @@ UPDATE TB_SGG
, EGP_CON_ORG = #{dept.egpConOrg} <!-- E그린 외부기관구분코드 -->
, EGP_RCEPT_ID = #{dept.egpRceptId} <!-- E그린 접수우체국국기호 -->
, EGP_APVL_NB = #{dept.egpApvlNb} <!-- E그린 후납계약승인번호 -->
, EGP_ESB_PATH = #{dept.egpEsbPath} <!-- E그린 ESB경로 -->
, EGP_POST_INST_ID = #{dept.egpPostInstId} <!-- E그린 우정정보센터 기관ID -->
, EGP_CERT_CN = #{dept.egpCertCn} <!-- E그린 인증서CN -->
, ENS_INTERFACE_ID = #{dept.ensInterfaceId} <!-- 세외수입 인터페이스ID -->
, ENS_SOURCE_CD = #{dept.ensSourceCd} <!-- 세외수입 소스코드 -->
, ENS_TARGET_CD = #{dept.ensTargetCd} <!-- 세외수입 타겟코드 -->
, ENS_URL = #{dept.ensUrl} <!-- 세외수입 URL -->
, NXRP_LINK_YN = #{dept.nxrpLinkYn} <!-- 세외수입 연계 여부 -->
, NXRP_RGN_SE_CD = #{dept.nxrpRgnSeCd} <!-- 세외수입 지역 구분 코드 -->
, DTBN_BANK_NM = #{dept.dtbnBankNm} <!-- 교부 은행 명 -->
, DTBN_ACTNO = #{dept.dtbnActno} <!-- 교부 계좌번호 -->
, DOC_HEADER = #{dept.docHeader} <!-- 문서 머릿말 -->

@ -237,6 +237,10 @@ $(document).ready(function(){
}
$P.refreshDeptList = () => {
if($P.deptControl.query.pageNum == null){
return;
}
$P.deptControl.untilPageNum = $P.deptControl.query.pageNum;
$P.deptControl.query.fetchSize = $P.deptControl.defaultFetchSize * $P.deptControl.query.pageNum;
$P.deptControl.load(1);
@ -304,10 +308,21 @@ $(document).ready(function(){
dialog.open({
id : "deptInfoDialog",
title : "부서 정보",
size : "xxl",
size : "xl",
content : resp,
init : () => {
var parentRes = new Object();
var childReq = pageObject.childReq.pop();
for(var reqKey in childReq) {
if($P.provide[reqKey]){
parentRes[reqKey] = $P.provide[reqKey];
} else {
parentRes[reqKey] = function(){};
}
}
pageObject.parentRes.push(parentRes);
}
});
@ -341,6 +356,12 @@ $(document).ready(function(){
}
}
$P.provide = {
"refreshList" : function(){
$P.refreshDeptList();
},
};
/**************************************************************************
* element.on
**************************************************************************/

@ -6,47 +6,207 @@
<div class="card">
<form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="deptID--${pageName}" name="deptID" data-map="DEPT_CD" />
<input type="hidden" id="sggID--${pageName}" name="sggID" data-map="SGG_CD" />
<input type="hidden" id="instCode--${pageName}" name="instCode" data-map="INST_CD" />
<input type="text" id="sggID--${pageName}" name="sggID" data-map="SGG_CD" hidden />
<input type="text" id="instCode--${pageName}" name="instCode" data-map="INST_CD" hidden />
<div class="row g-1">
<div class="col-md-6">
<label for=""
<label for="deptID--${pageName}"
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">
제목
부서코드
</label>
<select id="" name=""
class="form-select" data-map="">
<option value=""></option>
</select>
<input type="text" id="" name="" data-map=""
class="form-control" />
<input type="text" id="deptID--${pageName}" name="deptID" data-map="DEPT_CD"
class="form-control" required maxlength="7" />
</div>
<div class="col-md-6">
<label for=""
<label for="name--${pageName}"
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">
제목
부서명
</label>
<select id="" name=""
class="form-select" data-map="">
<option value=""></option>
</select>
<input type="text" id="name--${pageName}" name="name" data-map="DEPT_NM"
class="form-control" required />
<input type="text" id="" name="" data-map=""
</div>
<div class="col-md-6">
<label for="telno--${pageName}"
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
전화
</label>
<input type="text" id="telno--${pageName}" name="telno" data-map="DEPT_TELNO"
class="form-control" />
</div>
<div class="col-md-6">
<label for="faxno--${pageName}"
class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">
팩스
</label>
<input type="text" id="faxno--${pageName}" name="faxno" data-map="DEPT_FXNO"
class="form-control" />
</div>
</div>
<input type="text" id="cvlcptLinkSeCd--${pageName}" name="cvlcptLinkSeCd" data-map="CVLCPT_LINK_SE_CD"
class="form-control" hidden />
<input type="text" id="vrbacntLinkSeCd--${pageName}" name="vrbacntLinkSeCd" data-map="CVLCPT_LINK_SE_CD"
class="form-control" hidden />
<input type="text" id="pstofcNm--${pageName}" name="pstofcNm" data-map="PSTOFC_NM"
class="form-control" hidden />
<input type="text" id="rgNoHeader--${pageName}" name="rgNoHeader" data-map="RG_NO_HEADER"
class="form-control" hidden />
<input type="text" id="sndngLinkSeCd--${pageName}" name="sndngLinkSeCd" data-map="SNDNG_LINK_SE_CD"
class="form-control" hidden />
<input type="text" id="egpConOrg--${pageName}" name="egpConOrg" data-map="EGP_CON_ORG"
class="form-control" hidden />
<input type="text" id="egpRceptId--${pageName}" name="egpRceptId" data-map="EGP_RCEPT_ID"
class="form-control" hidden />
<input type="text" id="egpApvlNb--${pageName}" name="egpApvlNb" data-map="EGP_APVL_NB"
class="form-control" hidden />
<input type="text" id="egpEsbPath--${pageName}" name="egpEsbPath" data-map="EGP_ESB_PATH"
class="form-control" hidden />
<input type="text" id="egpPostInstId--${pageName}" name="egpPostInstId" data-map="EGP_POST_INST_ID"
class="form-control" hidden />
<input type="text" id="egpCertCn--${pageName}" name="egpCertCn" data-map="EGP_CERT_CN"
class="form-control" hidden />
<input type="text" id="ensInterfaceId--${pageName}" name="ensInterfaceId" data-map="ENS_INTERFACE_ID"
class="form-control" hidden />
<input type="text" id="ensSourceCd--${pageName}" name="ensSourceCd" data-map="ENS_SOURCE_CD"
class="form-control" hidden />
<input type="text" id="ensTargetCd--${pageName}" name="ensTargetCd" data-map="ENS_TARGET_CD"
class="form-control" hidden />
<input type="text" id="ensUrl--${pageName}" name="ensUrl" data-map="ENS_URL"
class="form-control" hidden />
<input type="text" id="nxrpLinkYn--${pageName}" name="nxrpLinkYn" data-map="NXRP_LINK_YN"
class="form-control" hidden />
<input type="text" id="nxrpRgnSeCd--${pageName}" name="nxrpRgnSeCd" data-map="NXRP_RGN_SE_CD"
class="form-control" hidden />
<input type="text" id="dtbnBankNm--${pageName}" name="dtbnBankNm" data-map="DTBN_BANK_NM"
class="form-control" hidden />
<input type="text" id="dtbnActno--${pageName}" name="dtbnActno" data-map="DTBN_ACTNO"
class="form-control" hidden />
<input type="text" id="docHeader--${pageName}" name="docHeader" data-map="DOC_HEADER"
class="form-control" hidden />
<input type="text" id="srvrOs--${pageName}" name="srvrOs" data-map="SRVR_OS"
class="form-control" hidden />
<div class="row m-3">
<div class="col-md-12">
<span class="float-end">
<button type="button" id="btnSave--${pageName}" class="btn btn-primary">저장</button>
</span>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script>
pageObject["${pageName}"] = {};
pageObject["${pageName}"].provided = {};
pageObject.childReq = [];
pageObject.childReq.push({
refreshList : function(){ },
});
$(document).ready(function(){
var $P = pageObject["${pageName}"];
if(pageObject.parentRes.length > 0){
$P.provided = pageObject.parentRes.pop();
} else {
$P.provided = pageObject.childReq.pop();
}
/**************************************************************************
* DatasetControl, Dataset, FormFields
**************************************************************************/
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
$P.deptControl = new DatasetControl({
dataGetter : obj => obj["List"], appendData : true,
keymapper : info => info ? info.DEPT_CD : "",
urls : {
create : wctx.url("/mngt/mngt04/020/create.do"),
update : wctx.url("/mngt/mngt04/020/update.do")
},
formats: {
}
});
/**************************************************************************
* Dataset.on
**************************************************************************/
$P.deptControl.dataset.onCurrentChange = (dataItem) => {
if(!dataItem){
return;
}
$P.formFields.set(dataItem);
}
/**************************************************************************
* pageObject.function
**************************************************************************/
$P.fnSave = () => {
if(!customValidate($("#frmEdit--${pageName} input"))) return;
var info = $P.formFields.get();
if(info.deptID.length != 7){
alert("부서코드는 7자리 숫자이여야 합니다.");
return;
}
var create = $P.deptControl.dataset.empty;
ajax.post({
url : create ? $P.deptControl.urls.create : $P.deptControl.urls.update,
data : info,
success : (resp) => {
if(resp.saved){
dialog.close("deptInfoDialog");
dialog.alert({
content:"저장되었습니다.",
onOK : () => $P.provided.refreshList()
});
}
}
});
}
/**************************************************************************
* element.on
**************************************************************************/
$("#btnSave--${pageName}").on('click', () => $P.fnSave());
/**************************************************************************
* 초기화
**************************************************************************/
var deptInfo = ${deptInfo};
if(deptInfo != null){
$("#deptID--${pageName}").attr("disabled","disabled");
$("#name--${pageName}").attr("disabled","disabled");
$P.deptControl.dataset.setData([deptInfo]);
} else {
$P.deptControl.dataset.setData([]);
$("#sggID--${pageName}").val(MY_INFO.info.sggCd);
$("#instCode--${pageName}").val(MY_INFO.info.instCd);
}
});
</script>
Loading…
Cancel
Save