관리자 > (메인)검수등록대기건수 > 입력중인프로젝트 현황 목록 - 페이징처리,소팅처리
parent
694733546d
commit
cfedd0a719
|
|
@ -70,12 +70,36 @@ public class ListRegController {
|
||||||
String searchUserName = sUtil.checkNull(parseData.parseData((String)params.get("searchUserName")));
|
String searchUserName = sUtil.checkNull(parseData.parseData((String)params.get("searchUserName")));
|
||||||
//request
|
//request
|
||||||
System.out.println("searchProjectName:"+request.getParameter("searchProjectName"));
|
System.out.println("searchProjectName:"+request.getParameter("searchProjectName"));
|
||||||
|
|
||||||
|
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1;
|
||||||
|
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : 10; // 기본값 10
|
||||||
|
|
||||||
|
// 정렬 필드/방향 처리
|
||||||
|
String sortField = (String) params.get("sort[0][field]");
|
||||||
|
String sortDir = (String) params.get("sort[0][dir]");
|
||||||
|
|
||||||
|
// 기본 정렬 지정 (없을 경우)
|
||||||
|
if (sortField == null || sortField.isEmpty()) sortField = "datetime";
|
||||||
|
if (sortDir == null || sortDir.isEmpty()) sortDir = "desc";
|
||||||
|
|
||||||
|
// MyBatis에 넣을 때는 깔끔하게 키 이름 정리
|
||||||
|
params.put("sortField", sortField);
|
||||||
|
params.put("sortDir", sortDir);
|
||||||
|
params.put("startRow", ((page - 1) * pageSize) + 1);
|
||||||
|
if (page > 1) {
|
||||||
|
params.put("endRow", (((page - 1) * pageSize) + 1) + pageSize - 1); // startRow + pageSize - 1
|
||||||
|
} else {
|
||||||
|
params.put("endRow", 10);
|
||||||
|
}
|
||||||
|
|
||||||
//data정보
|
//data정보
|
||||||
ArrayList result = masterService.getRegList(params);
|
ArrayList result = masterService.getRegList(params);
|
||||||
|
int total = masterService.getRegListCount(params);
|
||||||
|
|
||||||
HashMap resultMap = new HashMap();
|
HashMap resultMap = new HashMap();
|
||||||
resultMap.put("dataList1", result);
|
resultMap.put("dataList1", result);
|
||||||
|
resultMap.put("items", result);
|
||||||
|
resultMap.put("total", total);
|
||||||
|
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.putAll( resultMap );
|
json.putAll( resultMap );
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
@Mapper("listRegMapper")
|
@Mapper("listRegMapper")
|
||||||
public interface ListRegMapper {
|
public interface ListRegMapper {
|
||||||
|
|
||||||
|
public Integer getRegListCount(HashMap<String,Object> params) throws Exception;
|
||||||
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception;
|
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception;
|
||||||
public void callSpChangeStateTempProject(HashMap<String, Object> params) throws SQLException;
|
public void callSpChangeStateTempProject(HashMap<String, Object> params) throws SQLException;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
|
||||||
public interface ListRegService {
|
public interface ListRegService {
|
||||||
|
|
||||||
|
public Integer getRegListCount(HashMap<String,Object> params) throws Exception;
|
||||||
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception;
|
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception;
|
||||||
public HashMap<String, Object> moveToManageWait(HttpServletRequest request, HttpServletResponse response, HashMap<String, Object> params) throws Exception;
|
public HashMap<String, Object> moveToManageWait(HttpServletRequest request, HttpServletResponse response, HashMap<String, Object> params) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,11 @@ public class ListRegServiceImpl implements ListRegService {
|
||||||
@Resource(name = "listRegMapper")
|
@Resource(name = "listRegMapper")
|
||||||
private ListRegMapper listRegMapper;
|
private ListRegMapper listRegMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getRegListCount(HashMap<String,Object> params) throws Exception {
|
||||||
|
return listRegMapper.getRegListCount(params);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception {
|
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception {
|
||||||
return listRegMapper.getRegList(params);
|
return listRegMapper.getRegList(params);
|
||||||
|
|
|
||||||
|
|
@ -3,35 +3,111 @@
|
||||||
|
|
||||||
<mapper namespace="geoinfo.regi.listReg.service.ListRegMapper">
|
<mapper namespace="geoinfo.regi.listReg.service.ListRegMapper">
|
||||||
|
|
||||||
|
<!-- 관리자 리스트 -->
|
||||||
|
<select id="getRegListCount" parameterType="map" resultType="int">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM (SELECT OA.*,
|
||||||
|
(SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = OA.USERID) AS USER_NAME
|
||||||
|
FROM (SELECT A.PROJECT_CODE,
|
||||||
|
A.PROJECT_NAME,
|
||||||
|
A.REPORT_TYPE,
|
||||||
|
COUNT(B.HOLE_CODE) HOLE_CNT,
|
||||||
|
A.USERID,
|
||||||
|
A.DATETIME
|
||||||
|
FROM TEMP_PROJECT_INFO A
|
||||||
|
LEFT OUTER JOIN TEMP_HEADER B ON A.PROJECT_CODE = B.PROJECT_CODE
|
||||||
|
AND NVL(B.USE_YN,' ') <> 'N'
|
||||||
|
WHERE NVL(A.USE_YN,' ') <> 'N'
|
||||||
|
AND A.STATE = '4'
|
||||||
|
]]>
|
||||||
|
<if test="searchProjectName != null and searchProjectName != ''">
|
||||||
|
<![CDATA[ AND A.PROJECT_NAME like '%' || #{searchProjectName} || '%' ]]>
|
||||||
|
</if>
|
||||||
|
<if test="searchUserName != null and searchUserName != ''">
|
||||||
|
<![CDATA[ AND A.USER_NAME like '%' || #{searchUserName} || '%' ]]>
|
||||||
|
</if>
|
||||||
|
<![CDATA[
|
||||||
|
GROUP BY A.PROJECT_CODE, A.PROJECT_NAME, A.REPORT_TYPE,A.USERID, A.DATETIME) OA
|
||||||
|
|
||||||
|
) F
|
||||||
|
WHERE 1=1
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
<!-- 관리자 리스트 -->
|
<!-- 관리자 리스트 -->
|
||||||
<select id="getRegList" parameterType="map" resultType="egovMap">
|
<select id="getRegList" parameterType="map" resultType="egovMap">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
SELECT F.* FROM (
|
SELECT TB.*
|
||||||
SELECT OA.*
|
FROM (SELECT F.*
|
||||||
,(SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = OA.USERID) AS USER_NAME
|
FROM (SELECT ROW_NUMBER() OVER (ORDER BY
|
||||||
FROM (
|
]]>
|
||||||
SELECT A.PROJECT_CODE
|
<choose>
|
||||||
, A.PROJECT_NAME
|
<!-- 프로젝트명 정렬 -->
|
||||||
, A.REPORT_TYPE
|
<when test="sortField == 'projectName' and sortDir == 'asc'">
|
||||||
, COUNT(B.HOLE_CODE) HOLE_CNT
|
OA.PROJECT_NAME ASC
|
||||||
, A.USERID
|
</when>
|
||||||
, A.DATETIME
|
<!-- 프로젝트명 역순 정렬 -->
|
||||||
FROM TEMP_PROJECT_INFO A LEFT OUTER JOIN TEMP_HEADER B
|
<when test="sortField == 'projectName' and sortDir == 'desc'">
|
||||||
ON A.PROJECT_CODE = B.PROJECT_CODE AND NVL(B.USE_YN,' ') <> 'N'
|
OA.PROJECT_NAME DESC
|
||||||
WHERE NVL(A.USE_YN,' ') <> 'N' AND A.STATE = '4'
|
</when>
|
||||||
GROUP BY A.PROJECT_CODE, A.PROJECT_NAME, A.REPORT_TYPE,A.USERID, A.DATETIME
|
|
||||||
]]>
|
<!-- 공급자명 정렬 -->
|
||||||
) OA
|
<when test="sortField == 'userName' and sortDir == 'asc'">
|
||||||
) F
|
OA.USER_NAME ASC
|
||||||
WHERE 1=1
|
</when>
|
||||||
<if test="searchProjectName != null and searchProjectName != ''">
|
<!-- 공급자명 역순 정렬 -->
|
||||||
<![CDATA[ AND F.PROJECT_NAME like '%' || #{searchProjectName} || '%' ]]>
|
<when test="sortField == 'userName' and sortDir == 'desc'">
|
||||||
</if>
|
OA.USER_NAME DESC
|
||||||
<if test="searchUserName != null and searchUserName != ''">
|
</when>
|
||||||
<![CDATA[ AND F.USER_NAME like '%' || #{searchUserName} || '%' ]]>
|
|
||||||
</if>
|
<!-- 시추공수 정렬 -->
|
||||||
ORDER BY F.PROJECT_CODE DESC
|
<when test="sortField == 'holeCnt' and sortDir == 'asc'">
|
||||||
|
OA.HOLE_CNT ASC
|
||||||
|
</when>
|
||||||
|
<!-- 시추공수 역순 정렬 -->
|
||||||
|
<when test="sortField == 'holeCnt' and sortDir == 'desc'">
|
||||||
|
OA.HOLE_CNT DESC
|
||||||
|
</when>
|
||||||
|
|
||||||
|
<!-- 입력일시 정렬 -->
|
||||||
|
<when test="sortField == 'datetime' and sortDir == 'asc'">
|
||||||
|
OA.DATETIME ASC
|
||||||
|
</when>
|
||||||
|
<!-- 입력일시 역순 정렬 -->
|
||||||
|
<otherwise>
|
||||||
|
OA.DATETIME DESC
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
<![CDATA[
|
||||||
|
) AS RN,
|
||||||
|
OA.*,
|
||||||
|
(SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = OA.USERID) AS USER_NAME
|
||||||
|
FROM (SELECT A.PROJECT_CODE,
|
||||||
|
A.PROJECT_NAME,
|
||||||
|
A.REPORT_TYPE,
|
||||||
|
COUNT(B.HOLE_CODE) HOLE_CNT,
|
||||||
|
A.USERID,
|
||||||
|
A.DATETIME
|
||||||
|
FROM TEMP_PROJECT_INFO A
|
||||||
|
LEFT OUTER JOIN TEMP_HEADER B ON A.PROJECT_CODE = B.PROJECT_CODE
|
||||||
|
AND NVL(B.USE_YN,' ') <> 'N'
|
||||||
|
WHERE NVL(A.USE_YN,' ') <> 'N'
|
||||||
|
AND A.STATE = '4'
|
||||||
|
]]>
|
||||||
|
<if test="searchProjectName != null and searchProjectName != ''">
|
||||||
|
<![CDATA[ AND A.PROJECT_NAME like '%' || #{searchProjectName} || '%' ]]>
|
||||||
|
</if>
|
||||||
|
<if test="searchUserName != null and searchUserName != ''">
|
||||||
|
<![CDATA[ AND A.USER_NAME like '%' || #{searchUserName} || '%' ]]>
|
||||||
|
</if>
|
||||||
|
<![CDATA[
|
||||||
|
GROUP BY A.PROJECT_CODE, A.PROJECT_NAME, A.REPORT_TYPE,A.USERID, A.DATETIME) OA
|
||||||
|
|
||||||
|
) F
|
||||||
|
) TB
|
||||||
|
WHERE 1=1
|
||||||
|
AND RN BETWEEN #{startRow} AND #{endRow}
|
||||||
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,12 @@
|
||||||
<!--function 정의 -->
|
<!--function 정의 -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var gridData = new Array(); //데이터 배열객체
|
// var gridData = new Array(); //데이터 배열객체
|
||||||
var dataList;
|
var dataList;
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
selectInit();
|
// selectInit();
|
||||||
|
reloadGrid(); // 그리드 데이타를 새로 요청한다
|
||||||
});
|
});
|
||||||
|
|
||||||
//========================================================
|
//========================================================
|
||||||
|
|
@ -45,12 +46,14 @@ function selectInit(){
|
||||||
function submitEvent(){
|
function submitEvent(){
|
||||||
|
|
||||||
if (event.keyCode == 13) {
|
if (event.keyCode == 13) {
|
||||||
document.frmSearch.submit();
|
// document.frmSearch.submit();
|
||||||
|
reloadGrid(); // 그리드 데이타를 새로 요청한다
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function fn_Search(){
|
function fn_Search(){
|
||||||
document.frmSearch.submit();
|
// document.frmSearch.submit();
|
||||||
|
reloadGrid(); // 그리드 데이타를 새로 요청한다
|
||||||
}
|
}
|
||||||
|
|
||||||
function fn_gourl(project_code){
|
function fn_gourl(project_code){
|
||||||
|
|
@ -221,6 +224,104 @@ function kendoGrid(dataList) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function reloadGrid() {
|
||||||
|
var gridData = new kendo.data.DataSource({
|
||||||
|
transport: {
|
||||||
|
read: {
|
||||||
|
url: "/list_reg_jsondata.do",
|
||||||
|
dataType: "json",
|
||||||
|
type: "POST",
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
searchProjectName: $("#searchProjectName").val(),
|
||||||
|
searchUserName: $("#searchUserName").val(),
|
||||||
|
page: 1,
|
||||||
|
pageSize: 10
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
schema: {
|
||||||
|
data: "dataList1", // 서버에서 실제 데이터 Array key
|
||||||
|
total: "total" // 서버에서 전체 개수 key
|
||||||
|
},
|
||||||
|
serverPaging: true,
|
||||||
|
serverSorting: true,
|
||||||
|
pageSize: 10
|
||||||
|
});
|
||||||
|
|
||||||
|
kendoJQuery("#grid_type_1").kendoGrid({
|
||||||
|
dataSource: gridData,
|
||||||
|
scrollable: { virtual: true },
|
||||||
|
pageable: {
|
||||||
|
refresh: true,
|
||||||
|
numeric: true,
|
||||||
|
pageSizes: [50, 100, 200],
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{ field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>" },
|
||||||
|
{
|
||||||
|
field: "projectName",
|
||||||
|
title: "프로젝트명",
|
||||||
|
template: function(data){
|
||||||
|
var param = "'"+data.projectCode+"'";
|
||||||
|
var url = "<a href=javascript:fn_gourl(" + param +");>" + data.projectName + "</a>";
|
||||||
|
return url;
|
||||||
|
},
|
||||||
|
attributes: { style:"text-align: left" },
|
||||||
|
},
|
||||||
|
{ field: "holeCnt", width: 100, title: "시추공수", template: "<div class='td-data'>#: holeCnt #</div>" },
|
||||||
|
{
|
||||||
|
field: "userName",
|
||||||
|
width: 80,
|
||||||
|
title: "공급자",
|
||||||
|
template: function(data){
|
||||||
|
var userName = data.userName == null ? "" : data.userName;
|
||||||
|
var url = "<div class='td-data'>" + userName + "</div>" ;
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: "datetime", width: 160, title: "입력일시__",
|
||||||
|
template: function(data){
|
||||||
|
var url = "<div class='td-data'>" + unixTimestampToFormattedDateTime(data.datetime.time) + "</div>";
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: "move", width: 160, title: "등록대기 이동",
|
||||||
|
template: function(data){
|
||||||
|
var param = "\""+data.projectCode+"\", \""+data.projectName+"\"";
|
||||||
|
var url = "<button type='button' class='k-button k-button-modifycall move-button' onclick='move("+ param +");'>등록대기 이동</button>";
|
||||||
|
return url;
|
||||||
|
},
|
||||||
|
attributes: { style:"text-align: center" },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
sortable: true,
|
||||||
|
scrollable: true,
|
||||||
|
selectable: true,
|
||||||
|
columnResizeHandleWidth: 20,
|
||||||
|
resizable: true,
|
||||||
|
pageable: {
|
||||||
|
refresh: false,
|
||||||
|
pageSizes: true,
|
||||||
|
pageSize: 10,
|
||||||
|
//buttonCount: 10,
|
||||||
|
input: true,
|
||||||
|
numeric: false,
|
||||||
|
},
|
||||||
|
noRecords: {
|
||||||
|
template: "등록된데이터가 없습니다."
|
||||||
|
},
|
||||||
|
dataBound: onDataBound,
|
||||||
|
// 🔹 정렬 이벤트 추가
|
||||||
|
sort: function(e) {
|
||||||
|
var grid = this;
|
||||||
|
// 정렬 변경 시 첫 페이지로 이동
|
||||||
|
grid.dataSource.page(1);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
/* 도움말 시작 */
|
/* 도움말 시작 */
|
||||||
function fn_help_tour(){
|
function fn_help_tour(){
|
||||||
var pageTitle = "입력중인 프로젝트 현황";
|
var pageTitle = "입력중인 프로젝트 현황";
|
||||||
|
|
@ -304,7 +405,11 @@ function fn_grid_refresh(){
|
||||||
|
|
||||||
<!-- 검색영역 시작 -->
|
<!-- 검색영역 시작 -->
|
||||||
<div class="page-top-search" data-target="project-search">
|
<div class="page-top-search" data-target="project-search">
|
||||||
<form name="frmSearch" id="frmSearch" action="list_reg.do" method="post">
|
<!-- <form name="frmSearch" id="frmSearch" action="list_reg.do" method="post"> -->
|
||||||
|
<form name="frmSearch" id="frmSearch" action="list_reg_jsondata.do" method="post">
|
||||||
|
|
||||||
|
<input type="hidden" id="page" name="page" value="1" />
|
||||||
|
<input type="hidden" id="pageSize" name="pageSize" value="10" />
|
||||||
<div class="form-inline row">
|
<div class="form-inline row">
|
||||||
<div class="input-group col-md-8 col-xs-8 col-sm-8">
|
<div class="input-group col-md-8 col-xs-8 col-sm-8">
|
||||||
<label class="input-label-display" for="searchProjectName">사업명</label>
|
<label class="input-label-display" for="searchProjectName">사업명</label>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue