Merge branch 'dev' into dev-feat-doc

main
jjh 2 years ago
commit aa66e31c98

@ -189,6 +189,20 @@ public class FimsConst {
private final String code; private final String code;
private final String desc; 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;
}
} }

@ -20,7 +20,14 @@ public class FimsCrackdownDTO {
public static class Info extends RtDTO.Reglt { public static class Info extends RtDTO.Reglt {
private String regltDeTime; private String regltDeTime;
/**
*
*/
private int vhcleNoCnt; private int vhcleNoCnt;
/**
*
*/
private int minwonCnt;
// CCTV 연계 key // CCTV 연계 key
private String extrlRegltCntcId; private String extrlRegltCntcId;
@ -174,6 +181,10 @@ public class FimsCrackdownDTO {
* *
*/ */
private String gubun; private String gubun;
/**
*
*/
private String insttCode;
/** /**
* *
*/ */

@ -9,6 +9,7 @@ import org.apache.ibatis.session.RowBounds;
import egovframework.rte.psl.dataaccess.mapper.Mapper; import egovframework.rte.psl.dataaccess.mapper.Mapper;
import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO; import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO;
import kr.xit.fims.biz.ec.dto.CtznStmtDTO; 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.CmmAnsTmplDTO;
@Mapper @Mapper
@ -29,12 +30,12 @@ public interface IFimsCrackdownMgtMapper {
CtznStmtDTO.Ans selectEcCtznSttemntAnswer(final String interfaceSeqN); CtznStmtDTO.Ans selectEcCtznSttemntAnswer(final String interfaceSeqN);
CmmAnsTmplDTO.Dtl selectCtznAnswerTmplInfo(final FimsCrackdownDTO.AnsRequest dto); CmmAnsTmplDTO.Dtl selectCtznAnswerTmplInfo(final FimsCrackdownDTO.AnsRequest dto);
List<FimsTotalPopupVO> selectProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto); List<RtDTO.SttusChangeHist> selectProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto);
List<FimsTotalPopupVO> selectPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto); List<RtDTO.PayerHist> selectPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto);
List<CmmAnsTmplDTO.Dtl> selectElctrnNticSndng(final FimsCrackdownDTO.AnsRequest dto); List<CmmAnsTmplDTO.Dtl> selectElctrnNticSndng(final FimsCrackdownDTO.AnsRequest dto);
List<FimsCrackdownDTO.CtznSttemntCmplt> selectCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto); List<FimsCrackdownDTO.CtznSttemntCmplt> selectCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto);
void saveCtznSttemntCmplt(FimsCrackdownDTO.CtznSttemntCmplt dto); void insertCtznSttemntCmplt(FimsCrackdownDTO.CtznSttemntCmplt dto);
int selectCrackdownVhcleNoCnt(final String vhcleNo); int selectCrackdownVhcleNoCnt(final String vhcleNo);
} }

@ -278,11 +278,11 @@ public class FimsCrackdownMgtService implements IFimsCrackdownMgtService {
return ecCtznSttemntMapper.selectEcCtznSttemntAnswer(dto); return ecCtznSttemntMapper.selectEcCtznSttemntAnswer(dto);
} }
@Override @Override
public List<FimsTotalPopupVO> findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto){ public List<RtDTO.SttusChangeHist> findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto){
return mapper.selectProcessSttusChangeHist(dto); return mapper.selectProcessSttusChangeHist(dto);
} }
@Override @Override
public List<FimsTotalPopupVO> findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto){ public List<RtDTO.PayerHist> findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto){
return mapper.selectPayerAdresHist(dto); return mapper.selectPayerAdresHist(dto);
} }
@Override @Override
@ -296,8 +296,9 @@ public class FimsCrackdownMgtService implements IFimsCrackdownMgtService {
@Override @Override
public void addCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto) { public void addCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto) {
dto.setInsttCode(getUserInfo().getPstinstCode());
dto.setRegister(getUserInfo().getUniqId()); dto.setRegister(getUserInfo().getUniqId());
mapper.saveCtznSttemntCmplt(dto); mapper.insertCtznSttemntCmplt(dto);
} }
@Override @Override

