diff --git a/doc/참고자료/불법주정차 통합플랫폼 구축 사업_구성도A3.pptx b/doc/참고자료/불법주정차 통합플랫폼 구축 사업_구성도A3.pptx new file mode 100644 index 00000000..4b4ea068 Binary files /dev/null and b/doc/참고자료/불법주정차 통합플랫폼 구축 사업_구성도A3.pptx differ diff --git a/doc/참고자료/불법주정차 통합플랫폼 실장님보고.pptx b/doc/참고자료/불법주정차 통합플랫폼 실장님보고.pptx new file mode 100644 index 00000000..9542ead6 Binary files /dev/null and b/doc/참고자료/불법주정차 통합플랫폼 실장님보고.pptx differ 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..a9269604 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 @@ -20,7 +20,14 @@ public class FimsCrackdownDTO { public static class Info extends RtDTO.Reglt { private String regltDeTime; + /** + * 차량 단속건수 + */ private int vhcleNoCnt; + /** + * 민원 등록 건수 + */ + private int minwonCnt; // CCTV 연계 key private String extrlRegltCntcId; @@ -174,6 +181,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..a7600a93 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 { @@ -29,10 +34,12 @@ public class JasyptConfig { String url = encryptor.encrypt("jdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8serverTimezone=Asia/Seoul&useSSL=false"); String id = encryptor.encrypt("root"); String passwd = encryptor.encrypt("xit5811807"); + String passwd2 = encryptor.encrypt("xit5811807!@"); String decryptedPass = encryptor.decrypt(url); System.out.println(url); System.out.println(id); System.out.println(passwd); + System.out.println(passwd2); System.out.println(decryptedPass); } diff --git a/src/main/resources/props/local/globals.properties b/src/main/resources/props/local/globals.properties index 8ba16e64..6087ccf2 100644 --- a/src/main/resources/props/local/globals.properties +++ b/src/main/resources/props/local/globals.properties @@ -31,6 +31,7 @@ Globals.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy #Globals.UserName=root #Globals.Password=xit5811807 Globals.DbType = mysql +#jasypt.password=5811807!@ Globals.Url=ENC(zkjZYDiQT1ELZvJgKnMmAGq1f6MScCS5J0KxMn58zNI1nwQ+rCSUIZAVZMEvQZ9Gj/ISlqZojzoZp+5/eHQMStpRlXNXxsL8OVls+vVKjqvbABZ3zr9Ko3g9/Bkx+BC3y5Di/ycV3+GqR+ml8Fy5SMyAIXy8O/TFr19gFaqEyJgAmKNGFkGg7OpWUsfs7XXc) Globals.UserName=ENC(jzgcdK8FU5x06QfuAD0+FA==) Globals.Password=ENC(S+FRTHOPAw/XPGBz4j/f9ZN4RZzbnbsz) diff --git a/src/main/resources/spring/service/context-properties.xml b/src/main/resources/spring/service/context-properties.xml index c1f7a2ae..5088eb11 100644 --- a/src/main/resources/spring/service/context-properties.xml +++ b/src/main/resources/spring/service/context-properties.xml @@ -10,7 +10,9 @@ + + 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..e3fa539f 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 @@ -64,10 +64,19 @@ , trp.legaldong_code -- 법정동 코드 , IF(trr.reglt_se_code = '09', tecsd.violt_dtls_nm, teerc.violt_dtls_nm) AS violtDtlsNm -- 위반내용 , (SELECT COUNT(reglt_id) - FROM tb_rt_reglt tgt - WHERE tgt.vhcle_no = trr.vhcle_no - AND NOT NULLIF(trr.vhcle_no, '') IS NULL + FROM tb_rt_reglt tgt + WHERE tgt.vhcle_no = trr.vhcle_no + AND NOT NULLIF(trr.vhcle_no, '') IS NULL ) AS vhcleNoCnt + , (SELECT COUNT(cmplt_id) + FROM tb_ec_ctzn_sttemnt_cmplt tgt + WHERE EXISTS(SELECT 1 + FROM tb_rt_reglt + WHERE tgt.reglt_id = reglt_id + AND payer_id = trr.payer_id + ) + OR tgt.vhcle_no = trr.vhcle_no + ) AS minwonCnt FROM tb_rt_reglt trr LEFT JOIN tb_ec_extrl_reglt_cntc teerc ON trr.reglt_id = teerc.reglt_id @@ -300,7 +309,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 +325,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 +361,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 +371,8 @@ WHERE reglt_id = #{regltId} - + /*cmm-fims-crackdown-mysql-mapper|selectPayerAdresHist-소유자 주소 변경 이력 조회|cjm */ SELECT regist_dt , all_adres FROM tb_rt_payer_hist @@ -368,6 +380,7 @@ + + 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 3ae11736..6f0cd4ef 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 @@ -168,7 +168,7 @@ Date Author Description 차적조회 - 단속횟수:   회 + 단속횟수:   회 면제차량여부 @@ -178,7 +178,9 @@ Date Author Description 특기사항 - + +<%-- 민원등록:   회--%> + 민원등록:   회 @@ -289,6 +291,8 @@ Date Author Description let imgPk = ''; let regltSeCode = ''; + let schParam = null; + /* ******************************* * Biz function ******************************* */ @@ -320,15 +324,16 @@ Date Author Description + '   [ ' + dataKey + ' ]' ); fnPopupBiz.showCrackdownVhcleNoCnt(res.infoDTO.vhcleNoCnt); + fnPopupBiz.showMinwonCnt(res.infoDTO.minwonCnt); /* if(res.infoDTO.vhcleNoCnt > 0) { console.log(res.infoDTO.vhcleNoCnt); $('#vhcleNoCnt').text( res.infoDTO.vhcleNoCnt ); - $('#markdownCnt').show(); + $('#crackdownCnt').show(); }else{ - $('#markdownCnt').hide(); + $('#crackdownCnt').hide(); } */ @@ -340,6 +345,10 @@ Date Author Description fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo); setFormData(document.querySelector('#frm'), {...res.ctznDTO, ...res.payerDTO, ...res.infoDTO}); + schParam = { + regltId: res.infoDTO?.regltId, + regltSeCode: res.infoDTO?.regltSeCode + } orgData = $('form').serialize(); } }) @@ -577,13 +586,35 @@ Date Author Description // 차량 단속 건수 표시 ,showCrackdownVhcleNoCnt: (cnt) => { - if(cnt > 0) { - $('#vhcleNoCnt').html(cnt); - $('#markdownCnt').show(); - }else{ - $('#markdownCnt').hide(); - } + if(cnt > 0) { + $('#vhcleNoCnt').html(cnt); + $('#crackdown').show(); + }else{ + $('#crackdown').hide(); } + } + + // 민원 건수 표시 + ,showMinwonCnt: (cnt) => { + if(cnt > 0) { + $('#minwonCnt').html(cnt); + $('#minwon').show(); + }else{ + $('#minwon').hide(); + } + } + + // TODO :: 개별총정보>민원내역탭 내용의 팝업 필요 + ,goMinwonPopup: () => { + alert('개별총정보>민원내역탭 내용의 팝업 필요'); + /* + const url = "/fims/biz/cmm/cmmFimsCrackdownTotMgtPopup.do"; + const popOption = {width: 1200, height:900}; + const popTitle = "개별총정보"; + const params = {regltSeCode: schParam.regltSeCode, regltId: schParam.regltId} + const p = CmmPopup.open(url, params, popOption, popTitle); + */ + } }; /************************************************************************** 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 26997c6c..c9cd43cd 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 @@ -13,6 +13,8 @@ Date Author Description <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%> + +