feat: 초기자료 입력 > 민원이력 팝업 반영

main
Jonguk. Lim 2 years ago
parent 8f44db8db0
commit 97659f2ff9

@ -197,4 +197,14 @@ public class FimsCrackdownDTO {
private String updusr;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class CtznCmpltRequest {
private String regltId;
private String payerId;
private String vhcleNo;
}
}

@ -129,6 +129,16 @@ public class FimsCrackDownMgtController {
return mav;
}
@RequestMapping(value = "/cmmCtznComplaintHistPopup")
public ModelAndView cmmCtznComplaintHistPopup(final FimsCrackdownDTO.CtznCmpltRequest dto){
ModelAndView mav = new ModelAndView();
mav.addObject("param", dto);
mav.addObject("pageTitle", "민원 이력 ");
mav.setViewName(FimsConst.FIMS_JSP_BASE_PATH + "cmm/cmmCtznComplaintHistPopup.popup");
return mav;
}
@RequestMapping(value = "/findCrackdownInfos")
public ModelAndView findCrackdownInfos(@RequestParam final Map<String,Object> paraMap) {
return ResultResponse.of(service.findCrackdownInfos(paraMap, MybatisUtils.getPagingInfo(paraMap)));

@ -110,7 +110,6 @@ public class RtDTO {
/**
*
*/
@MaskRequired(type = MaskingType.NAME)
private String vhcleNo;
/**
*

@ -66,16 +66,19 @@
, (SELECT COUNT(reglt_id)
FROM tb_rt_reglt tgt
WHERE tgt.vhcle_no = trr.vhcle_no
AND NOT NULLIF(trr.vhcle_no, '') IS NULL
) AS vhcleNoCnt
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 NOT NULLIF(payer_id, '') IS NULL
AND payer_id = trr.payer_id
)
OR tgt.vhcle_no = trr.vhcle_no
OR (
NOT NULLIF(trr.vhcle_no, '') IS NULL
AND tgt.vhcle_no = trr.vhcle_no
)
) AS minwonCnt
FROM tb_rt_reglt trr
LEFT JOIN tb_ec_extrl_reglt_cntc teerc

@ -0,0 +1,224 @@
<%--
================================================================================
File : /fims/biz/cmm/cmmCtznComplaintHistPopup.jsp
Name : 단속현황 시민 민원 이력 팝업 - 단속관리>초기자료 편집
Auth : lim.jong.uk
Date : 2023-03-20
Desc : 단속현황 시민 민원 이력 팝업
================================================================================
Date Author Description
================================================================================
================================================================================
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
<div class="popup" style="min-width: 100px;">
<div class="popup_inner_02" style="max-width: 800px;">
<p class="pop_title">
민원 이력
</p>
<div class="w_fix05">
<div class="w_fix04 gridGroup">
<div style="width: 100%; border:0px solid black">
<p class="title deco_01">개별자료 민원 등록내역</p>
<div id="grid_cplnt"></div>
</div>
</div>
<div class="w_fix04 gridGroup">
<div style="width: 100%; border:0px solid black">
<p class="title deco_01">차량번호 민원 등록내역</p>
<div id="grid_vhcle_no_cplnt"></div>
</div>
</div>
</div>
<div class="w_fix05">
<div class="box mT_02">
<div class="w_fix04 gridGroup">
<p class="title deco_01">민원 내용</p>
<textarea id="content0" name="content0" cols="0" rows="5" style="overflow-y: scroll; width:100%;"></textarea>
</div>
</div><%--box--%>
<div class="box mT_02">
<div class="w_fix04 gridGroup">
<p class="title deco_01">차량번호 민원 내용</p>
<textarea id="content1" name="content1" cols="0" rows="5" style="overflow-y: scroll; width:100%;"></textarea>
</div>
</div><%--box--%>
</div>
<div class="popup_btn">
<div class="flr p_flr">
<span>
<a href="#" id='btnClose' class="btn lightgray">닫기</a>
</span>
</div>
</div>
</div><!--row -->
</div>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
// 민원 등록 이력 / 차량 번호 민원 등록 이력
const ARR_TAP_GRID = [null,null];
const ARR_TAP_TOTCNT = [0, 0];
let CUR_TAB_SEQ = 0;
/* *******************************
* Biz function
******************************* */
const fnPopupBiz = {
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);
}
}
};
/**************************************************************************
* event
**************************************************************************/
$(() => {
$("#btnClose").on('click', () => {
window.close()
});
});
/* ******************************
* Grid
****************************** */
const initPopupGrid = () => {
const vhcleNoCplntHisColumns = [
{
header: '내용',
name: 'content',
minWidth: 150,
//editor: 'text',
sortable: false,
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',
minWidth: 90,
//editor: 'text',
sortable: false,
align: 'center'
},
{
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 !== 1 );
// 민원 등록 이력 datasource
const cplntHisDatasource = {
initialRequest: true, // 화면 load시 조회 안함 - default
api: {
readData: {
url: fimsApiUrl.FIND_CTZN_STTEMNT_CMPLT
, serializer: (params) => getPageParam({gubun: 0, payerId: '${param.payerId}', regltId: '${param.regltId}'})
}
}
};
// 차량번호 민원 등록 이력 datasource
const vhcleNoCplntHisHisDatasource = {
initialRequest: true, // 화면 load시 조회 안함 - default
api: {
readData: {
url: fimsApiUrl.FIND_CTZN_STTEMNT_CMPLT
, serializer: (params) => getPageParam({gubun: 1, vhcleNo: '${param.vhcleNo}'})
}
}
};
const gridOptions = {
minBodyHeight: 200,
bodyHeight: 200, //[선택]Grid 높이 (number(단위: px)|'auto'|'fitToParent')
rowHeaders: ['rowNum'],
pageOptions: {
perPage: 100,
type: 'scroll'
}
};
// 민원 등록 내역
ARR_TAP_GRID[0] = TuiGrid.of({...gridOptions, el: 'grid_cplnt', columns: cplntHisColumns}, cplntHisDatasource, (res) => {
});
// 차량 번호 민원 등록 내역
ARR_TAP_GRID[1] = TuiGrid.of({...gridOptions, el: 'grid_vhcle_no_cplnt', columns: vhcleNoCplntHisColumns}, vhcleNoCplntHisHisDatasource, (res) => {
});
const gridResposeSet = (res, idx) => {
ARR_TAP_TOTCNT[idx] = res.data.pagination.totalCount;
$('#totCnt span').text(ARR_TAP_TOTCNT[idx]);
const gridInfo = ARR_TAP_NAV[idx]?.gridInfo;
if(gridInfo && gridInfo?.pageMove) {
let datas = res.data?.contents.map(d => {
return {content: d.content}
})
ARR_TAP_NAV[idx].resetGrid(res, datas, (pagiNavigation)=>{
ARR_TAP_NAV[idx] = pagiNavigation;
fnBiz.pagePopup(popupDiv, ARR_TAP_NAV[idx].gridInfo.curRowData);
})
}
}
};
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
initPopupGrid();
const param = {
regltId: '${param.regltId}'
,payerId: '${param.payerId}'
,vhcleNo: '${param.vhcleNo}'
}
});
</script>