@ -8,6 +8,7 @@ import org.apache.ibatis.session.RowBounds;
import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO; import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO;
import kr.xit.fims.biz.ec.dto.CtznStmtDTO; 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.CmmAnsTmplDTO;
import kr.xit.framework.biz.cmm.dto.XitLoginVO; import kr.xit.framework.biz.cmm.dto.XitLoginVO;
import kr.xit.framework.core.utils.XitCmmnUtil; import kr.xit.framework.core.utils.XitCmmnUtil;
@ -27,8 +28,8 @@ public interface IFimsCrackdownMgtService {
CmmAnsTmplDTO.Dtl findCtznAnswerTmplInfo(final FimsCrackdownDTO.AnsRequest dto); CmmAnsTmplDTO.Dtl findCtznAnswerTmplInfo(final FimsCrackdownDTO.AnsRequest dto);
CtznStmtDTO.Ans findCtznStmtAnswer(final FimsCrackdownDTO.AnsRequest dto); CtznStmtDTO.Ans findCtznStmtAnswer(final FimsCrackdownDTO.AnsRequest dto);
List<FimsTotalPopupVO> findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto); List<RtDTO.SttusChangeHist> findProcessSttusChangeHist(final FimsCrackdownDTO.AnsRequest dto);
List<FimsTotalPopupVO> findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto); List<RtDTO.PayerHist> findPayerAdresHist(final FimsCrackdownDTO.AnsRequest dto);
List<CmmAnsTmplDTO.Dtl> findElctrnNticSndng(final FimsCrackdownDTO.AnsRequest dto); List<CmmAnsTmplDTO.Dtl> findElctrnNticSndng(final FimsCrackdownDTO.AnsRequest dto);
List<FimsCrackdownDTO.CtznSttemntCmplt> findCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto); List<FimsCrackdownDTO.CtznSttemntCmplt> findCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto);
void addCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto); void addCtznSttemntCmplt(final FimsCrackdownDTO.CtznSttemntCmplt dto);

@ -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 @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor

@ -6,6 +6,11 @@ import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
/**
* context-properties.xml
* check
*/
@Deprecated
//@Configuration //@Configuration
public class JasyptConfig { 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 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 id = encryptor.encrypt("root");
String passwd = encryptor.encrypt("xit5811807"); String passwd = encryptor.encrypt("xit5811807");
String passwd2 = encryptor.encrypt("xit5811807!@");
String decryptedPass = encryptor.decrypt(url); String decryptedPass = encryptor.decrypt(url);
System.out.println(url); System.out.println(url);
System.out.println(id); System.out.println(id);
System.out.println(passwd); System.out.println(passwd);
System.out.println(passwd2);
System.out.println(decryptedPass); System.out.println(decryptedPass);
} }

@ -31,6 +31,7 @@ Globals.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
#Globals.UserName=root #Globals.UserName=root
#Globals.Password=xit5811807 #Globals.Password=xit5811807
Globals.DbType = mysql Globals.DbType = mysql
#jasypt.password=5811807!@
Globals.Url=ENC(zkjZYDiQT1ELZvJgKnMmAGq1f6MScCS5J0KxMn58zNI1nwQ+rCSUIZAVZMEvQZ9Gj/ISlqZojzoZp+5/eHQMStpRlXNXxsL8OVls+vVKjqvbABZ3zr9Ko3g9/Bkx+BC3y5Di/ycV3+GqR+ml8Fy5SMyAIXy8O/TFr19gFaqEyJgAmKNGFkGg7OpWUsfs7XXc) Globals.Url=ENC(zkjZYDiQT1ELZvJgKnMmAGq1f6MScCS5J0KxMn58zNI1nwQ+rCSUIZAVZMEvQZ9Gj/ISlqZojzoZp+5/eHQMStpRlXNXxsL8OVls+vVKjqvbABZ3zr9Ko3g9/Bkx+BC3y5Di/ycV3+GqR+ml8Fy5SMyAIXy8O/TFr19gFaqEyJgAmKNGFkGg7OpWUsfs7XXc)
Globals.UserName=ENC(jzgcdK8FU5x06QfuAD0+FA==) Globals.UserName=ENC(jzgcdK8FU5x06QfuAD0+FA==)
Globals.Password=ENC(S+FRTHOPAw/XPGBz4j/f9ZN4RZzbnbsz) Globals.Password=ENC(S+FRTHOPAw/XPGBz4j/f9ZN4RZzbnbsz)

