From 2e4344ac36afd478de76d283184db4ab80dd1264 Mon Sep 17 00:00:00 2001 From: minuk926 Date: Mon, 6 Feb 2023 21:47:41 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=B6=80=EA=B3=BC,=20=EB=8B=B5?= =?UTF-8?q?=EB=B3=80=20=ED=99=94=EB=A9=B4=EB=8B=A8=20=EA=B0=9C=EB=B0=9C=20?= =?UTF-8?q?=EC=A7=84=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 23 + .../fims/biz/cmm/model/FimsCrackdownDTO.java | 8 +- .../cmm/web/FimsCrackDownMgtController.java | 20 +- .../ec/service/EcNatlNewspaperService.java | 6 +- .../cmm/cmm-fims-crackdown-mysql-mapper.xml | 8 +- .../biz/ec/ec-ctzn-sttemnt-mysql-mapper.xml | 16 +- .../ec/ec-extrl-reglt-cntc-mysql-mapper.xml | 16 +- .../biz/cmm/cmmFimsCrackdownEditPopup.jsp | 51 +- .../biz/cmm/cmmFimsCrackdownTotMgtPopup.jsp | 14 +- .../jsp/fims/biz/cmm/cmmImposePopup.jsp | 112 ++++ .../biz/rt/rtCrackdownExtrImposeMgtForm.jsp | 502 ++++++++++++++++++ .../rt/rtCrackdownExtrInterfaceMgtForm.jsp | 21 +- .../fims/biz/rt/rtCrackdownMgtMainForm.jsp | 463 +++++++++++++++- src/main/webapp/WEB-INF/web.xml | 11 + .../resources/biz/common/js/fimsApiURL.js | 1 + .../biz/common/js/popupPageNavigation.js | 8 +- 16 files changed, 1206 insertions(+), 74 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmImposePopup.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrImposeMgtForm.jsp diff --git a/pom.xml b/pom.xml index 506b4dcc..40e3d44b 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,7 @@ 2.6.11 1.1.3 1.7.25 + 3.5.5 2.13.4 2.0.6.RELEASE ${project.build.directory}/generated-snippets @@ -629,6 +630,24 @@ jaxb-runtime 2.3.1 + + + + org.apache.cxf + cxf-rt-frontend-jaxrs + ${apache.cxf.version} + + + org.apache.cxf + cxf-rt-transports-http + ${apache.cxf.version} + + + wsdl4j + wsdl4j + 1.6.2 + + org.apache.maven.plugins diff --git a/src/main/java/kr/xit/fims/biz/cmm/model/FimsCrackdownDTO.java b/src/main/java/kr/xit/fims/biz/cmm/model/FimsCrackdownDTO.java index 72df38f5..67df0ed5 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/model/FimsCrackdownDTO.java +++ b/src/main/java/kr/xit/fims/biz/cmm/model/FimsCrackdownDTO.java @@ -23,7 +23,7 @@ public class FimsCrackdownDTO { // CCTV 연계 key private String extrlRegltCntcId; - + private String violtDtlsNm; // 시민신고 interface private String dutyIdV; private String pcdTelV; @@ -46,6 +46,11 @@ public class FimsCrackdownDTO { private String adres; private String detailAdres; private String legaldongCode; + + // 서손 + private String erppId; + private String erppSeCode; + private String erppResnDetail; } @EqualsAndHashCode(callSuper = true) @@ -73,6 +78,7 @@ public class FimsCrackdownDTO { private String interfaceSeqN; // 민원심사 상세 key private String ctznSttemntDetailSn; + private String regltProcessSttusCode; private FimsCrackdownDTO.Info infoDTO; //private FimsCrackdownDTO.Info infoDTO; diff --git a/src/main/java/kr/xit/fims/biz/cmm/web/FimsCrackDownMgtController.java b/src/main/java/kr/xit/fims/biz/cmm/web/FimsCrackDownMgtController.java index f5926d18..773ab4d7 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/web/FimsCrackDownMgtController.java +++ b/src/main/java/kr/xit/fims/biz/cmm/web/FimsCrackDownMgtController.java @@ -48,8 +48,11 @@ public class FimsCrackDownMgtController { ModelAndView mav = new ModelAndView(); // 단속정보 mav.addAllObjects(service.findCrackdownInfo(dto)); - mav.addObject("pageTitle", "초기자료 편집"); - + if(Objects.equals(FimsConst.RegltProcessSttusCode.CRACKDOWN_INIT.getCode(), dto.getRegltProcessSttusCode())) { + mav.addObject("pageTitle", "초기자료 편집"); + }else if(Objects.equals(FimsConst.RegltProcessSttusCode.CRACKDOWN.getCode(), dto.getRegltProcessSttusCode())) { + mav.addObject("pageTitle", "과태료 시스템 등록"); + } FimsConst.RegltSeCode regltSeCodeEnum = null; for (FimsConst.RegltSeCode e : FimsConst.RegltSeCode.values()) { if (e.getCode().equals(dto.getRegltSeCode())) { @@ -95,6 +98,19 @@ public class FimsCrackDownMgtController { return mav; } + @RequestMapping(value = "/cmmImposePopup") + public ModelAndView cmmImposePopup(final String bizDiv){ + ModelAndView mav = new ModelAndView(FimsConst.FIMS_JSP_BASE_PATH +"cmm/cmmImposePopup.popup"); + mav.addObject("pageTitle", "과태료 시스템 등록"); + //mav.addObject("bizDiv", bizDiv); + //if(bizDiv.equals(FimsConst.PopupWorkDiv.ENLIGHT.getCode())) { + // mav.addObject("txtTitle", FimsConst.PopupWorkDiv.ENLIGHT.getDesc()); + //}else { + // mav.addObject("txtTitle", FimsConst.PopupWorkDiv.DISALLOW.getDesc()); + //} + mav.addObject("txtTitle", "과태료 시스템 등록"); + return mav; + } @RequestMapping(value = "/findCrackdownInfos") public ModelAndView findCrackdownInfos(@RequestParam final Map paraMap) { diff --git a/src/main/java/kr/xit/fims/biz/ec/service/EcNatlNewspaperService.java b/src/main/java/kr/xit/fims/biz/ec/service/EcNatlNewspaperService.java index 3b5687be..2f9eed8c 100644 --- a/src/main/java/kr/xit/fims/biz/ec/service/EcNatlNewspaperService.java +++ b/src/main/java/kr/xit/fims/biz/ec/service/EcNatlNewspaperService.java @@ -134,6 +134,10 @@ public class EcNatlNewspaperService implements IEcNatlNewspaperService { dtl.setCtznSttemntDetailProcessSttus(FimsConst.CtznStmtDtlStsCode.ACCEPTANCE.getCode()); ctznSttemntMapper.insertEcCtznSttemntDetail(dtl); + // 위반내역 코드와 매핑을 위해 '횡단보도 불법 주정차' -> 횡단보도, '소화전 불법 주정차' -> 소화전 으로 + //String violtDtlsNm = Checks.isNotEmpty(dtl.getVioltDtlsNm()) ? dtl.getVioltDtlsNm().split(" ")[0] : ""; + String violtDtlsNm = dtl.getVioltDtlsNm(); + // 단속데이타 생성을 위한 DTO set CtznStmtDTO.Request reqDTO = CtznStmtDTO.Request .builder() @@ -144,7 +148,7 @@ public class EcNatlNewspaperService implements IEcNatlNewspaperService { .ctznSttemntDetailSn(dtl.getCtznSttemntDetailSn()) .regltId(dtl.getRegltId()) .regltProcessSttusCode(FimsConst.RegltProcessSttusCode.CRACKDOWN_INIT.getCode()) - .violtDtlsNm(dtl.getVioltDtlsNm()) + .violtDtlsNm(violtDtlsNm) .registSeCode(FimsConst.RegistSeCode.AUTO_REGIST.getCode()) .register(getUserInfo().getUniqId()) .build(); 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 d0b3ab5c..ec0ad2a8 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 @@ -62,6 +62,7 @@ , trp.adres , trp.detail_adres , trp.legaldong_code -- 법정동 코드 + , IF(trr.reglt_se_code = '09', tecsd.violt_dtls_nm, teerc.violt_dtls_nm) AS violtDtlsNm -- 위반내용 FROM tb_rt_reglt trr LEFT JOIN tb_ec_extrl_reglt_cntc teerc ON trr.reglt_id = teerc.reglt_id @@ -72,7 +73,7 @@ LEFT JOIN tb_ec_esb_interface teei ON tecs.interface_seq_n = teei.interface_seq_n LEFT JOIN tb_rt_erpp tre - ON tecs.regist_dt = tre.regist_dt + ON trr.reglt_id = tre.reglt_id LEFT JOIN tb_rt_payer trp ON trr.payer_id = trp.payer_id @@ -83,7 +84,12 @@ + + AND trr.reglt_process_sttus_code != '01' + + AND trr.reglt_process_sttus_code = #{regltProcessSttusCode} + AND trr.reglt_de BETWEEN #{sch_date_from} AND #{sch_date_to} diff --git a/src/main/resources/sqlmapper/biz/ec/ec-ctzn-sttemnt-mysql-mapper.xml b/src/main/resources/sqlmapper/biz/ec/ec-ctzn-sttemnt-mysql-mapper.xml index 0a7efcab..deb1d2fc 100644 --- a/src/main/resources/sqlmapper/biz/ec/ec-ctzn-sttemnt-mysql-mapper.xml +++ b/src/main/resources/sqlmapper/biz/ec/ec-ctzn-sttemnt-mysql-mapper.xml @@ -241,15 +241,18 @@ , SUBSTR(ecsd.reglt_de_time, 9) -- 단속 시작 시간 , SUBSTR(ecsd.reglt_de_time, 9) -- 단속 종료 시간 , '' -- 위반 법규 코드 : FIXME : 코드 확인 필요 - , (SELECT tgt.code - FROM xit_cmmn_detail_code tgt - WHERE tgt.code_id = 'FIM004' - AND tgt.code_nm = #{violtDtlsNm} + , (SELECT tgt.mapng_code + FROM tb_cmm_code_mapng tgt + WHERE tgt.transr_code_nm = #{violtDtlsNm} ) -- FIXME: 매핑테이블 정의후 반영 (위반 내역 코드) , '' -- 위반 내역 기타 내용 , ecsd.reglt_place , '1' -- 위반 횟수 - , '' -- 위반 법정동 코드 + , (SELECT tgt.legaldong_code + FROM tb_cmm_legaldong tgt + WHERE tgt.legaldong_nm = null + limit 1 + ) , '' -- 특변단속구역 코드 , ecsd.gps_x , ecsd.gps_y @@ -267,7 +270,7 @@ JOIN tb_cmm_file_detail tcfd ON tcfm.job_se_code = #{jobSeCode} AND tcfm.file_job_id = CONCAT(#{interfaceSeqN}, #{ctznSttemntDetailSn}) - AND tcfm.file_mastr_id = tcfd.file_mastr_id) -- 이미지 매수 FIXME: 매핑테이블 정의후 반영 (위반 내역 코드) + AND tcfm.file_mastr_id = tcfd.file_mastr_id) -- 이미지 매수 , ecsd.vhcle_no , #{regltProcessSttusCode} -- 단속:10, 서손:11 , #{registSeCode} @@ -280,6 +283,7 @@ AND ecsd.interface_seq_n = ecs.interface_seq_n + /* ec-ctzn-sttemnt-mysql-mapper|insertRtErppFromCtznStmt-시민신고 서손 생성|julim */ diff --git a/src/main/resources/sqlmapper/biz/ec/ec-extrl-reglt-cntc-mysql-mapper.xml b/src/main/resources/sqlmapper/biz/ec/ec-extrl-reglt-cntc-mysql-mapper.xml index 41532633..6eaa9d5b 100644 --- a/src/main/resources/sqlmapper/biz/ec/ec-extrl-reglt-cntc-mysql-mapper.xml +++ b/src/main/resources/sqlmapper/biz/ec/ec-extrl-reglt-cntc-mysql-mapper.xml @@ -177,10 +177,9 @@ WHERE tgt.code_id = 'FIM005' AND tgt.code_nm = #{violtLrgNm} ) -- 위반 법규 코드 : FIXME : 코드 확인 필요 - , (SELECT tgt.code - FROM xit_cmmn_detail_code tgt - WHERE tgt.code_id = 'FIM004' - AND tgt.code_nm = #{violtDtlsNm} + , (SELECT tgt.mapng_code + FROM tb_cmm_code_mapng tgt + WHERE tgt.transr_code_nm = #{violtDtlsNm} ) -- FIXME: 매핑테이블 정의후 반영 (위반 내역 코드) , '' -- 위반 내역 기타 내용 , #{regltPlace} -- reglt_place @@ -190,10 +189,9 @@ WHERE tgt.legaldong_nm = #{regltDongNm} limit 1 ) -- 위반 법정동 코드 - , (SELECT tgt.code - FROM xit_cmmn_detail_code tgt - WHERE tgt.code_id = 'FIM005' - AND tgt.code_nm = #{regltSpeclZoneNm} + , (SELECT tgt.mapng_code + FROM tb_cmm_code_mapng tgt + WHERE tgt.transr_code_nm = #{regltSpeclZoneNm} ) -- 특변단속구역 코드 , gps_x , gps_y @@ -211,7 +209,7 @@ JOIN tb_cmm_file_detail tcfd ON tcfm.job_se_code = #{jobSeCode} AND tcfm.file_job_id = #{extrlRegltCntcId} - AND tcfm.file_mastr_id = tcfd.file_mastr_id) -- 이미지 매수 FIXME: 매핑테이블 정의후 반영 (위반 내역 코드) + AND tcfm.file_mastr_id = tcfd.file_mastr_id) -- 이미지 매수 , vhcle_no , #{regltProcessSttusCode} -- 단속:10, 서손:11 , #{registSeCode} diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownEditPopup.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownEditPopup.jsp index 86a1b395..2b49df62 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownEditPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownEditPopup.jsp @@ -43,10 +43,7 @@ Date Author Description } - - - - + @@ -294,7 +296,7 @@ Date Author Description ); cmmImgDownload('#imgList', res.attchFiles, fnPopupBiz.pagePopup, true, '60px'); - window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('span#totCnt')) + window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].reloadNav($('#prev'), $('#next'), $('span#totCnt')) fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo); setFormData(document.querySelector('#frm'), {...res.ctznDTO, ...res.payerDTO, ...res.infoDTO}); @@ -513,13 +515,14 @@ Date Author Description * event **************************************************************************/ $(() => { - $(window).on("unload", function (e) { - window.opener?.unblockUI(); - window.opener?.callbackSearch(); - return null; - }); + // $(window).on("unload", function (e) { + // window.opener?.unblockUI(); + // window.opener?.callbackSearch(); + // return null; + // }); $("#btnClose").on('click', () => { + window.opener?.callbackSearch(); window.close() }); @@ -556,27 +559,29 @@ Date Author Description } }); -/* - $('#btnEnlight').on('click', () => { - fnPopupBiz.saveEnlight(); + $('#btnImpose').on('click', (e) => { + alert('과태료 시스템 인터페이스(세올)'); + // let saveData = fnPopupBiz.getSaveData(); + // + // cmmAjax({ + // url: '/fims/biz/cmm/saveImposeTgt.do' + // ,contentType: 'application/json' + // ,data: JSON.stringify(saveData) + // }) }); - $('#btnDisallow').on('click', () => { - fnPopupBiz.saveDisallow(); - }); -*/ $('#btnRemove').on('click', () => { fnPopupBiz.remove(); }); $('#prev').on('click', () => { - window.opener.pageNav.onClickNavBtn('prev', (gridInfo) => { + window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].onClickNavBtn('prev', (gridInfo) => { fnPopupBiz.search(gridInfo.curRowData) }); }) $('#next').on('click', () => { - window.opener.pageNav.onClickNavBtn('next', (gridInfo) => { + window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].onClickNavBtn('next', (gridInfo) => { fnPopupBiz.search(gridInfo.curRowData); }); }); @@ -591,7 +596,7 @@ Date Author Description fnPopupBiz.downloadImg(); fnPopupBiz.resetDisplay('${ctznDTO.cvplRceptNo}'); - window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('span#totCnt')) + window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].reloadNav($('#prev'), $('#next'), $('span#totCnt')) }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownTotMgtPopup.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownTotMgtPopup.jsp index 70de2e74..1119f3aa 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownTotMgtPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmFimsCrackdownTotMgtPopup.jsp @@ -545,7 +545,7 @@ Date Author Description var imageEditorPopup = (flag, params) => fnPopupBiz.pagePopup(flag, params); var callbackReloadImage = () => fnPopupBiz.downloadImg(); let orgData; - const ARR_INSTANCE = [null,null,null,null,null]; + const ARR_GRID = [null,null,null,null,null]; let CUR_TAB_SEQ = 0; //var callbackSearch = () => fnPopupBiz.search(); @@ -822,19 +822,19 @@ Date Author Description minBodyHeight: 250, bodyHeight: 250, }); - ARR_INSTANCE[0] = TuiGrid.of(tab0Options, tab0Datasource, (res) => { + ARR_GRID[0] = TuiGrid.of(tab0Options, tab0Datasource, (res) => { ARR_TOTCNT[0] = res.data.pagination.totalCount; }); - ARR_INSTANCE[1] = TuiGrid.of(tab1Options, tab0Datasource, (res) => { + ARR_GRID[1] = TuiGrid.of(tab1Options, tab0Datasource, (res) => { ARR_TOTCNT[1] = res.data.pagination.totalCount; }); - ARR_INSTANCE[2] = TuiGrid.of(tab2Options, tab0Datasource, (res) => { + ARR_GRID[2] = TuiGrid.of(tab2Options, tab0Datasource, (res) => { ARR_TOTCNT[2] = res.data.pagination.totalCount; }); - ARR_INSTANCE[3] = TuiGrid.of(tab3Options, tab0Datasource, (res) => { + ARR_GRID[3] = TuiGrid.of(tab3Options, tab0Datasource, (res) => { ARR_TOTCNT[3] = res.data.pagination.totalCount; }); - ARR_INSTANCE[4] = TuiGrid.of(tab4Options, tab0Datasource, (res) => { + ARR_GRID[4] = TuiGrid.of(tab4Options, tab0Datasource, (res) => { ARR_TOTCNT[4] = res.data.pagination.totalCount; }); //tab 클릭 이벤트 @@ -843,7 +843,7 @@ Date Author Description var tabbb = $('#popupTabs').children('div').not($('#tabs_'+tab)); $('#tabs_'+tab).show(500); $('#sch_tab_id').val(tab); - //ARR_INSTANCE[tab].refreshLayout(); + //ARR_GRID[tab].refreshLayout(); });*/ } diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmImposePopup.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmImposePopup.jsp new file mode 100644 index 00000000..a43da4ad --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/cmm/cmmImposePopup.jsp @@ -0,0 +1,112 @@ +<%-- +================================================================================ +File : /fims/biz/cmm/cmmEnlightDisallowPopup.jsp +Name : 서손 / 계도 처리 팝업 - 단속관리>단속현황관리 +Auth : lim.jong.uk +Date : 2022-02-03 +Desc : 서손 / 계도 처리 팝업 +================================================================================ +Date Author Description +================================================================================ +================================================================================ +--%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%> + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrImposeMgtForm.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrImposeMgtForm.jsp new file mode 100644 index 00000000..f3660881 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrImposeMgtForm.jsp @@ -0,0 +1,502 @@ +<%-- +================================================================================ +File : /fims/biz/rt/rtCrackdownExtrInterfaceMgtForm.jsp +Name : 외부자료연계 - 단속관리>단속현황관리 +Auth : lim.jong.uk +Date : 2022-01-26 +Desc : 단속현황관리 외부자료 연계탭 +================================================================================ +Date Author Description +================================================================================ +================================================================================ +--%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp" %> + + + +
+ +
+ + +
+ +
전체 ㅣ
+
+ +
+ + + +
+ + +<%----%> + diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrInterfaceMgtForm.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrInterfaceMgtForm.jsp index 65f13b04..472e035e 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrInterfaceMgtForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrInterfaceMgtForm.jsp @@ -282,6 +282,22 @@ Date Author Description sortable: false, align: 'center', }, + //FIXME : 위반내용 코드로 대치해야 + // { + // header: '위반내용', + // name: 'violtDtlsCode', + // minWidth: 80, + // sortable: false, + // align: 'center', + // formatter: 'listItemText', + // disabled: true, + // editor: { + // type: "select", + // options: { + // listItems: ComboCodeData.violtDtlsCode + // } + // }, + // }, { header: '담당자', name: 'dutyIdV', @@ -439,13 +455,15 @@ Date Author Description }; const gridDatasource = { - initialRequest: true, // 화면 load시 조회 안함 - default + //initialRequest: true, // 화면 load시 조회 안함 - default api: { readData: { // url: fimsApiUrl.FIND_CCTV_EC_EXTRL_REGLT_CNTCS // ,serializer: (params) => fnAddPageInfo(document.frmSearch, params) url: fimsApiUrl.FIND_CRACKDOWNS ,serializer: (params) => { + console.log($('input:radio[name=sysCode]:checked').val()) + //alert($('input:radio[name=sysCode]:checked').val()) const param = { sch_date_opt: $('#sch_date_opt').val() ,sch_date_from: $('#sch_date_from').val() @@ -457,6 +475,7 @@ Date Author Description //,cnfmYn: $('input[name=regltYn]:checked').val() ,cnfmYn: $('#cnfmYn').val() } + console.log(param) return getPageParam(param, params); } } diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownMgtMainForm.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownMgtMainForm.jsp index c41673b9..d7c8c4db 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownMgtMainForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/rt/rtCrackdownMgtMainForm.jsp @@ -17,25 +17,94 @@ Date Author Description
+ +
+ +
+ + +
+ +
전체 ㅣ
+ + 부과 + +
+
+ + +
- <%@include file="/WEB-INF/jsp/fims/biz/rt/rtCrackdownExtrInterfaceMgtForm.jsp" %> -<%-- --%> +
-
+
+
+
-
-
-
-
+
+
+
@@ -45,40 +114,394 @@ Date Author Description /************************************************************************** * Global Variable **************************************************************************/ - let CUR_TAB_IDX = 0; - let ARR_TOTCNT = 0; - //let orgData; - //let downloadImgParam; - //var callbackSearch = () => fnBiz.search(); - //var callbackReloadImage = () => fnBiz.downloadImg(); + var CUR_TAB_IDX = 0; + var ARR_GRID = []; + var ARR_NAV = []; + var IMPOSE_DATA; + + let ARR_TOTCNT = [0, 0]; + let ARR_PRC_STS_CODE = ['01', '10'] + + + popup = null; + let curClickColName; + var callbackSearch = () => fnBiz.search(); /******************************* * Biz function *******************************/ + // tab 전체 + const fnBiz = { + search: () => { + //TODO:: 검색버튼 클릭시 1st page 검색 이동 + //ARR_GRID[CUR_TAB_IDX].getPagination().movePageTo(1); + ARR_GRID[CUR_TAB_IDX].reloadData(); + //ARR_GRID[CUR_TAB_IDX].refreshLayout() + } + ,tabChangReload: () => { + ARR_GRID[CUR_TAB_IDX].refreshLayout() + } + ,getParams: () => { + return { + sch_date_opt: $('#sch_date_opt').val() + ,sch_date_from: $('#sch_date_from').val() + ,sch_date_to: $('#sch_date_to').val() + ,[$('#sch_opt').val()]: $('#sch_word').val() + ,sysCode: $('input:radio[name=sysCode]:checked').val() + ,regltSeCode: $('input:radio[name=regltSeCode]:checked').val() + ,regltProcessSttusCode: CUR_TAB_IDX === 2 ? 'NON-INIT' : $('#regltProcessSttusCode').val() + //,cnfmYn: $('input[name=regltYn]:checked').val() + ,cnfmYn: $('#cnfmYn').val() + } + } + ,pagePopup: function(flag, params){ + let url; + let popTitle; + let popOption; + switch (flag) { + case "total": + url = fimsApiUrl.POPUP_CRACKDOWN_TOTAL; + popOption = {width: 1200, height:900}; + popTitle = "개별총정보"; + break; + case "detail": + url = fimsApiUrl.POPUP_CRACKDOWN_EDIT; + popOption = {width: 1200, height:900}; + popTitle = "정보 변경"; + break; + case "file": + url = fimsApiUrl.POPUP_EXTR_CRACKDOWN_FILE_SEL; + popOption = {width: 900, height:750}; + popTitle = "외부연계 데이타 선택"; + break; + case "impose": + url = fimsApiUrl.POPUP_IMPOSE; + popOption = {width: 500, height: 400}; + popTitle = "과태료 시스템 등록"; + break; + default: + break; + } + popup = CmmPopup.open(url, params, popOption, popTitle); + } + ,onClickGrid: function(props){ + const selColumn = props.columnInfo.name; + curClickColName = selColumn; + switch (selColumn){ + case 'vhcleNo': + const gridDatas = ARR_GRID[CUR_TAB_IDX].store.data.rawData.map(d => { + return {regltSeCode: d.regltSeCode, regltId: d.regltId, regltProcessSttusCode: d.regltProcessSttusCode} + }) + ARR_NAV[CUR_TAB_IDX] = new PageNavigation(ARR_GRID[CUR_TAB_IDX], gridDatas, props.rowKey); + fnBiz.pagePopup('total', ARR_NAV[CUR_TAB_IDX].gridInfo.curRowData); + break; + + case 'cvplRceptNo': + const rowDatas = ARR_GRID[CUR_TAB_IDX].store.data.rawData.map(d => { + return {regltSeCode: d.regltSeCode, regltId: d.regltId, regltProcessSttusCode: d.regltProcessSttusCode} + }) + ARR_NAV[CUR_TAB_IDX] = new PageNavigation(ARR_GRID[CUR_TAB_IDX], rowDatas, props.rowKey); + fnBiz.pagePopup('detail', ARR_NAV[CUR_TAB_IDX].gridInfo.curRowData); + break; + + default: + break; + } + + } + ,resetBtn: function() { + switch(CUR_TAB_IDX){ + case 0: + $('#btnExtrRegist').show(); + $('#regltProcessSttusCode').show(); + $('input:radio[name=regltSeCode]').prop('disabled', false); + break; + case 1: + $('#btnExtrRegist').hide(); + $('#regltProcessSttusCode').show(); + $('input:radio[name=regltSeCode]').prop('disabled', false); + break; + case 2: + $('#btnExtrRegist').hide(); + $('#regltProcessSttusCode').hide(); + $('input:radio[name=regltSeCode]').val('09').prop('checked', true); + $('input:radio[name=regltSeCode]').prop('disabled', true); + break; + } + } + }; + const fnTab0Biz = { + + + + }; /************************************************************************** * event **************************************************************************/ $(() => { $("#tabs").on("click", "li", function () { - // CUR_TAB_IDX = parseInt($("#tabs .ui-tabs-active a").attr("id")); - // $('span#totCnt').text(ARR_TOTCNT[CUR_TAB_IDX]); - // - // if(ARR_INSTANCE[CUR_TAB_IDX]) ARR_INSTANCE[CUR_TAB_IDX].refreshLayout(); + CUR_TAB_IDX = parseInt($("#tabs .ui-tabs-active a").attr("id")); + $('#totCnt span').text(ARR_TOTCNT[CUR_TAB_IDX]); + $('#regltProcessSttusCode').val(ARR_PRC_STS_CODE[CUR_TAB_IDX]).prop('selected', true); + + if(ARR_GRID[CUR_TAB_IDX]) ARR_GRID[CUR_TAB_IDX].refreshLayout(); + fnBiz.resetBtn(); }); + $('#btnSearch').on('click', () => fnBiz.search()); + + $('#btnExtrRegist').on('click', () => { + fnBiz.pagePopup('file'); + }); + + $('#btnImpose').on('click', () => { + const arrChecks = ARR_GRID[CUR_TAB_IDX].getCheckedRows(); + if(arrChecks.length === 0){ + alert('부과 처리 대상을 먼저 선택해 주세요'); + return false; + } + IMPOSE_DATA = arrChecks.map((row) => { + return { + regltId: row.regltId + ,cvplRceptNo: row.cvplRceptNo + } + }) + fnBiz.pagePopup('impose'); + }); }); /* ******************************* * Grid ******************************* */ + const gridColumns = [ + { + header: '등록구분', + name: 'registSeCode', + minWidth: 60, + sortable: false, + align: 'center', + formatter: 'listItemText', + disabled: true, + editor: { + type: "select", + options: { + listItems: ComboCodeData.registSeCode + } + }, + }, + { + header: '접수번호', + name: 'cvplRceptNo', + minWidth: 120, + sortable: false, + align: 'center', + renderer: { + type: CustomButtonRenderer, + options: { + formatter: (props)=>{ + const rowData = props.grid.getRow(props.rowKey); + return { + formatter: rowData.regltSeCode === '09' ? rowData.cvplRceptNo : rowData.extrlRegltCntcId + ,element: "text" + } + } + ,eventFunction: fnBiz.onClickGrid + ,eventType: "click" + } + } + }, + { + header: '차량번호', + name: 'vhcleNo', + minWidth: 100, + sortable: false, + align: 'center', + renderer: { + type: CustomButtonRenderer, + options: { + formatter: (props)=>{ + return { + formatter: props.grid.getRow(props.rowKey).vhcleNo + ,element: "text" + } + } + ,eventFunction: fnBiz.onClickGrid + ,eventType: "click" + } + } + }, + { + header: '신고자', + name: 'cvplApplcntNm', + minWidth: 80, + sortable: false, + align: 'center' + }, + + { + header: '신고방법', + name: 'regltSeCode', + minWidth: 100, + sortable: false, + align: 'center', + formatter: 'listItemText', + disabled: true, + editor: { + type: "select", + options: { + listItems: [...ComboCodeData.regltSeCode] + } + }, + }, + { + header: '위반내용', + name: 'violtDtlsNm', + minWidth: 80, + sortable: false, + align: 'center', + }, + { + header: '담당자', + name: 'dutyIdV', + minWidth: 80, + sortable: false, + align: 'center' + }, + { + header: '전화번호', + name: 'pcdTelV', + minWidth: 80, + sortable: false, + align: 'center' + }, + { + header: '접수일자', + name: 'cvplRceptDt', + minWidth: 80, + sortable: false, + align: 'center', + formatter({value}) { + return setDateFmt(value); // + } + }, + { + header: '처리기한', + name: 'cvplProcessPd', + minWidth: 80, + sortable: false, + align: 'center', + formatter({value}) { + return setDateFmt(value); // + } + }, + { + header: '위반일시', + name: 'regltDeTime', + minWidth: 120, + sortable: false, + align: 'center', + formatter({value}) { + return setDateTimeFmt(value); // + } + }, + { + header: '첨부', + name: 'imageSeCode', + minWidth: 60, + sortable: false, + align: 'center', + formatter: 'listItemText', + disabled: true, + editor: { + type: "select", + options: { + listItems: ComboCodeData.imageSeCode + } + }, + }, + { + header: '사진', + name: 'imageNmrs', + minWidth: 50, + sortable: false, + align: 'center', + }, + { + header: '서손사유', + name: 'erppResnDetail', //erppSeCode + width: 80, + sortable: false, + align: 'center', + }, + { + header: '특기사항', + name: 'spcmntMatter', + width: 80, + sortable: false, + align: 'center', + }, + { + header: '', + name: 'regltProcessSttusCode', + hidden: true + } + ]; + const gridOptions = { + el: 'grid', + rowHeaders: ['rowNum'], + columns: gridColumns, + columnOptions: { + frozenCount: 5 + } + ,pageOptions: { + perPage: 1000 + } + }; + + const gridDatasource = { + //initialRequest: true, // 화면 load시 조회 안함 - default + api: { + readData: { + url: fimsApiUrl.FIND_CRACKDOWNS + ,serializer: (params) => { + return getPageParam(fnBiz.getParams(), params); + } + } + } + }; + const gridResposeSet = (res, idx) => { + ARR_TOTCNT[idx] = res.data.pagination.totalCount; + $('#totCnt span').text(ARR_TOTCNT[idx]); + const gridInfo = ARR_NAV[idx]?.gridInfo; + if(gridInfo && gridInfo?.pageMove) { + const datas = res.data?.contents.map(d => { + return {regltId: d.regltId, regltSeCode: d.regltSeCode, regltProcessSttusCode: d.regltProcessSttusCode} + }); + ARR_NAV[idx].resetGrid(res, datas, (pagiNavigation)=>{ + ARR_NAV[idx] = pagiNavigation; + if(curClickColName === 'vhcleNo') fnBiz.pagePopup('total', ARR_NAV[idx].gridInfo.curRowData); + else fnBiz.pagePopup('detail', ARR_NAV[idx].gridInfo.curRowData); + }) + } + } + const initGrid = () => { + ARR_GRID[0] = TuiGrid.of(gridOptions, gridDatasource, (res) => gridResposeSet(res, 0)) + ARR_GRID[1] = TuiGrid.of({...gridOptions, el: 'grid_t1', rowHeaders: ['checkbox','rowNum']}, gridDatasource, (res) => gridResposeSet(res, 1)) + ARR_GRID[2] = TuiGrid.of({...gridOptions, el: 'grid_t2', rowHeaders: ['checkbox','rowNum']}, gridDatasource, (res) => gridResposeSet(res, 2)) + }; /************************************************************************** * initialize **************************************************************************/ $(document).ready(function(){ + $('#sch_date_from').datepicker('setDate', DateUtil.getDateDay(-5475).date); + $('#sch_date_to').datepicker('setDate', new Date()); + CUR_TAB_IDX = 0; + $('#btnImpose').hide(); $("#tabs").tabs({active : CUR_TAB_IDX}); + initGrid(); }); diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index efa8d68c..f05f759a 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -123,6 +123,17 @@ *.ajax + + + cxf + org.apache.cxf.transport.servlet.CXFServlet + 1 + + + cxf + /service/* + + UbiServer diff --git a/src/main/webapp/resources/biz/common/js/fimsApiURL.js b/src/main/webapp/resources/biz/common/js/fimsApiURL.js index 0664c0b6..a614037e 100644 --- a/src/main/webapp/resources/biz/common/js/fimsApiURL.js +++ b/src/main/webapp/resources/biz/common/js/fimsApiURL.js @@ -8,6 +8,7 @@ const fimsApiUrl = { ,POPUP_CRACKDOWN_EDIT: '/fims/biz/cmm/cmmFimsCrackdownEditPopup.do' //단속 정보 편집 팝업 ,POPUP_EXTR_CRACKDOWN_FILE_SEL: '/fims/biz/cmm/cmmCrackdownRcvFilePopup.do' //CCTV 외부연계 데이타 선택 ,POPUP_ENLIGHT_DISALLOW: '/fims/biz/cmm/cmmEnlightDisallowPopup.do' //서손 / 계도 처리 popup + ,POPUP_IMPOSE: '/fims/biz/cmm/cmmImposePopup.do' //과태료시스템등록 popup ,FIND_CRACKDOWN_INFO: '/fims/biz/cmm/findCrackdownInfoAndAttchFiles.do' //단속현황-개별총정보 위반정보탭 조회 ,FIND_CRACKDOWNS: '/fims/biz/cmm/findCrackdownInfos.do' //단속현황-외부연계자료목록 /** diff --git a/src/main/webapp/resources/biz/common/js/popupPageNavigation.js b/src/main/webapp/resources/biz/common/js/popupPageNavigation.js index 50a35130..b7316212 100644 --- a/src/main/webapp/resources/biz/common/js/popupPageNavigation.js +++ b/src/main/webapp/resources/biz/common/js/popupPageNavigation.js @@ -2,6 +2,7 @@ class PageNavigation { grid = null; + pageNav = null; // 현재 gridData 목록 gridInfo = { @@ -42,6 +43,7 @@ class PageNavigation { ,pageMove: null ,next: null } + this.pageNav = this; this.grid = GRID; }; @@ -53,10 +55,10 @@ class PageNavigation { */ resetGrid(res, gridDatas, callback) { this.grid.resetData(res.data?.contents); - if (this.gridInfo.next) pageNav = new PageNavigation(this.grid, gridDatas, 0); - else pageNav = new PageNavigation(this.grid, gridDatas, this.gridInfo.perPage - 1); + if (this.gridInfo.next) this.pageNav = new PageNavigation(this.grid, gridDatas, 0); + else this.pageNav = new PageNavigation(this.grid, gridDatas, this.gridInfo.perPage - 1); - callback(pageNav) + callback(this.pageNav) } /** * 팝업창의 prev, next 버튼 클릭후 정보 갱신을 위해 호출