단속자료 초기셋팅
parent
c0e22f00ce
commit
33f01c8ed0
@ -0,0 +1,66 @@
|
||||
package go.kr.project.ma30.controller;
|
||||
|
||||
import egovframework.constant.TilesConstants;
|
||||
import egovframework.util.ApiResponseUtil;
|
||||
import egovframework.util.SessionUtil;
|
||||
import go.kr.project.ma30.model.Ma30FindListVO;
|
||||
import go.kr.project.ma30.model.Ma30FindRlistSearchVO;
|
||||
import go.kr.project.ma30.service.Ma30Service;
|
||||
import go.kr.project.system.loginLog.model.LoginLogVO;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* packageName : go.kr.project.system.user.controller
|
||||
* fileName : UserController
|
||||
* author : 박성영
|
||||
* date : 25. 5. 7.
|
||||
* description : 사용자 관리 컨트롤러
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25. 5. 7. 박성영 최초 생성
|
||||
*/
|
||||
@RequestMapping("/ma30")
|
||||
@Controller
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class Ma30Controller {
|
||||
|
||||
private final Ma30Service ma30Service;
|
||||
|
||||
@GetMapping("/list.do")
|
||||
public String listPage(Model model) {
|
||||
return "ma30/list"+ TilesConstants.BASE;
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/list.ajax")
|
||||
public ResponseEntity<?> listAjax(@ModelAttribute Ma30FindRlistSearchVO paramVO) {
|
||||
|
||||
paramVO.setCurrentUserId(SessionUtil.getUserId());
|
||||
paramVO.setCurrentUserOrgCd(SessionUtil.getSessionVO().getUser().getOrgCd());
|
||||
|
||||
// 로그인 로그 목록 조회
|
||||
int totalCount = ma30Service.findListCount(paramVO);
|
||||
paramVO.setTotalCount(totalCount);
|
||||
|
||||
// 페이징 처리를 위한 설정
|
||||
paramVO.setPagingYn("Y");
|
||||
List<Ma30FindListVO> list = ma30Service.findList(paramVO);
|
||||
|
||||
return ApiResponseUtil.successWithGrid(list, paramVO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package go.kr.project.ma30.service;
|
||||
|
||||
import go.kr.project.ma30.model.Ma30FindListVO;
|
||||
import go.kr.project.ma30.model.Ma30FindRlistSearchVO;
|
||||
import go.kr.project.system.group.model.GroupSearchVO;
|
||||
import go.kr.project.system.group.model.GroupVO;
|
||||
import go.kr.project.system.user.model.SystemUserSearchVO;
|
||||
import go.kr.project.system.user.model.SystemUserVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* packageName : go.kr.project.system.user.service.impl
|
||||
* fileName : UserService
|
||||
* author : 박성영
|
||||
* date : 25. 5. 7.
|
||||
* description : 사용자 관련 비즈니스 로직을 처리하는 서비스 인터페이스
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25. 5. 7. 박성영 최초 생성
|
||||
*/
|
||||
public interface Ma30Service {
|
||||
|
||||
int findListCount(Ma30FindRlistSearchVO searchVO);
|
||||
|
||||
List<Ma30FindListVO> findList(Ma30FindRlistSearchVO searchVO);
|
||||
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package go.kr.project.ma30.service.impl;
|
||||
|
||||
import go.kr.project.ma30.mapper.Ma30Mapper;
|
||||
import go.kr.project.ma30.model.Ma30FindListVO;
|
||||
import go.kr.project.ma30.model.Ma30FindRlistSearchVO;
|
||||
import go.kr.project.ma30.service.Ma30Service;
|
||||
import go.kr.project.system.group.model.GroupSearchVO;
|
||||
import go.kr.project.system.group.model.GroupVO;
|
||||
import go.kr.project.system.user.mapper.UserMapper;
|
||||
import go.kr.project.system.user.model.SystemUserSearchVO;
|
||||
import go.kr.project.system.user.model.SystemUserVO;
|
||||
import go.kr.project.system.user.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* packageName : go.kr.project.system.user.service.impl
|
||||
* fileName : UserServiceImpl
|
||||
* author : 박성영
|
||||
* date : 25. 5. 7.
|
||||
* description : 사용자 관련 비즈니스 로직을 처리하는 서비스 구현체
|
||||
* ===========================================================
|
||||
* DATE AUTHOR NOTE
|
||||
* -----------------------------------------------------------
|
||||
* 25. 5. 7. 박성영 최초 생성
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class Ma30ServiceImpl extends EgovAbstractServiceImpl implements Ma30Service {
|
||||
|
||||
private final Ma30Mapper ma30Mapper;
|
||||
|
||||
|
||||
@Override
|
||||
public int findListCount(Ma30FindRlistSearchVO searchVO) {
|
||||
return ma30Mapper.findListCount(searchVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Ma30FindListVO> findList(Ma30FindRlistSearchVO searchVO) {
|
||||
return ma30Mapper.findList(searchVO);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,329 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%@ taglib prefix="dateUtil" uri="http://egovframework.go.kr/functions/date-util" %>
|
||||
|
||||
|
||||
<!-- Main body -->
|
||||
<div class="main_body">
|
||||
<section id="section8" class="main_bars">
|
||||
<div class="bgs-main">
|
||||
<section id="section5">
|
||||
<div class="sub_title"></div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
<div class="contants_body">
|
||||
<div class="gs_b_top">
|
||||
<ul class="lef">
|
||||
<li class="th">
|
||||
<input id="schDateChk" name="schDateChk" type="checkbox" style="width: 18px; height: 18px; padding-bottom: 15px;" value="1">
|
||||
일자검색 :
|
||||
</li>
|
||||
<li>
|
||||
<select id="schDayGubun" name="schDayGubun" title="일자구분" class="input">
|
||||
<option value="JOSA_ENDDT">적발일자</option>
|
||||
<option value="FST_WARNNING_ENDDT">사전통지</option>
|
||||
<option value="SND_WARNNING_ENDDT">시정명령</option>
|
||||
<option value="GOBAL_ENDDT">시정촉구</option>
|
||||
<option value="PRE_BUGWA_ENDDT">부과예고</option>
|
||||
<option value="BUGWA_ENDDT">부과</option>
|
||||
<option value="NAPBU_CHOKGU_ENDDT">납부촉구</option>
|
||||
<option value="A.RECOVER_DT">시정완료</option>
|
||||
<option value="YUYEENDDATE">유예기간</option>
|
||||
<option value="A.MNG_YY">연도</option>
|
||||
</select>
|
||||
<input type="text" id="schBeginGobalDt" name="schBeginGobalDt" class="input calender datepicker" value=""/> ~
|
||||
<input type="text" id="schEndGobalDt" name="schEndGobalDt" class="input calender datepicker" value="" />
|
||||
</li>
|
||||
<li class="th">법정동 :</li>
|
||||
<li><input type="text" id="schBdongName" name="schBdongName" maxlength="10" class="input"/></li>
|
||||
<li class="th">지번 :</li>
|
||||
<li>
|
||||
<input type="text" id="schBuldMnnm" name="schBuldMnnm" maxlength="10" class="input"/>
|
||||
-
|
||||
<input type="text" id="schBuldSlno" name="schBuldSlno" class="input">
|
||||
</li>
|
||||
<li class="th">소유주 :</li>
|
||||
<li><input type="text" id="schOResName" name="schOResName" maxlength="10" class="input"/></li>
|
||||
<li class="th">행위자 :</li>
|
||||
<li><input type="text" id="schHResName" name="schHResName" class="input"/></li>
|
||||
<li class="th">관리번호 :</li>
|
||||
<li><input type="text" id="schRegstrMngNo" name="schRegstrMngNo" class="input"/></li>
|
||||
</ul>
|
||||
<ul class="rig2">
|
||||
<li><button type="button" id="search_btn" class="newbtnss bg1">검색</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="gs_booking">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="box_column">
|
||||
<ul class="box_title" style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<li class="tit">단속자료 목록</li>
|
||||
<li style="text-align: right;">
|
||||
<select id="perPageSelect" class="input" style="width: 110px;">
|
||||
<option value="10">페이지당 10</option>
|
||||
<option value="20">페이지당 20</option>
|
||||
<option value="30">페이지당 30</option>
|
||||
</select>
|
||||
<span class="page_number"><span id="currentPage"></span><span class="bar">/</span><span id="totalPages"></span> Pages</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="containers">
|
||||
<div id="grid"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Main body -->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
/**
|
||||
* 로그인 로그 목록 관리 모듈
|
||||
* 로그인 로그 목록을 조회하고 관리하는 기능을 제공합니다.
|
||||
*/
|
||||
(function(window, $) {
|
||||
'use strict';
|
||||
|
||||
var SEARCH_COND = {};
|
||||
|
||||
// 검색정보 셋팅
|
||||
var setSearchCond = function() {
|
||||
var searchUserAcnt = $.trim(nvl($("#searchUserAcnt").val(), ""));
|
||||
var searchSuccessYn = $.trim(nvl($("#searchSuccessYn").val(), ""));
|
||||
var searchStartDt = $.trim(nvl($("#searchStartDt").val(), ""));
|
||||
var searchEndDt = $.trim(nvl($("#searchEndDt").val(), ""));
|
||||
var searchDeviceInfo = $.trim(nvl($("#searchDeviceInfo").val(), ""));
|
||||
|
||||
SEARCH_COND.searchUserAcnt = searchUserAcnt;
|
||||
SEARCH_COND.searchSuccessYn = searchSuccessYn;
|
||||
SEARCH_COND.searchStartDt = searchStartDt;
|
||||
SEARCH_COND.searchEndDt = searchEndDt;
|
||||
SEARCH_COND.searchDeviceInfo = searchDeviceInfo;
|
||||
};
|
||||
|
||||
/**
|
||||
* 로그인 로그 목록 관리 네임스페이스
|
||||
*/
|
||||
var Ma30List = {
|
||||
/**
|
||||
* 그리드 관련 객체
|
||||
*/
|
||||
grid: {
|
||||
/**
|
||||
* 그리드 인스턴스
|
||||
*/
|
||||
instance: null,
|
||||
|
||||
/**
|
||||
* 그리드 설정 초기화
|
||||
* @returns {Object} 그리드 설정 객체
|
||||
*/
|
||||
initConfig: function() {
|
||||
// 데이터 소스 설정
|
||||
var dataSource = this.createDataSource();
|
||||
|
||||
// 현재 선택된 perPage 값 가져오기
|
||||
var perPage = parseInt($('#perPageSelect').val() || 10, 10);
|
||||
|
||||
// 그리드 설정 객체 생성
|
||||
var gridConfig = new XitTuiGridConfig();
|
||||
|
||||
// 기본 설정
|
||||
gridConfig.setOptDataSource(dataSource); // 데이터소스 연결
|
||||
gridConfig.setOptGridId('grid'); // 그리드를 출력할 Element ID
|
||||
gridConfig.setOptGridHeight(390); // 그리드 높이(단위: px)
|
||||
gridConfig.setOptRowHeight(30); // 그리드 행 높이(단위: px)
|
||||
gridConfig.setOptRowHeaderType('rowNum'); // 행 첫번째 셀 타입(rowNum: 순번, checkbox: 체크박스, '': 출력 안함)
|
||||
gridConfig.setOptUseClientSort(false); // 서버사이드 정렬 false
|
||||
|
||||
// 페이징 옵션 설정
|
||||
gridConfig.setOptPageOptions({
|
||||
useClient: false, // 클라이언트 페이징 여부(false: 서버 페이징)
|
||||
perPage: perPage // 페이지당 표시 건수
|
||||
});
|
||||
|
||||
gridConfig.setOptHeader(this.getGridOptHeader());
|
||||
gridConfig.setOptColumns(this.getGridColumns());
|
||||
|
||||
return gridConfig;
|
||||
},
|
||||
|
||||
getGridOptHeader: function() {
|
||||
return {
|
||||
height: 60,
|
||||
complexColumns: [
|
||||
{
|
||||
header: '단속현황',
|
||||
name: 'dansokhyeonhwang',
|
||||
childNames: ['mngYy', 'regstrMngNo', 'mngNo', 'bdongName', 'posAddr', 'addrEtc']
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 그리드 컬럼 정의
|
||||
* @returns {Array} 그리드 컬럼 배열
|
||||
*/
|
||||
getGridColumns: function() {
|
||||
return [
|
||||
{
|
||||
header: '연도',
|
||||
name: 'mngYy',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
header: '관리번호',
|
||||
name: 'regstrMngNo',
|
||||
width: 100,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
header: '연번',
|
||||
name: 'mngNo',
|
||||
width: 60,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
header: '동',
|
||||
name: 'bdongName',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
header: '지번',
|
||||
name: 'posAddr',
|
||||
width: 80,
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
header: '상세주소',
|
||||
name: 'addrEtc',
|
||||
width: 150,
|
||||
align: 'left'
|
||||
},
|
||||
];
|
||||
},
|
||||
|
||||
/**
|
||||
* 데이터 소스 생성
|
||||
* @returns {Object} 데이터 소스 객체
|
||||
*/
|
||||
createDataSource: function() {
|
||||
return {
|
||||
api: {
|
||||
readData: {
|
||||
url: '<c:url value="/ma30/list.ajax"/>',
|
||||
method: 'POST',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
processData: true
|
||||
}
|
||||
},
|
||||
initialRequest: true, // 초기 데이터 요청 여부
|
||||
serializer: function(params) {
|
||||
// 기본 파라미터 (페이지 정보 등)
|
||||
var defaultParams = $.param(params);
|
||||
// 검색 폼 데이터
|
||||
setSearchCond();
|
||||
var searchParams = $.param(SEARCH_COND);
|
||||
// 모든 파라미터 조합
|
||||
console.log(defaultParams + '&' + searchParams);
|
||||
return defaultParams + '&' + searchParams;
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* 그리드 인스턴스 생성
|
||||
*/
|
||||
create: function() {
|
||||
var gridConfig = this.initConfig();
|
||||
var Grid = tui.Grid;
|
||||
this.instance = gridConfig.instance(Grid);
|
||||
|
||||
// 그리드 테마 설정
|
||||
Grid.applyTheme('striped');
|
||||
|
||||
// 그리드 이벤트 설정
|
||||
this.gridBindEvents();
|
||||
},
|
||||
|
||||
/**
|
||||
* 그리드 이벤트 바인딩
|
||||
*/
|
||||
gridBindEvents: function() {
|
||||
var self = this;
|
||||
|
||||
// 요청 성공 시 총 건수 표시
|
||||
this.instance.on('successResponse', function(ev) {
|
||||
var responseObj = JSON.parse(ev.xhr.response);
|
||||
$("#currentPage").text(responseObj.data.pagination.page);
|
||||
$("#totalPages").text(responseObj.data.pagination.totalPages);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 이벤트 핸들러 설정
|
||||
*/
|
||||
eventBindEvents: function() {
|
||||
var self = this;
|
||||
|
||||
|
||||
|
||||
// 검색 버튼 클릭 이벤트
|
||||
$('#search_btn').on('click', function() {
|
||||
// 페이지를 1로 리셋
|
||||
$("#page").val(1);
|
||||
// 그리드 데이터 리로드
|
||||
self.grid.instance.readData(1);
|
||||
});
|
||||
|
||||
// 검색어 입력 필드에서 엔터키 이벤트 처리
|
||||
$('#schForm input').on('keypress', function(e) {
|
||||
if (e.which === 13) { // 엔터키 코드는 13
|
||||
e.preventDefault(); // 기본 이벤트 방지
|
||||
$('#search_btn').trigger('click'); // 검색 버튼 클릭 이벤트 트리거
|
||||
}
|
||||
});
|
||||
|
||||
// perPage 변경 이벤트 추가
|
||||
$('#perPageSelect').on('change', function() {
|
||||
var perPage = parseInt($(this).val(), 10);
|
||||
// Grid의 perPage 설정 변경 및 데이터 리로드
|
||||
self.grid.instance.setPerPage(perPage);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 모듈 초기화
|
||||
*/
|
||||
init: function() {
|
||||
// 그리드 생성
|
||||
this.grid.create();
|
||||
|
||||
// 이벤트 핸들러 설정
|
||||
this.eventBindEvents();
|
||||
}
|
||||
};
|
||||
|
||||
// 페이지 로드 시 초기화
|
||||
$(function() {
|
||||
Ma30List.init();
|
||||
});
|
||||
|
||||
// 전역 네임스페이스에 모듈 노출
|
||||
window.Ma30List = Ma30List;
|
||||
|
||||
})(window, jQuery);
|
||||
</script>
|
||||
Loading…
Reference in New Issue