From 727f5373430d6aa293f3b916064f2880e2b1bcd9 Mon Sep 17 00:00:00 2001 From: "Jonguk. Lim" Date: Tue, 14 Mar 2023 18:31:38 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B0=9C=EB=B3=84=EC=B4=9D=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20>=20=EB=AF=BC=EC=9B=90=EB=82=B4=EC=97=AD=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=EB=B0=8F=20=ED=91=9C=EC=8B=9C=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kr/xit/fims/biz/FimsConst.java | 14 ++ .../fims/biz/cmm/dto/FimsCrackdownDTO.java | 4 + .../cmm/mapper/IFimsCrackdownMgtMapper.java | 7 +- .../cmm/service/FimsCrackdownMgtService.java | 7 +- .../cmm/service/IFimsCrackdownMgtService.java | 5 +- .../java/kr/xit/fims/biz/rt/dto/RtDTO.java | 134 +++++++++++++ .../core/config/ignore/JasyptConfig.java | 5 + .../cmm/cmm-fims-crackdown-mysql-mapper.xml | 48 +++-- .../biz/cmm/cmmFimsCrackdownTotMgtPopup.jsp | 188 +++++++++++++----- .../webapp/resources/biz/common/css/index.css | 5 +- 10 files changed, 339 insertions(+), 78 deletions(-) diff --git a/src/main/java/kr/xit/fims/biz/FimsConst.java b/src/main/java/kr/xit/fims/biz/FimsConst.java index 3b907201..bbcd2f5a 100644 --- a/src/main/java/kr/xit/fims/biz/FimsConst.java +++ b/src/main/java/kr/xit/fims/biz/FimsConst.java @@ -189,6 +189,20 @@ public class FimsConst { private final String code; private final String desc; } + + /** + * 민원 등록 구분 코드 : tb_ec_ctzn_sttemnt_cmplt + */ + @Getter + @AllArgsConstructor + public enum MinwonGubunCode { + COMPLAIN("0", "민원"), + VHCLE_NO_CMPL("1", "차량번호"), + ; + + private final String code; + private final String desc; + } } diff --git a/src/main/java/kr/xit/fims/biz/cmm/dto/FimsCrackdownDTO.java b/src/main/java/kr/xit/fims/biz/cmm/dto/FimsCrackdownDTO.java index 1ad5681e..e2013c43 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/dto/FimsCrackdownDTO.java +++ b/src/main/java/kr/xit/fims/biz/cmm/dto/FimsCrackdownDTO.java @@ -174,6 +174,10 @@ public class FimsCrackdownDTO { * 구분 */ private String gubun; + /** + * 기관코드 + */ + private String insttCode; /** * 수정 일시 */ diff --git a/src/main/java/kr/xit/fims/biz/cmm/mapper/IFimsCrackdownMgtMapper.java b/src/main/java/kr/xit/fims/biz/cmm/mapper/IFimsCrackdownMgtMapper.java index 4eb36249..ed62672e 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/mapper/IFimsCrackdownMgtMapper.java +++ b/src/main/java/kr/xit/fims/biz/cmm/mapper/IFimsCrackdownMgtMapper.java @@ -9,6 +9,7 @@ import org.apache.ibatis.session.RowBounds; import egovframework.rte.psl.dataaccess.mapper.Mapper; import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO; import kr.xit.fims.biz.ec.dto.CtznStmtDTO; +import kr.xit.fims.biz.rt.dto.RtDTO; import kr.xit.framework.biz.cmm.dto.CmmAnsTmplDTO; @Mapper @@ -29,12 +30,12 @@ public interface IFimsCrackdownMgtMapper { CtznStmtDTO.Ans selectEcCtznSttemntAnswer(final String interfaceSeqN); CmmAnsTmplDTO.Dtl selectCtznAnswerTmplInfo(final FimsCrackdownDTO.AnsRequest dto); - List selectProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto); - List selectPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto); + List selectProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto); + List selectPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto); List selectElctrnNticSndng(final FimsCrackdownDTO.AnsRequest dto); List selectCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto); - void saveCtznSttemntCmplt(FimsCrackdownDTO.CtznSttemntCmplt dto); + void insertCtznSttemntCmplt(FimsCrackdownDTO.CtznSttemntCmplt dto); int selectCrackdownVhcleNoCnt(final String vhcleNo); } diff --git a/src/main/java/kr/xit/fims/biz/cmm/service/FimsCrackdownMgtService.java b/src/main/java/kr/xit/fims/biz/cmm/service/FimsCrackdownMgtService.java index b1e9e22b..626bd1bf 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/service/FimsCrackdownMgtService.java +++ b/src/main/java/kr/xit/fims/biz/cmm/service/FimsCrackdownMgtService.java @@ -278,11 +278,11 @@ public class FimsCrackdownMgtService implements IFimsCrackdownMgtService { return ecCtznSttemntMapper.selectEcCtznSttemntAnswer(dto); } @Override - public List findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto){ + public List findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto){ return mapper.selectProcessSttusChangeHist(dto); } @Override - public List findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto){ + public List findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto){ return mapper.selectPayerAdresHist(dto); } @Override @@ -296,8 +296,9 @@ public class FimsCrackdownMgtService implements IFimsCrackdownMgtService { @Override public void addCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto) { + dto.setInsttCode(getUserInfo().getPstinstCode()); dto.setRegister(getUserInfo().getUniqId()); - mapper.saveCtznSttemntCmplt(dto); + mapper.insertCtznSttemntCmplt(dto); } @Override diff --git a/src/main/java/kr/xit/fims/biz/cmm/service/IFimsCrackdownMgtService.java b/src/main/java/kr/xit/fims/biz/cmm/service/IFimsCrackdownMgtService.java index 23b65ced..3433272c 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/service/IFimsCrackdownMgtService.java +++ b/src/main/java/kr/xit/fims/biz/cmm/service/IFimsCrackdownMgtService.java @@ -8,6 +8,7 @@ import org.apache.ibatis.session.RowBounds; import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO; import kr.xit.fims.biz.ec.dto.CtznStmtDTO; +import kr.xit.fims.biz.rt.dto.RtDTO; import kr.xit.framework.biz.cmm.dto.CmmAnsTmplDTO; import kr.xit.framework.biz.cmm.dto.XitLoginVO; import kr.xit.framework.core.utils.XitCmmnUtil; @@ -27,8 +28,8 @@ public interface IFimsCrackdownMgtService { CmmAnsTmplDTO.Dtl findCtznAnswerTmplInfo(final FimsCrackdownDTO.AnsRequest dto); CtznStmtDTO.Ans findCtznStmtAnswer(final FimsCrackdownDTO.AnsRequest dto); - List findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto); - List findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto); + List findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto); + List findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto); List findElctrnNticSndng(final FimsCrackdownDTO.AnsRequest dto); List findCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto); void addCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto); diff --git a/src/main/java/kr/xit/fims/biz/rt/dto/RtDTO.java b/src/main/java/kr/xit/fims/biz/rt/dto/RtDTO.java index a25165e1..6e7570d1 100644 --- a/src/main/java/kr/xit/fims/biz/rt/dto/RtDTO.java +++ b/src/main/java/kr/xit/fims/biz/rt/dto/RtDTO.java @@ -472,6 +472,140 @@ public class RtDTO { } + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class PayerHist implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 납부자 id + */ + private String payerId; + /** + * 납부자 이력 순번 + */ + private String payerHistSn; + /** + * 기관 코드 + */ + private String insttCode; + /** + * 시스템 코드 + */ + private String sysCode; + /** + * 납부자 구분 코드 + */ + private String payerSeCode; + /** + * 납부자 번호 + */ + private String payerNo; + /** + * 납부자 명 + */ + private String payerNm; + /** + * 납부자 연락처 + */ + private String payerCttpc; + /** + * 납부자 연락처 구분 코드 + */ + private String payerCttpcSeCode; + /** + * 납부자 이메일 주소 + */ + private String payerEmailAdres; + /** + * 납부자 상태 코드 + */ + private String payerSttusCode; + /** + * 지번 도로 주소 구분 코드 + */ + private String lnmRoadAdresSeCode; + /** + * 우편번호 + */ + private String zip; + /** + * 도로명 코드 + */ + private String rnCode; + /** + * 지하 여부 + */ + private String undgrndAt; + /** + * 건물 본번 + */ + private String buldMnnm; + /** + * 건물 부번 + */ + private String buldSlno; + /** + * 법정동 코드 + */ + private String legaldongCode; + /** + * 행정동 코드 + */ + private String adstrdCode; + /** + * 산 구분 코드 + */ + private String mntnSeCode; + /** + * 번지 + */ + private String lnbr; + /** + * 호 + */ + private String ho; + /** + * 특수 동 + */ + private String spclDong; + /** + * 특수 호 + */ + private String spclHo; + /** + * 특수 주소 + */ + private String spclAdres; + /** + * 주소 + */ + private String adres; + /** + * 상세 주소 + */ + private String detailAdres; + /** + * 전체 주소 + */ + private String allAdres; + /** + * 납부자 등록 구분 코드 + */ + private String payerRegistSeCode; + /** + * 등록 일시 + */ + private String registDt; + /** + * 등록자 + */ + private String register; + + } + @Data @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/kr/xit/framework/core/config/ignore/JasyptConfig.java b/src/main/java/kr/xit/framework/core/config/ignore/JasyptConfig.java index 786070ed..c0e55a66 100644 --- a/src/main/java/kr/xit/framework/core/config/ignore/JasyptConfig.java +++ b/src/main/java/kr/xit/framework/core/config/ignore/JasyptConfig.java @@ -6,6 +6,11 @@ import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.springframework.context.annotation.Bean; +/** + * context-properties.xml 설정 사용 + * 암호화 필요한 데이타 값 check 필요시 사용 + */ +@Deprecated //@Configuration public class JasyptConfig { diff --git a/src/main/resources/sqlmapper/biz/cmm/cmm-fims-crackdown-mysql-mapper.xml b/src/main/resources/sqlmapper/biz/cmm/cmm-fims-crackdown-mysql-mapper.xml index 1d729543..b4c90fcf 100644 --- a/src/main/resources/sqlmapper/biz/cmm/cmm-fims-crackdown-mysql-mapper.xml +++ b/src/main/resources/sqlmapper/biz/cmm/cmm-fims-crackdown-mysql-mapper.xml @@ -300,7 +300,8 @@ , cvpl_process_compt_dt = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') - + + /*cmm-fims-crackdown-mysql-mapper|insertCtznSttemntCmplt-민원등록|cjm */ SELECT LPAD(NEXTVAL(seq_ec_ctzn_sttemnt_cmplt), 12, '0') @@ -315,14 +316,14 @@ , regist_dt , register ) VALUES ( - #{cmpltId} - , #{regltId} - , #{insttCode} - , #{content} - , #{gubun} - , #{vhcleNo} - , DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') - , #{register} + #{cmpltId} + , #{regltId} + , #{insttCode} + , #{content} + , #{gubun} + , #{vhcleNo} + , DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') + , #{register} ) @@ -351,7 +352,8 @@ WHERE tecsa.interface_seq_n = #{interfaceSeqN} - + /*cmm-fims-crackdown-mysql-mapper|selectProcessSttusChangeHist-단속자료 변경 이력 조회|cjm */ SELECT hist_sn , reglt_process_sttus_code , regist_dt @@ -360,7 +362,8 @@ WHERE reglt_id = #{regltId} - + /*cmm-fims-crackdown-mysql-mapper|selectPayerAdresHist-소유자 주소 변경 이력 조회|cjm */ SELECT regist_dt , all_adres FROM tb_rt_payer_hist @@ -368,6 +371,7 @@ - + @@ -626,6 +660,8 @@ Date Author Description var imageEditorPopup = (flag, params) => fnPopupBiz.pagePopup(flag, params); var callbackReloadImage = () => fnPopupBiz.downloadImg(); let orgData; + + // 처리상태 변경 이력 / 주소 변동이력 / 전자고지 발송 이력 / 민원 등록 이력 / 차량 번호 민원 등록 이력 const ARR_TAP_GRID = [null,null,null,null,null]; const ARR_TAP_NAV = [null,null,null,null,null]; const ARR_TAP_TOTCNT = [0, 0, 0, 0, 0]; @@ -741,7 +777,48 @@ Date Author Description } } ,reloadGrid: (idx) => { - ARR_TAP_GRID.forEach(grid => grid.reloadData()) + ARR_TAP_GRID.forEach(grid => grid.reloadData()); + fnPopupBiz.resetMinwonBtn('${ctznCmpl}', false); + fnPopupBiz.resetMinwonBtn('${vhcleNoCmpl}', false); + } + ,addMinwon: (content, gubun) => { + const data = { + gubun, + regltId: schParam.regltId, + content, + vhcleNo: gubun === '${vhcleNoCmpl}'? schParam.vhcleNo : '' + } + + if(!confirm('등록하시겠습니까?')) return false; + cmmAjax({ + url: fimsApiUrl.ADD_CTZN_STTEMNT_CMPLT + ,data: $.param(data) + ,success: (res) => { + //ARR_TAP_GRID[3].resetData([]); + //ARR_TAP_GRID[3].refreshLayout(); + if(gubun === '${ctznCmpl}') ARR_TAP_GRID[3].reloadData(); + else ARR_TAP_GRID[4].reloadData(); + } + }) + } + ,onCplntHisClickGrid: (props) => { + const rowData = props.grid.getRow(props.rowKey); + if(props.grid.el.id === 'grid_cplnt'){ + $('#content0').val(rowData.content); + }else{ + $('#content1').val(rowData.content); + } + } + ,resetMinwonBtn: (gubun, isShow) => { + $('#content'+gubun).val(''); + switch(gubun) { + case '0': + isShow === true ? $("#btnMinWonRegist").show(): $("#btnMinWonRegist").hide(); + break; + case '1': + isShow === true ? $("#btnCarMinWonRegist").show(): $("#btnCarMinWonRegist").hide(); + break; + } } }; @@ -801,29 +878,21 @@ Date Author Description }); $('#btnMinWonNew').on('click', () => { - $('#content').val(''); - $('#content1').val(''); - $("#btnMinWonRegist").show(); + fnPopupBiz.resetMinwonBtn('${ctznCmpl}', true); }); $('#btnCarMinWonNew').on('click', () => { - $('#content').val(''); - $('#content2').val(''); - $("#btnCarMinWonRegist").show(); + fnPopupBiz.resetMinwonBtn('${vhcleNoCmpl}', true); }); $('#btnMinWonRegist').on('click', () => { - $('#content').val($('#content1').val()); - const formData = $("#frmCmplt").serialize() + `®ltId=${param.regltId}&gubun=0`; - - cmmBizAjax('저장', { - url: fimsApiUrl.ADD_CTZN_STTEMNT_CMPLT - , data: formData - }) + fnPopupBiz.addMinwon($('#content0').val(), '${ctznCmpl}'); + fnPopupBiz.resetMinwonBtn('${ctznCmpl}', false); }); $('#btnCarMinWonRegist').on('click', () => { - $('#content').val($('#content2').val()); + fnPopupBiz.addMinwon($('#content1').val(), '${vhcleNoCmpl}') + fnPopupBiz.resetMinwonBtn('${vhcleNoCmpl}', false); }); }); @@ -1038,50 +1107,59 @@ Date Author Description align: 'center' } ]; - const vhcleNoCplntHisColumns = [ //Grid 컬럼 정보(명칭,매핑 field, 기타옵션 등) - { - header: '등록일시', - name: 'registDt', - width: 90, - //editor: 'text', - sortable: true, - align: 'center' - }, - // { - // header: '요일', - // name: 'registDt2', - // width: 90, - // //editor: 'text', - // sortable: true, - // align: 'center' - // }, + const vhcleNoCplntHisColumns = [ { - header: '등록자', - name: 'register', - width: 90, + header: '내용', + name: 'content', + minWidth: 150, //editor: 'text', sortable: false, - align: 'center' + align: 'center', + renderer: { + type: CustomButtonRenderer, + options: { + formatter: (props)=>{ + return { + formatter: props.grid.getRow(props.rowKey).content + ,element: "text" + } + } + ,eventFunction: fnPopupBiz.onCplntHisClickGrid + ,eventType: "click" + } + } }, { header: '차량번호', name: 'vhcleNo', - width: 90, + minWidth: 90, //editor: 'text', sortable: false, align: 'center' }, { - header: '내용', - name: 'content', - width: 90, + header: '등록일시', + name: 'registDt', + minWidth: 120, + //editor: 'text', + sortable: true, + align: 'center', + formatter({value}) { + return setDateTimeFmt(value); + } + + }, + { + header: '등록자', + name: 'register', + minWidth: 120, //editor: 'text', sortable: false, align: 'center' } ]; - const cplntHisColumns = vhcleNoCplntHisColumns.filter((_, index) => index !== 3 ); + const cplntHisColumns = vhcleNoCplntHisColumns.filter((_, index) => index !== 1 ); // 처리상태 변경 이력 DataSource const changStsHisDatasource = { @@ -1172,20 +1250,34 @@ Date Author Description bodyHeight: 250, }); + // 처리상태 변동이력 ARR_TAP_GRID[0] = TuiGrid.of({...changStsHisOptions, columns: changeStsHisColumns}, changStsHisDatasource, (res) => { ARR_TAP_GRID[0].resetData([]); ARR_TAP_GRID[0].refreshLayout(); }); + // 주소 변동 이력 ARR_TAP_GRID[1] = TuiGrid.of({...addrHisOptions, el: 'grid_addr_his', columns: addrHisColumns}, addrHisDatasource, (res) => { + ARR_TAP_GRID[1].resetData([]); + ARR_TAP_GRID[1].refreshLayout(); }); + + // 전자고지 발송 이력 ARR_TAP_GRID[2] = TuiGrid.of({...addrHisOptions, el: 'grid_etrn_noti_his', columns: etrnNotiHisColumns}, etrnNotiSndHisDatasource, (res) => { + ARR_TAP_GRID[2].resetData([]); + ARR_TAP_GRID[2].refreshLayout(); }); + + // 민원 등록 내역 ARR_TAP_GRID[3] = TuiGrid.of({...etrnNotiHisOptions, el: 'grid_cplnt', columns: cplntHisColumns}, cplntHisDatasource, (res) => { - console.log(res); - ARR_TAP_GRID[3].resetData(res.data?.contents); + ARR_TAP_GRID[3].resetData([]); + ARR_TAP_GRID[3].refreshLayout(); }); + + // 차량 번호 민원 등록 내역 ARR_TAP_GRID[4] = TuiGrid.of({...etrnNotiHisOptions, el: 'grid_vhcle_no_cplnt', columns: vhcleNoCplntHisColumns}, vhcleNoCplntHisHisDatasource, (res) => { + ARR_TAP_GRID[4].resetData([]); + ARR_TAP_GRID[4].refreshLayout(); }); const gridResposeSet = (res, idx) => { diff --git a/src/main/webapp/resources/biz/common/css/index.css b/src/main/webapp/resources/biz/common/css/index.css index a52d682e..c08c539f 100644 --- a/src/main/webapp/resources/biz/common/css/index.css +++ b/src/main/webapp/resources/biz/common/css/index.css @@ -1086,8 +1086,9 @@ header { .conttitle img { width: 13px; display: block; - float: left; - padding: 16px 9px 0px 10px; } + align-items: baseline; + /*float: left;*/ + padding: 4px 4px 0px 10px; } .shipmentInfo .titleBox_01 { width: 100px;