@ -10,7 +10,9 @@
<bean id="encryptorConfig" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"> <bean id="encryptorConfig" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
<property name="algorithm" value="PBEWithMD5AndDES" /> <property name="algorithm" value="PBEWithMD5AndDES" />
<!-- FIXME:: properties로 분리?? -->
<property name="password" value="xit5811807!@" /> <property name="password" value="xit5811807!@" />
<!-- <property name="password" value="#{prop['jasypt.password']}" />-->
</bean> </bean>
<bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"> <bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">

@ -68,6 +68,15 @@
WHERE tgt.vhcle_no = trr.vhcle_no WHERE tgt.vhcle_no = trr.vhcle_no
AND NOT NULLIF(trr.vhcle_no, '') IS NULL AND NOT NULLIF(trr.vhcle_no, '') IS NULL
) AS vhcleNoCnt ) 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 FROM tb_rt_reglt trr
LEFT JOIN tb_ec_extrl_reglt_cntc teerc LEFT JOIN tb_ec_extrl_reglt_cntc teerc
ON trr.reglt_id = teerc.reglt_id ON trr.reglt_id = teerc.reglt_id
@ -300,7 +309,8 @@
, cvpl_process_compt_dt = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') , cvpl_process_compt_dt = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
</insert> </insert>
<insert id="saveCtznSttemntCmplt"> <insert id="insertCtznSttemntCmplt">
/*cmm-fims-crackdown-mysql-mapper|insertCtznSttemntCmplt-민원등록|cjm */
<selectKey resultType="string" keyProperty="cmpltId" order="BEFORE"> <selectKey resultType="string" keyProperty="cmpltId" order="BEFORE">
SELECT LPAD(NEXTVAL(seq_ec_ctzn_sttemnt_cmplt), 12, '0') SELECT LPAD(NEXTVAL(seq_ec_ctzn_sttemnt_cmplt), 12, '0')
</selectKey> </selectKey>
@ -351,7 +361,8 @@
WHERE tecsa.interface_seq_n = #{interfaceSeqN} WHERE tecsa.interface_seq_n = #{interfaceSeqN}
</select> </select>
<select id="selectProcessSttusChangeHist" resultType="kr.xit.fims.biz.cmm.fimsTotalPopup.dto.FimsTotalPopupVO"> <select id="selectProcessSttusChangeHist" resultType="kr.xit.fims.biz.rt.dto.RtDTO$SttusChangeHist">
/*cmm-fims-crackdown-mysql-mapper|selectProcessSttusChangeHist-단속자료 변경 이력 조회|cjm */
SELECT hist_sn SELECT hist_sn
, reglt_process_sttus_code , reglt_process_sttus_code
, regist_dt , regist_dt
@ -360,7 +371,8 @@
WHERE reglt_id = #{regltId} WHERE reglt_id = #{regltId}
</select> </select>
<select id="selectPayerAdresHist" resultType="kr.xit.fims.biz.cmm.fimsTotalPopup.dto.FimsTotalPopupVO"> <select id="selectPayerAdresHist" resultType="kr.xit.fims.biz.rt.dto.RtDTO$PayerHist">
/*cmm-fims-crackdown-mysql-mapper|selectPayerAdresHist-소유자 주소 변경 이력 조회|cjm */
SELECT regist_dt SELECT regist_dt
, all_adres , all_adres
FROM tb_rt_payer_hist FROM tb_rt_payer_hist
@ -368,6 +380,7 @@
</select> </select>
<select id="selectElctrnNticSndng" resultType="kr.xit.framework.biz.cmm.dto.CmmAnsTmplDTO$Dtl"> <select id="selectElctrnNticSndng" resultType="kr.xit.framework.biz.cmm.dto.CmmAnsTmplDTO$Dtl">
/*cmm-fims-crackdown-mysql-mapper|selectElctrnNticSndng-전자고지 발송 이력 조회|cjm */
SELECT tens.elctrn_ntic_sndng_id SELECT tens.elctrn_ntic_sndng_id
, tens.signgu_code , tens.signgu_code
, tens.nht_tmplat_id , tens.nht_tmplat_id
@ -401,6 +414,7 @@
</select> </select>
<select id="selectCtznSttemntCmplt" resultType="kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO$CtznSttemntCmplt"> <select id="selectCtznSttemntCmplt" resultType="kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO$CtznSttemntCmplt">
/*cmm-fims-crackdown-mysql-mapper|selectCtznSttemntCmplt-민원등록 이력 조회|cjm */
SELECT tecsc.cmplt_id SELECT tecsc.cmplt_id
, tecsc.reglt_id , tecsc.reglt_id
, tecsc.instt_code , tecsc.instt_code
@ -412,16 +426,20 @@
, tecsc.updt_dt , tecsc.updt_dt
, tecsc.updusr , tecsc.updusr
FROM tb_ec_ctzn_sttemnt_cmplt tecsc FROM tb_ec_ctzn_sttemnt_cmplt tecsc
WHERE gubun = #{gubun}
<if test='gubun eq "0"'> <if test='gubun eq "0"'>
JOIN tb_rt_reglt trr AND EXISTS (SELECT 1
ON (tecsc.reglt_id = trr.reglt_id AND (trr.payer_id = #{payerId} OR trr.reglt_id = #{regltId})) FROM tb_rt_reglt
WHERE tecsc.reglt_id = reglt_id
AND payer_id = #{payerId}
)
</if> </if>
<where>
<if test='gubun eq "1"'> <if test='gubun eq "1"'>
AND tecsc.vhcle_no = #{vhcleNo} AND tecsc.vhcle_no = #{vhcleNo}
</if> </if>
</where> ORDER BY tecsc.regist_dt DESC
</select> </select>
<!-- AND (payer_id = #{payerId} OR reglt_id = #{regltId}) -->
<select id="selectCrackdownVhcleNoCnt" resultType="int"> <select id="selectCrackdownVhcleNoCnt" resultType="int">
/*cmm-fims-crackdown-mysql-mapper|selectCrackdownVhcleNoCnt-단속횟수 조회|cjm */ /*cmm-fims-crackdown-mysql-mapper|selectCrackdownVhcleNoCnt-단속횟수 조회|cjm */
@ -430,4 +448,5 @@
WHERE trr.vhcle_no = #{vhcle_no} WHERE trr.vhcle_no = #{vhcle_no}
AND NOT NULLIF(#{vhvle_no}, '') IS NULL AND NOT NULLIF(#{vhvle_no}, '') IS NULL
</select> </select>
</mapper> </mapper>

@ -168,7 +168,7 @@ Date Author Description
<a id ="vhcleSearch"> <a id ="vhcleSearch">
<img src="<c:url value='/resources/images/btn/search.png'/>" alt="차적조회" style="cursor: hand"/> <img src="<c:url value='/resources/images/btn/search.png'/>" alt="차적조회" style="cursor: hand"/>
</a> </a>
<em id="markdownCnt" class="empCls">단속횟수: &nbsp;<span id="vhcleNoCnt"></span>&nbsp;회</em> <em id="crackdown" class="empCls">단속횟수: &nbsp;<span id="vhcleNoCnt"></span>&nbsp;회</em>
</td> </td>
<th>면제차량여부</th> <th>면제차량여부</th>
<td> <td>
@ -178,7 +178,9 @@ Date Author Description
<tr> <tr>
<th>특기사항</th> <th>특기사항</th>
<td colspan="3"> <td colspan="3">
<input type="text" name="spcmntMatter" readonly/> <input type="text" name="spcmntMatter" style="width: 70%" readonly/>
<%-- <em id="minwon" class="empCls">민원등록: &nbsp;<span id="minwonCnt"></span>&nbsp;회</em>--%>
<a href="javascript:fnPopupBiz.goMinwonPopup()"><em id="minwon" class="empCls">민원등록: &nbsp;<span id="minwonCnt"></span>&nbsp;회</em></a>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -289,6 +291,8 @@ Date Author Description
let imgPk = ''; let imgPk = '';
let regltSeCode = ''; let regltSeCode = '';
let schParam = null;
/* ******************************* /* *******************************
* Biz function * Biz function
******************************* */ ******************************* */
@ -320,15 +324,16 @@ Date Author Description
+ '&nbsp;&nbsp;&nbsp;[&nbsp;' + dataKey + '&nbsp;]' + '&nbsp;&nbsp;&nbsp;[&nbsp;' + dataKey + '&nbsp;]'
); );
fnPopupBiz.showCrackdownVhcleNoCnt(res.infoDTO.vhcleNoCnt); fnPopupBiz.showCrackdownVhcleNoCnt(res.infoDTO.vhcleNoCnt);
fnPopupBiz.showMinwonCnt(res.infoDTO.minwonCnt);
/* /*
if(res.infoDTO.vhcleNoCnt > 0) { if(res.infoDTO.vhcleNoCnt > 0) {
console.log(res.infoDTO.vhcleNoCnt); console.log(res.infoDTO.vhcleNoCnt);
$('#vhcleNoCnt').text( $('#vhcleNoCnt').text(
res.infoDTO.vhcleNoCnt res.infoDTO.vhcleNoCnt
); );
$('#markdownCnt').show(); $('#crackdownCnt').show();
}else{ }else{
$('#markdownCnt').hide(); $('#crackdownCnt').hide();
} }
*/ */
@ -340,6 +345,10 @@ Date Author Description
fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo); fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo);
setFormData(document.querySelector('#frm'), {...res.ctznDTO, ...res.payerDTO, ...res.infoDTO}); setFormData(document.querySelector('#frm'), {...res.ctznDTO, ...res.payerDTO, ...res.infoDTO});
schParam = {
regltId: res.infoDTO?.regltId,
regltSeCode: res.infoDTO?.regltSeCode
}
orgData = $('form').serialize(); orgData = $('form').serialize();
} }
}) })
@ -579,10 +588,32 @@ Date Author Description
,showCrackdownVhcleNoCnt: (cnt) => { ,showCrackdownVhcleNoCnt: (cnt) => {
if(cnt > 0) { if(cnt > 0) {
$('#vhcleNoCnt').html(cnt); $('#vhcleNoCnt').html(cnt);
$('#markdownCnt').show(); $('#crackdown').show();
}else{ }else{
$('#markdownCnt').hide(); $('#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);
*/
} }
}; };

@ -13,6 +13,8 @@ Date Author Description
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%> <%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
<c:set var="citizen" value="<%= FimsConst.RegltSeCode.CITIZEN.getCode() %>"/> <c:set var="citizen" value="<%= FimsConst.RegltSeCode.CITIZEN.getCode() %>"/>
<c:set var="ctznCmpl" value="<%= FimsConst.MinwonGubunCode.COMPLAIN.getCode() %>"/>
<c:set var="vhcleNoCmpl" value="<%= FimsConst.MinwonGubunCode.VHCLE_NO_CMPL.getCode() %>"/>
<style> <style>
#regltProcessSttusCode { #regltProcessSttusCode {
@ -34,10 +36,43 @@ Date Author Description
<%--2022.10.05 박소영 웹폰트 링크 추가--%> <%--2022.10.05 박소영 웹폰트 링크 추가--%>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet">
<div class="conttitle"> <div style="display: flex" class="conttitle">
<img src="${ctx }/resources/biz/content/images/common/main/titleLogo_01.png"/> <img src="${ctx }/resources/biz/content/images/common/main/titleLogo_01.png"/>
<p class="title">개별총정보</p> <p class="title">개별총정보</p>
<%-- <%@include file="/WEB-INF/jsp/framework/biz-popup-tab-btn.jsp" %>--%> <%-- <%@include file="/WEB-INF/jsp/framework/biz-popup-tab-btn.jsp" %>--%>
<div class="popup_btn">
<div class="flr p_flr">
<!--
<a href="#" class="btn blue" id="prev">prev</a>
<span id="totCnt" style="padding: 0 10px;"></span>
<a href="#" class="btn blue" id="next">next</a>
-->
<button type="button" id="double_prev" name="double_prev">
<img src="/resources/images/btn/double_prev.png"/>
</button>
<button type="button" id="prev" name="prev">
<img src="/resources/images/btn/btn_prev.png"/>
</button>
<span id="totCnt" style="padding: 0 10px;"></span>
<button type="button" id="next" name="next">
<img src="/resources/images/btn/btn_next.png"/>
</button>
<button type="button" id="double_next" name="double_next">
<img src="/resources/images/btn/double_next.png"/>
</button>
</div>
<c:choose>
<c:when test="${isUpdate}">
<a href="#" class="btn blue" id="btnModify">변경</a>
<a href="#" class="btn red" id="btnRemove">삭제</a>
</c:when>
<c:otherwise>
<a href="#" class="btn blue" id="btnRegist">등록</a>
</c:otherwise>
</c:choose>
<a href="#" id='btnClose' class="btn lightgray">닫기</a>
</div>
</div> </div>
<div class="row"> <div class="row">
@ -579,8 +614,7 @@ Date Author Description
<div class="box mT_02"> <div class="box mT_02">
<div class="w_fix04 gridGroup"> <div class="w_fix04 gridGroup">
<p class="title deco_01">민원 내용</p> <p class="title deco_01">민원 내용</p>
<input type="hidden" id="content" name="content"> <textarea id="content0" name="content0" cols="0" rows="15" style="overflow-y: scroll; width:100%;"></textarea>
<textarea id="content1" name="content1" cols="0" rows="15" style="overflow-y: scroll; width:100%;"></textarea>
<div class="popup_btn_02"> <div class="popup_btn_02">
<span> <span>
<a href="#" class="btn blue" id="btnMinWonRegist" style="display: none;">등록</a> <a href="#" class="btn blue" id="btnMinWonRegist" style="display: none;">등록</a>
@ -593,7 +627,7 @@ Date Author Description
<div class="box mT_02"> <div class="box mT_02">
<div class="w_fix04 gridGroup"> <div class="w_fix04 gridGroup">
<p class="title deco_01">차량번호 민원 내용</p> <p class="title deco_01">차량번호 민원 내용</p>
<textarea id="content2" name="content2" cols="0" rows="15" style="overflow-y: scroll; width:100%;"></textarea> <textarea id="content1" name="content1" cols="0" rows="15" style="overflow-y: scroll; width:100%;"></textarea>
<div class="popup_btn_02"> <div class="popup_btn_02">
<span> <span>
<a href="#" class="btn blue" id="btnCarMinWonRegist" style="display: none;">등록</a> <a href="#" class="btn blue" id="btnCarMinWonRegist" style="display: none;">등록</a>
@ -614,7 +648,7 @@ Date Author Description
<%-- </div>--%> <%-- </div>--%>
</div> </div>
</div><!--popupTabs --> </div><!--popupTabs -->
<%@include file="/WEB-INF/jsp/framework/biz-popup-tab-btn.jsp" %> <%-- <%@include file="/WEB-INF/jsp/framework/biz-popup-tab-btn.jsp" %>--%>
</div><!--row --> </div><!--row -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/framework/js/cmm/cmmDownloadImg.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/resources/framework/js/cmm/cmmDownloadImg.js"></script>
@ -626,6 +660,8 @@ Date Author Description
var imageEditorPopup = (flag, params) => fnPopupBiz.pagePopup(flag, params); var imageEditorPopup = (flag, params) => fnPopupBiz.pagePopup(flag, params);
var callbackReloadImage = () => fnPopupBiz.downloadImg(); var callbackReloadImage = () => fnPopupBiz.downloadImg();
let orgData; let orgData;
// 처리상태 변경 이력 / 주소 변동이력 / 전자고지 발송 이력 / 민원 등록 이력 / 차량 번호 민원 등록 이력
const ARR_TAP_GRID = [null,null,null,null,null]; const ARR_TAP_GRID = [null,null,null,null,null];
const ARR_TAP_NAV = [null,null,null,null,null]; const ARR_TAP_NAV = [null,null,null,null,null];
const ARR_TAP_TOTCNT = [0, 0, 0, 0, 0]; const ARR_TAP_TOTCNT = [0, 0, 0, 0, 0];
@ -741,7 +777,48 @@ Date Author Description
} }
} }
,reloadGrid: (idx) => { ,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', () => { $('#btnMinWonNew').on('click', () => {
$('#content').val(''); fnPopupBiz.resetMinwonBtn('${ctznCmpl}', true);
$('#content1').val('');
$("#btnMinWonRegist").show();
}); });
$('#btnCarMinWonNew').on('click', () => { $('#btnCarMinWonNew').on('click', () => {
$('#content').val(''); fnPopupBiz.resetMinwonBtn('${vhcleNoCmpl}', true);
$('#content2').val('');
$("#btnCarMinWonRegist").show();
}); });
$('#btnMinWonRegist').on('click', () => { $('#btnMinWonRegist').on('click', () => {
$('#content').val($('#content1').val()); fnPopupBiz.addMinwon($('#content0').val(), '${ctznCmpl}');
const formData = $("#frmCmplt").serialize() + `&regltId=${param.regltId}&gubun=0`; fnPopupBiz.resetMinwonBtn('${ctznCmpl}', false);
cmmBizAjax('저장', {
url: fimsApiUrl.ADD_CTZN_STTEMNT_CMPLT
, data: formData
})
}); });
$('#btnCarMinWonRegist').on('click', () => { $('#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' align: 'center'
} }
]; ];
const vhcleNoCplntHisColumns = [ //Grid 컬럼 정보(명칭,매핑 field, 기타옵션 등) const vhcleNoCplntHisColumns = [
{ {
header: '등록일시', header: '내용',
name: 'registDt', name: 'content',
width: 90, minWidth: 150,
//editor: 'text',
sortable: true,
align: 'center'
},
// {
// header: '요일',
// name: 'registDt2',
// width: 90,
// //editor: 'text',
// sortable: true,
// align: 'center'
// },
{
header: '등록자',
name: 'register',
width: 90,
//editor: 'text', //editor: 'text',
sortable: false, 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: '차량번호', header: '차량번호',
name: 'vhcleNo', name: 'vhcleNo',
width: 90, minWidth: 90,
//editor: 'text', //editor: 'text',
sortable: false, sortable: false,
align: 'center' align: 'center'
}, },
{ {
header: '내용', header: '등록일시',
name: 'content', name: 'registDt',
width: 90, minWidth: 120,
//editor: 'text',
sortable: true,
align: 'center',
formatter({value}) {
return setDateTimeFmt(value);
}
},
{
header: '등록자',
name: 'register',
minWidth: 120,
//editor: 'text', //editor: 'text',
sortable: false, sortable: false,
align: 'center' align: 'center'
} }
]; ];
const cplntHisColumns = vhcleNoCplntHisColumns.filter((_, index) => index !== 3 ); const cplntHisColumns = vhcleNoCplntHisColumns.filter((_, index) => index !== 1 );
// 처리상태 변경 이력 DataSource // 처리상태 변경 이력 DataSource
const changStsHisDatasource = { const changStsHisDatasource = {
@ -1172,20 +1250,34 @@ Date Author Description
bodyHeight: 250, bodyHeight: 250,
}); });
// 처리상태 변동이력
ARR_TAP_GRID[0] = TuiGrid.of({...changStsHisOptions, columns: changeStsHisColumns}, changStsHisDatasource, (res) => { ARR_TAP_GRID[0] = TuiGrid.of({...changStsHisOptions, columns: changeStsHisColumns}, changStsHisDatasource, (res) => {
ARR_TAP_GRID[0].resetData([]); ARR_TAP_GRID[0].resetData([]);
ARR_TAP_GRID[0].refreshLayout(); ARR_TAP_GRID[0].refreshLayout();
}); });
// 주소 변동 이력
ARR_TAP_GRID[1] = TuiGrid.of({...addrHisOptions, el: 'grid_addr_his', columns: addrHisColumns}, addrHisDatasource, (res) => { 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] = 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) => { ARR_TAP_GRID[3] = TuiGrid.of({...etrnNotiHisOptions, el: 'grid_cplnt', columns: cplntHisColumns}, cplntHisDatasource, (res) => {
console.log(res); ARR_TAP_GRID[3].resetData([]);
ARR_TAP_GRID[3].resetData(res.data?.contents); 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] = 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) => { const gridResposeSet = (res, idx) => {

@ -1086,8 +1086,9 @@ header {
.conttitle img { .conttitle img {
width: 13px; width: 13px;
display: block; display: block;
float: left; align-items: baseline;
padding: 16px 9px 0px 10px; } /*float: left;*/
padding: 4px 4px 0px 10px; }
.shipmentInfo .titleBox_01 { .shipmentInfo .titleBox_01 {
width: 100px; width: 100px;

Loading…
Cancel
Save