Merge branch 'dev-feat-filedownload'
commit
36edd62c63
@ -0,0 +1,56 @@
|
|||||||
|
package kr.xit.fims.biz.ec.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.ibatis.session.RowBounds;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import kr.xit.fims.biz.ec.mapper.IEcCtznSttemntMapper;
|
||||||
|
import kr.xit.fims.biz.ec.model.CtznStmtDTO;
|
||||||
|
import kr.xit.framework.biz.cmm.service.ICmmFileService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class EcCtznSttemntService implements IEcCtznSttemntService {
|
||||||
|
|
||||||
|
@Value("#{prop['file.upload.root']}")
|
||||||
|
private String uploadRoot;
|
||||||
|
|
||||||
|
@Value("#{prop['file.upload.natl-newspaper.path']}")
|
||||||
|
private String uploadNewsPaperPath;
|
||||||
|
|
||||||
|
private final IEcCtznSttemntMapper mapper;
|
||||||
|
|
||||||
|
private final ICmmFileService cmmFileService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public List<CtznStmtDTO> findCtznStmts(final Map<String, Object> paraMap, final RowBounds rowBounds) {
|
||||||
|
return mapper.selectEcCtznSttemnts(paraMap, rowBounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public CtznStmtDTO findCtznStmt(final CtznStmtDTO.Request dto) {
|
||||||
|
return mapper.selectEcCtznSttemnt(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public List<CtznStmtDTO.CtznStmtDtl> findCtznStmtDtls(final CtznStmtDTO.Request dto) {
|
||||||
|
return mapper.selectEcCtznSttemntDetails(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public CtznStmtDTO.CtznStmtDtl findCtznStmtDtl(final CtznStmtDTO.Request dto) {
|
||||||
|
return mapper.selectEcCtznSttemntDetail(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package kr.xit.fims.biz.ec.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.ibatis.session.RowBounds;
|
||||||
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
|
|
||||||
|
import kr.xit.fims.biz.ec.model.CtznStmtDTO;
|
||||||
|
import kr.xit.framework.core.utils.XitCmmnUtil;
|
||||||
|
|
||||||
|
public interface IEcCtznSttemntService {
|
||||||
|
List<CtznStmtDTO> findCtznStmts(final Map<String, Object> paraMap, final RowBounds rowBounds);
|
||||||
|
CtznStmtDTO findCtznStmt(final CtznStmtDTO.Request reqDTO);
|
||||||
|
List<CtznStmtDTO.CtznStmtDtl> findCtznStmtDtls(final CtznStmtDTO.Request reqDTO);
|
||||||
|
CtznStmtDTO.CtznStmtDtl findCtznStmtDtl(final CtznStmtDTO.Request reqDTO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
default String getUserUniqId(){
|
||||||
|
return XitCmmnUtil.getUserUniqId();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,86 @@
|
|||||||
|
package kr.xit.fims.biz.ec.web;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.Mapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import kr.xit.fims.biz.FimsConst;
|
||||||
|
import kr.xit.fims.biz.ec.model.CtznStmtDTO;
|
||||||
|
import kr.xit.fims.biz.ec.service.IEcCtznSttemntService;
|
||||||
|
import kr.xit.framework.biz.cmm.model.CmmFileDTO;
|
||||||
|
import kr.xit.framework.biz.cmm.service.ICmmFileService;
|
||||||
|
import kr.xit.framework.core.model.ResultResponse;
|
||||||
|
import kr.xit.framework.support.mybatis.MybatisUtils;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(value = "/fims/biz/ec")
|
||||||
|
public class EcCtznSttemntController {
|
||||||
|
@Value("#{prop['file.rcv.root']}")
|
||||||
|
private String fileRcvRoot;
|
||||||
|
|
||||||
|
@Value("#{prop['file.rcv.natl-newspaper.path']}")
|
||||||
|
private String rcvNatlNewspaperPath;
|
||||||
|
|
||||||
|
private final IEcCtznSttemntService service;
|
||||||
|
private final ICmmFileService fileService;
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = "/ecCtznSttemntMgtForm")
|
||||||
|
public void ecCtznSttemntMgtForm(){
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/ecCtznSttemntMgtPopup")
|
||||||
|
@ResponseBody
|
||||||
|
public ModelAndView ecCtznSttemntMgtPopup(final String interfaceSeqN){
|
||||||
|
ModelAndView mav = new ModelAndView(FimsConst.FIMS_JSP_BASE_PATH +"ec/ecCtznSttemntMgtPopup.popup");
|
||||||
|
|
||||||
|
CtznStmtDTO.Request reqDTO = CtznStmtDTO.Request.builder()
|
||||||
|
.interfaceSeqN(interfaceSeqN)
|
||||||
|
.ctznSttemntDetailSn("01").build();
|
||||||
|
mav.addObject("interfaceSeqN", interfaceSeqN);
|
||||||
|
mav.addObject("ctznStmtDTO", service.findCtznStmt(reqDTO));
|
||||||
|
mav.addObject("ctznStmtDtlDTOs", service.findCtznStmtDtls(reqDTO));
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/findCtznStmts")
|
||||||
|
public ModelAndView findCtznStmts(@RequestParam final Map<String,Object> paraMap) {
|
||||||
|
return ResultResponse.of(service.findCtznStmts(paraMap, MybatisUtils.getPagingInfo(paraMap)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping (value = "/findCtznStmtDtls")
|
||||||
|
public ModelAndView findCtznStmtDtls(final CtznStmtDTO.Request dto) {
|
||||||
|
return ResultResponse.of(service.findCtznStmtDtls(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/findCtznStmtDtl")
|
||||||
|
public ModelAndView findCtznStmtDtl(final CtznStmtDTO.Request dto) {
|
||||||
|
return ResultResponse.of(service.findCtznStmtDtl(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/findCtznStmtAttchFiles")
|
||||||
|
public ModelAndView findCtznStmtAttchFiles(final CtznStmtDTO.Request dto) {
|
||||||
|
return ResultResponse.of(
|
||||||
|
fileService.findFilesByEsbInterfaces(
|
||||||
|
CmmFileDTO.FileMst.builder()
|
||||||
|
.jobSeCode(FimsConst.FileJobSeCode.NATL_NEWS_PAPER_RCV.getCode())
|
||||||
|
.fileJobId(dto.getInterfaceSeqN()+dto.getCtznSttemntDetailSn())
|
||||||
|
.build()).stream()
|
||||||
|
.filter(dtl -> !Objects.equals("png", dtl.getFileExtsn()))
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,222 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp" %>
|
||||||
|
|
||||||
|
<form id="frmSearch" name="frmSearch">
|
||||||
|
<div class="search r2">
|
||||||
|
<table>
|
||||||
|
<caption>검색조건</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 400px;"/>
|
||||||
|
<col/>
|
||||||
|
<col/>
|
||||||
|
<col/>
|
||||||
|
<col/>
|
||||||
|
<col/>
|
||||||
|
<col/>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="5">
|
||||||
|
<label for="sysCode">시스템 구분</label>
|
||||||
|
<code:select codeId="FIM001" defaultSelect="PVS" id="sysCode" name="sysCode" title="시스템구분" cls="selectBox" alt="selectBox tag" disabled="true"/>
|
||||||
|
</td>
|
||||||
|
<td colspan="6">
|
||||||
|
<input type="button" id="btnSearch" class="btn_search" title="검색" value="검색"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<!-- //검색 -->
|
||||||
|
|
||||||
|
<div class="page_btn">
|
||||||
|
<span class="fll">
|
||||||
|
<div class="list clearfix" id="totCnt">전체 ㅣ <span></span></div>
|
||||||
|
</span>
|
||||||
|
<span class="flr">
|
||||||
|
<a href="#" class="btn darkgray" id="btnRegist" title="템플릿 등록">등록</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<!-- //버튼 및 페이지정보 -->
|
||||||
|
|
||||||
|
<!-- 데이터 출력 -->
|
||||||
|
<div id="grid"></div>
|
||||||
|
|
||||||
|
<script type="text/javaScript">
|
||||||
|
/**************************************************************************
|
||||||
|
* Global Variable
|
||||||
|
**************************************************************************/
|
||||||
|
let GRID = null;
|
||||||
|
var callbackSearch = () => fnBiz.search();
|
||||||
|
|
||||||
|
|
||||||
|
/* *******************************
|
||||||
|
* Biz function
|
||||||
|
******************************* */
|
||||||
|
const fnBiz = {
|
||||||
|
search: () => {
|
||||||
|
GRID.reloadData();
|
||||||
|
}
|
||||||
|
,pagePopup: function(flag, params){
|
||||||
|
let url;
|
||||||
|
let popTitle;
|
||||||
|
let popOption;
|
||||||
|
switch (flag) {
|
||||||
|
case "detail":
|
||||||
|
url = '<c:url value="/fims/biz/ec/ecCtznSttemntMgtPopup.do"/>';
|
||||||
|
popOption = {width: 1000, height:900};
|
||||||
|
popTitle = "주민 신고 데이타 상세";
|
||||||
|
break;
|
||||||
|
case "file":
|
||||||
|
url = '<c:url value="/fims/biz/ec/ecNatlNewspaperFileSelPopup.do"/>';
|
||||||
|
popOption = {width: 900, height:750};
|
||||||
|
popTitle = "주민 신고 데이타 선택";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CmmPopup.open(url, params, popOption, popTitle);
|
||||||
|
}
|
||||||
|
,onClickGrid: function(props){
|
||||||
|
const rowData = props.grid.getRow(props.rowKey);
|
||||||
|
fnBiz.pagePopup('detail', {interfaceSeqN: rowData.interfaceSeqN});
|
||||||
|
}
|
||||||
|
// ,onSearchChange: () => {
|
||||||
|
// if($('#searchCondition').val() === 'tmplatSeCode'){
|
||||||
|
// $('select[name="searchKeyword"]')
|
||||||
|
// .css('display', 'inline-block')
|
||||||
|
// .attr('disabled', false);
|
||||||
|
// $('input[name="searchKeyword"]')
|
||||||
|
// .css('display', 'none')
|
||||||
|
// .attr('disabled', true);
|
||||||
|
// }else{
|
||||||
|
// $('select[name="searchKeyword"]')
|
||||||
|
// .css('display', 'none')
|
||||||
|
// .attr('disabled', true);
|
||||||
|
// $('input[name="searchKeyword"]')
|
||||||
|
// .css('display', 'inline-block')
|
||||||
|
// .attr('disabled', false);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* event
|
||||||
|
**************************************************************************/
|
||||||
|
$(() => {
|
||||||
|
$('#btnSearch').on('click', () => fnBiz.search());
|
||||||
|
|
||||||
|
$('#btnRegist').on('click', () => {
|
||||||
|
fnBiz.pagePopup('file');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
/* *******************************
|
||||||
|
* Grid
|
||||||
|
******************************* */
|
||||||
|
const initGrid = () => {
|
||||||
|
const gridColumns = [
|
||||||
|
{
|
||||||
|
header: '인터페이스키',
|
||||||
|
name: 'interfaceSeqN',
|
||||||
|
minWidth: 200,
|
||||||
|
sortable: true,
|
||||||
|
sortingType: 'desc',
|
||||||
|
align: 'center',
|
||||||
|
renderer: {
|
||||||
|
type: CustomButtonRenderer,
|
||||||
|
options: {
|
||||||
|
formatter: (props)=>{
|
||||||
|
return {
|
||||||
|
formatter: props.grid.getRow(props.rowKey).interfaceSeqN
|
||||||
|
,element: "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,eventFunction: fnBiz.onClickGrid
|
||||||
|
,eventType: "click"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '기관코드',
|
||||||
|
name: 'insttCode',
|
||||||
|
width: 80,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '시스템코드',
|
||||||
|
name: 'sysCode',
|
||||||
|
minWidth: 200,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '민원구분',
|
||||||
|
name: 'cvplSe',
|
||||||
|
minWidth: 200,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '민원신청번호',
|
||||||
|
name: 'cvplReqstNo',
|
||||||
|
minWidth: 200,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '민원접수번호',
|
||||||
|
name: 'cvplRceptNo',
|
||||||
|
minWidth: 200,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '시민신고처리상태',
|
||||||
|
name: 'ctznSttemntProcessSttus',
|
||||||
|
minWidth: 200,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: '민원등록일시',
|
||||||
|
name: 'cpvlRegistDt',
|
||||||
|
width: 160,
|
||||||
|
sortable: false,
|
||||||
|
align: 'center',
|
||||||
|
formatter({value}){
|
||||||
|
return setDateTimeFmt(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const gridOptions = {
|
||||||
|
el: 'grid',
|
||||||
|
rowHeaders: ['rowNum'],
|
||||||
|
columns: gridColumns
|
||||||
|
};
|
||||||
|
|
||||||
|
const gridDatasource = {
|
||||||
|
initialRequest: true, // 화면 load시 조회 안함 - default
|
||||||
|
api: {
|
||||||
|
readData: {
|
||||||
|
url: '<c:url value="/fims/biz/ec/findCtznStmts.do"/>'
|
||||||
|
,serializer: (params) => fnAddPageInfo(document.frmSearch, params)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
GRID = TuiGrid.of(gridOptions, gridDatasource, (res) => {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* initialize
|
||||||
|
**************************************************************************/
|
||||||
|
$(document).ready(function(){
|
||||||
|
initGrid();
|
||||||
|
});
|
||||||
|
</script>
|
@ -0,0 +1,313 @@
|
|||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp" %>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<c:set var="bizName" value="주민 신고 데이타"/>
|
||||||
|
|
||||||
|
<div class="popup" style="min-width: 100px;">
|
||||||
|
<div class="popup_inner" style="max-width: 1000px;">
|
||||||
|
<p class="pop_title">
|
||||||
|
<c:out value="${bizName}"/>(<c:out value="${ctznStmtDTO.interfaceSeqN}"/>) 상세
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<form name="frmStmt">
|
||||||
|
<table class="tbl03">
|
||||||
|
<caption><c:out value="${bizName}"/> 상세</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 13%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
<col style="width: 13%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
<col style="width: 13%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>기관코드</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="insttCode" value='<c:out value="${ctznStmtDTO.insttCode}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>시스템코드</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="sysCode" value='<c:out value="${ctznStmtDTO.sysCode}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>민원구분</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="cvplSe" value='<c:out value="${ctznStmtDTO.cvplSe}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>민원신청번호</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="petiAncCodeV" value='<c:out value="${ctznStmtDTO.cvplReqstNo}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>민원접수번호</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="petiNoC" value='<c:out value="${ctznStmtDTO.cvplRceptNo}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>민원신청인명</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="civilNoC" value='<c:out value="${ctznStmtDTO.cvplApplcntNm}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청인이메일</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="peterNameV" value='<c:out value="${ctznStmtDTO.cvplApplcntEmailAdres}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>신청인우편번호</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="zipCodeC" value='<c:out value="${ctznStmtDTO.cvplApplcntZip}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>신청인주소</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="addressV" value='<c:out value="${ctznStmtDTO.cvplApplcntAdres}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청인핸드폰</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="celNoV" value='<c:out value="${ctznStmtDTO.cvplApplcntMoblphonNo}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>신청인전화</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="telNoV" value='<c:out value="${ctznStmtDTO.cvplApplcntTlphonNo}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>처리상태</th>
|
||||||
|
<td>
|
||||||
|
<input type="text" name="telNoV" value='<c:out value="${ctznStmtDTO.ctznSttemntProcessSttus}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>민원신청제목</th>
|
||||||
|
<td colspan="5">
|
||||||
|
<input type="text" name="petiTitleV" value='<c:out value="${ctznStmtDTO.cvplReqstSj}"/>' readonly>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>민원신청내용</th>
|
||||||
|
<td colspan="5">
|
||||||
|
<textarea name="petiReasonL" rows="10" readonly><c:out value="${ctznStmtDTO.cvplReqstCn}" /></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>민원신청일시</th>
|
||||||
|
<td>
|
||||||
|
<fmt:parseDate value="${ctznStmtDTO.cvplRceptDt}" var="cvplRceptDt" pattern="yyyyMMddHHmmss"/>
|
||||||
|
<input type="text" name="cvplRceptDt" value='<fmt:formatDate value="${cvplRceptDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>민원처리기간</th>
|
||||||
|
<td>
|
||||||
|
<fmt:parseDate value="${ctznStmtDTO.cvplProcessPd}" var="cvplProcessPd" pattern="yyyyMMddHHmmss"/>
|
||||||
|
<input type="text" name="cvplProcessPd" value='<fmt:formatDate value="${cvplProcessPd}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
|
||||||
|
</td>
|
||||||
|
<th>민원등록일시</th>
|
||||||
|
<td>
|
||||||
|
<fmt:parseDate value="${ctznStmtDTO.cvplRegistDt}" var="cvplRegistDt" pattern="yyyyMMddHHmmss"/>
|
||||||
|
<input type="text" name="cvplRegistDt" value='<fmt:formatDate value="${cvplRegistDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<%-- <tr>--%>
|
||||||
|
<%-- <th>등록일시</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <fmt:parseDate value="${ctznStmtDTO.registDt}" var="registDt" pattern="yyyyMMddHHmmss"/>--%>
|
||||||
|
<%-- <input type="text" name="registDt" value="<fmt:formatDate value="${registDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>등록인</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="sendYnC" value='<c:out value="${ctznStmtDTO.register}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- </tr>--%>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<form name="frmStmtDtl">
|
||||||
|
<table class="tbl03">
|
||||||
|
<caption><c:out value="${bizName}"/> 상세</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 13%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
<col style="width: 13%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
<col style="width: 13%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<%-- <c:forEach var="dtlDTO" items="ctznStmtDtlDTOs">--%>
|
||||||
|
<tr>
|
||||||
|
<th>차량번호</th>
|
||||||
|
<td>
|
||||||
|
<%-- <c:out value="${dtlDTO.vhcleNo}"/>--%>
|
||||||
|
<%-- <input type="text" name="vhcleNo" value="${dtlDTO.vhcleNo}" readonly>--%>
|
||||||
|
<%-- <input type="text" name="vhcleNo" value='<c:out value="${dtlDTO.vhcleNo}"/>' readonly>--%>
|
||||||
|
</td>
|
||||||
|
<th>순번</th>
|
||||||
|
<td>
|
||||||
|
<%-- <input type="text" name="ctnzSttemntDetailSn" value='<c:out value="${dtlDTO.ctnzSttemntDetailSn}"/>' readonly>--%>
|
||||||
|
<%-- <input type="text" name="ctnzSttemntDetailSn" value='jjj' readonly>--%>
|
||||||
|
</td>
|
||||||
|
<%-- <th>단속ID</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="cvplSe" value='<c:out value="${dtlDTO.regltId}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
</tr>
|
||||||
|
<%-- </c:forEach>--%>
|
||||||
|
<%-- <tr>--%>
|
||||||
|
<%-- <th>단속일시</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <fmt:parseDate value="${dtlDTO.regltDeTime}" var="regltDeTimet" pattern="yyyyMMddHHmmss"/>--%>
|
||||||
|
<%-- <input type="text" name="regltDeTime" value="<fmt:formatDate value="${regltDeTime}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>단속장소</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="petiNoC" value='<c:out value="${dtlDTO.regltPlace}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>위반내역</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="civilNoC" value='<c:out value="${dtlDTO.violtDtlsNm}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- </tr>--%>
|
||||||
|
<%-- <tr>--%>
|
||||||
|
<%-- <th>GPS위도</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="peterNameV" value='<c:out value="${dtlDTO.gpsX}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>GPS경도</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="zipCodeC" value='<c:out value="${dtlDTO.gpsY}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>기관코드</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="addressV" value='<c:out value="${dtlDTO.insttCode}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- </tr>--%>
|
||||||
|
<%-- <tr>--%>
|
||||||
|
<%-- <th>과태료코드</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="celNoV" value='<c:out value="${dtlDTO.sysCode}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>처리상태</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <input type="text" name="telNoV" value='<c:out value="${dtlDTO.ctznSttemntDetailProcessSttus}"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- <th>등록일시</th>--%>
|
||||||
|
<%-- <td>--%>
|
||||||
|
<%-- <fmt:parseDate value="${dtlDTO.registDt}" var="registDt" pattern="yyyyMMddHHmmss"/>--%>
|
||||||
|
<%-- <input type="text" name="registDt" value="<fmt:formatDate value="${registDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>--%>
|
||||||
|
<%-- </td>--%>
|
||||||
|
<%-- </tr>--%>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<div id="ctznImg"></div>
|
||||||
|
<div class="popup_btn">
|
||||||
|
<span class="flr p_flr">
|
||||||
|
<a href="#" class="btn lightgray" onclick="window.close()">닫기</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<!-- //등록버튼 -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //popup -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
/**************************************************************************
|
||||||
|
* Global Variable
|
||||||
|
**************************************************************************/
|
||||||
|
// let orgData;
|
||||||
|
|
||||||
|
|
||||||
|
/* *******************************
|
||||||
|
* Biz function
|
||||||
|
******************************* */
|
||||||
|
const fnBiz = {
|
||||||
|
downloadImg: () => {
|
||||||
|
|
||||||
|
//ctznStmtDtlDTO
|
||||||
|
|
||||||
|
cmmAjax({
|
||||||
|
showSuccessMsg: false
|
||||||
|
,url: '<c:url value="/fims/biz/ec/findNatlNewspaperAttchFiles.do"/>'
|
||||||
|
,data: {interfaceSeqN: '${interfaceSeqN}'}
|
||||||
|
,success: (res) => {
|
||||||
|
const url = '<c:url value="/framework/biz/cmm/file/download.do"/>';
|
||||||
|
res.data?.contents.forEach((dtl, idx) => {
|
||||||
|
|
||||||
|
fetch(
|
||||||
|
url
|
||||||
|
, {
|
||||||
|
method: 'post'
|
||||||
|
, body: JSON.stringify(dtl)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then((response) => response.blob())
|
||||||
|
.then((blob) => {
|
||||||
|
const url = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
var x = document.createElement("img");
|
||||||
|
x.setAttribute("src", url);
|
||||||
|
//x.style = 'width:150px; display: block;';
|
||||||
|
x.style = 'height:150px;';
|
||||||
|
//x.setAttribute("width", "304");
|
||||||
|
//x.setAttribute("height", "228");
|
||||||
|
x.setAttribute("alt", dtl.orginlFileNm);
|
||||||
|
document.querySelector('#ctznImg').appendChild(x);
|
||||||
|
|
||||||
|
// Revoke Blob URL after DOM updates..
|
||||||
|
//window.URL.revokeObjectURL(objectURL);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
viewImg: () => {
|
||||||
|
cmmAjax({
|
||||||
|
showSuccessMsg: false
|
||||||
|
,url: '<c:url value="/fims/biz/ec/findCtznStmtDtls.do"/>'
|
||||||
|
,data: {interfaceSeqN: '${interfaceSeqN}'}
|
||||||
|
,success: (res) => {
|
||||||
|
res.data.contents?.forEach((dto) => {
|
||||||
|
console.log('',dto.vhcleNo)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* event
|
||||||
|
**************************************************************************/
|
||||||
|
$(() => {
|
||||||
|
$('img').on('click', () => {
|
||||||
|
fnBiz.viewImg()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* initialize
|
||||||
|
**************************************************************************/
|
||||||
|
$(document).ready(function () {
|
||||||
|
// orgData = $('form').serialize();
|
||||||
|
// fnBiz.downloadImg();
|
||||||
|
<%-- console.log('eeee');--%>
|
||||||
|
<%-- fnBiz.viewImg();--%>
|
||||||
|
<%-- //CtznStmtDTO.CtznStmtDtl--%>
|
||||||
|
<%-- <c:forEach var="dto" items="${ctznStmtDtlDTOs}">--%>
|
||||||
|
<%-- '<c:out value="${dto.vhcleNo}"/>';--%>
|
||||||
|
<%-- '<c:out value="${dto.ctnzSttemntDetailSn}"/>';--%>
|
||||||
|
<%-- <c:out value="111"/>--%>
|
||||||
|
<%-- </c:forEach>--%>
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
Loading…
Reference in New Issue