관리자 > (메인)검수등록대기건수 > 입력중인프로젝트 현황 목록 - 페이징처리,소팅처리
parent
694733546d
commit
cfedd0a719
|
|
@ -70,12 +70,36 @@ public class ListRegController {
|
|||
String searchUserName = sUtil.checkNull(parseData.parseData((String)params.get("searchUserName")));
|
||||
//request
|
||||
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정보
|
||||
ArrayList result = masterService.getRegList(params);
|
||||
int total = masterService.getRegListCount(params);
|
||||
|
||||
HashMap resultMap = new HashMap();
|
||||
resultMap.put("dataList1", result);
|
||||
resultMap.put("items", result);
|
||||
resultMap.put("total", total);
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.putAll( resultMap );
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
|||
@Mapper("listRegMapper")
|
||||
public interface ListRegMapper {
|
||||
|
||||
public Integer getRegListCount(HashMap<String,Object> params) throws Exception;
|
||||
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception;
|
||||
public void callSpChangeStateTempProject(HashMap<String, Object> params) throws SQLException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
|||
|
||||
public interface ListRegService {
|
||||
|
||||
public Integer getRegListCount(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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,11 @@ public class ListRegServiceImpl implements ListRegService {
|
|||
@Resource(name = "listRegMapper")
|
||||
private ListRegMapper listRegMapper;
|
||||
|
||||
@Override
|
||||
public Integer getRegListCount(HashMap<String,Object> params) throws Exception {
|
||||
return listRegMapper.getRegListCount(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<?> getRegList(HashMap<String,Object> params) throws Exception {
|
||||
return listRegMapper.getRegList(params);
|
||||
|
|
|
|||
|
|
@ -3,35 +3,111 @@
|
|||
|
||||
<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">
|
||||
<![CDATA[
|
||||
SELECT F.* 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'
|
||||
GROUP BY A.PROJECT_CODE, A.PROJECT_NAME, A.REPORT_TYPE,A.USERID, A.DATETIME
|
||||
]]>
|
||||
) OA
|
||||
) F
|
||||
WHERE 1=1
|
||||
<if test="searchProjectName != null and searchProjectName != ''">
|
||||
<![CDATA[ AND F.PROJECT_NAME like '%' || #{searchProjectName} || '%' ]]>
|
||||
</if>
|
||||
<if test="searchUserName != null and searchUserName != ''">
|
||||
<![CDATA[ AND F.USER_NAME like '%' || #{searchUserName} || '%' ]]>
|
||||
</if>
|
||||
ORDER BY F.PROJECT_CODE DESC
|
||||
|
||||
SELECT TB.*
|
||||
FROM (SELECT F.*
|
||||
FROM (SELECT ROW_NUMBER() OVER (ORDER BY
|
||||
]]>
|
||||
<choose>
|
||||
<!-- 프로젝트명 정렬 -->
|
||||
<when test="sortField == 'projectName' and sortDir == 'asc'">
|
||||
OA.PROJECT_NAME ASC
|
||||
</when>
|
||||
<!-- 프로젝트명 역순 정렬 -->
|
||||
<when test="sortField == 'projectName' and sortDir == 'desc'">
|
||||
OA.PROJECT_NAME DESC
|
||||
</when>
|
||||
|
||||
<!-- 공급자명 정렬 -->
|
||||
<when test="sortField == 'userName' and sortDir == 'asc'">
|
||||
OA.USER_NAME ASC
|
||||
</when>
|
||||
<!-- 공급자명 역순 정렬 -->
|
||||
<when test="sortField == 'userName' and sortDir == 'desc'">
|
||||
OA.USER_NAME DESC
|
||||
</when>
|
||||
|
||||
<!-- 시추공수 정렬 -->
|
||||
<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>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,11 +9,12 @@
|
|||
<!--function 정의 -->
|
||||
<script type="text/javascript">
|
||||
|
||||
var gridData = new Array(); //데이터 배열객체
|
||||
// var gridData = new Array(); //데이터 배열객체
|
||||
var dataList;
|
||||
|
||||
$(document).ready(function () {
|
||||
selectInit();
|
||||
// selectInit();
|
||||
reloadGrid(); // 그리드 데이타를 새로 요청한다
|
||||
});
|
||||
|
||||
//========================================================
|
||||
|
|
@ -45,12 +46,14 @@ function selectInit(){
|
|||
function submitEvent(){
|
||||
|
||||
if (event.keyCode == 13) {
|
||||
document.frmSearch.submit();
|
||||
// document.frmSearch.submit();
|
||||
reloadGrid(); // 그리드 데이타를 새로 요청한다
|
||||
}
|
||||
}
|
||||
|
||||
function fn_Search(){
|
||||
document.frmSearch.submit();
|
||||
// document.frmSearch.submit();
|
||||
reloadGrid(); // 그리드 데이타를 새로 요청한다
|
||||
}
|
||||
|
||||
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(){
|
||||
var pageTitle = "입력중인 프로젝트 현황";
|
||||
|
|
@ -304,7 +405,11 @@ function fn_grid_refresh(){
|
|||
|
||||
<!-- 검색영역 시작 -->
|
||||
<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="input-group col-md-8 col-xs-8 col-sm-8">
|
||||
<label class="input-label-display" for="searchProjectName">사업명</label>
|
||||
|
|
|
|||
Loading…
Reference in New Issue