@ -326,18 +326,13 @@ Date Author Description
);
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
);
$('#crackdownCnt').show();
}else{
$('#crackdownCnt').hide();
schParam = {
regltId: res.infoDTO?.regltId,
regltSeCode: res.infoDTO?.regltSeCode,
payerId: res.infoDTO.payerId,
vhcleNo: res.infoDTO.vhcleNo
}
*/
cmmImgDownload('#imgList', res.attchFiles, fnPopupBiz.pagePopup, true, '60px',
() => document.getElementById(curId).className += ' curImgData'
);
@ -346,10 +341,7 @@ 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();
}
})
@ -636,14 +628,11 @@ Date Author Description
// 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 url = fimsApiUrl.POPUP_CTZN_CMPLNT_HIST;
const popOption = {width: 800, height:600};
const popTitle = "민원 내역 조회";
const params = {regltId: schParam.regltId, payerId: schParam.payerId, vhcleNo:schParam.vhcleNo}
const p = CmmPopup.open(url, params, popOption, popTitle);
*/
}
};

@ -10,6 +10,7 @@ const fimsApiUrl = {
,POPUP_ENLIGHT_DISALLOW: '/fims/biz/cmm/cmmEnlightDisallowPopup.do' //서손 / 계도 처리 popup
,POPUP_IMPOSE: '/fims/biz/cmm/cmmImposePopup.do' //과태료시스템등록 popup
,POPUP_CTZN_ANS_PREVIEW: '/fims/biz/cmm/cmmCtznAnswerPreviewPopup.do' //시민신고 답변 미리보기 팝업 //과태료시스템등록 popup
,POPUP_CTZN_CMPLNT_HIST: '/fims/biz/cmm/cmmCtznComplaintHistPopup.do' //민원이력 팝업 //과태료시스템등록 popup
,FIND_CRACKDOWNS: '/fims/biz/cmm/findCrackdownInfos.do' //단속현황-외부연계자료목록
,FIND_CRACKDOWN_INFO: '/fims/biz/cmm/findCrackdownInfoAndAttchFiles.do' //단속현황-개별총정보 위반정보탭 조회
,FIND_CTZN_ANS_INFO: '/fims/biz/cmm/findCtznStmtAnswer.do' //시민신고 답변 정보 조회

Loading…
Cancel
Save