fix: 엑셀업로드 시 시추공 개요에서 코어 사진 설명이 없는 경우 코어 사진 설명을 입력하라는 메시지 추가
parent
40ea5fedac
commit
34e9421ba2
|
|
@ -107,6 +107,20 @@ public class CompleteServiceImpl implements CompleteService {
|
||||||
/*params.put("LoginUserId", LoginUserId);*/
|
/*params.put("LoginUserId", LoginUserId);*/
|
||||||
params.put("cls", nCls);
|
params.put("cls", nCls);
|
||||||
|
|
||||||
|
// 정렬 파라미터 가공
|
||||||
|
if (params.get("sort[0][field]") != null) {
|
||||||
|
String sortField = (String) params.get("sort[0][field]");
|
||||||
|
String sortDir = (String) params.get("sort[0][dir]");
|
||||||
|
|
||||||
|
// SQL Injection 방지를 위해 허용된 컬럼명인지 확인하는 로직 추가 필요
|
||||||
|
// 예: if ("projectName".equals(sortField) || "userName".equals(sortField) ...)
|
||||||
|
|
||||||
|
// MyBatis에서 사용할 단순한 이름으로 파라미터를 추가합니다.
|
||||||
|
params.put("sortField", sortField);
|
||||||
|
params.put("sortDir", sortDir);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Long pageSize = MyUtil.getLongFromObject( params.get("pageSize") );
|
Long pageSize = MyUtil.getLongFromObject( params.get("pageSize") );
|
||||||
if( pageSize == null ) {
|
if( pageSize == null ) {
|
||||||
pageSize = 10l;
|
pageSize = 10l;
|
||||||
|
|
|
||||||
|
|
@ -7128,7 +7128,17 @@ public class ManageExcelUploadProc03Controller {
|
||||||
map.put("CORE_NUM",j+1 );
|
map.put("CORE_NUM",j+1 );
|
||||||
map.put("CORE_LOCAL",extracted[j].getName() );
|
map.put("CORE_LOCAL",extracted[j].getName() );
|
||||||
map.put("CORE_PIC", saveName );
|
map.put("CORE_PIC", saveName );
|
||||||
map.put("CORE_DESC",excel3Wp.get("col1",j+1).trim() );
|
String CoreDesc = null;
|
||||||
|
if( 1 < excel3Wp.getLength() ) {
|
||||||
|
CoreDesc = excel3Wp.get("col1",j+1);
|
||||||
|
CoreDesc = CoreDesc.trim();
|
||||||
|
} else {
|
||||||
|
CoreDesc = "-";
|
||||||
|
params.put("resultMsg", "코어 사진 설명을 입력하세요. 없는 경우 '- 를 입력하세요.");
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("CORE_DESC", CoreDesc );
|
||||||
map.put("USERID",request.getSession().getAttribute("USERID"));
|
map.put("USERID",request.getSession().getAttribute("USERID"));
|
||||||
coreList.add(map);
|
coreList.add(map);
|
||||||
//headerService.insertTempHeaderCore(params);
|
//headerService.insertTempHeaderCore(params);
|
||||||
|
|
|
||||||
|
|
@ -14,97 +14,87 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectCompleteItems" parameterType="map" resultType="egovMap">
|
<select id="selectCompleteItems" parameterType="map" resultType="egovMap">
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
T.CLASS_CODE
|
T.CLASS_CODE,
|
||||||
, T.PROJECT_CODE
|
T.PROJECT_CODE,
|
||||||
, T.REPORT_TYPE
|
T.REPORT_TYPE,
|
||||||
, T.REPORT_TYPE_NAME
|
T.REPORT_TYPE_NAME,
|
||||||
, REPLACE(T.PROJECT_NAME,'"','''') AS PROJECT_NAME
|
REPLACE(T.PROJECT_NAME, '"', '''') AS "projectName",
|
||||||
, T.USERID
|
T.USERID,
|
||||||
, T.USER_NAME
|
T.USER_NAME AS "userName",
|
||||||
, T.STATE
|
T.STATE,
|
||||||
, T.STATE_NAME
|
T.STATE_NAME AS "stateName",
|
||||||
, T.CREATE_NAME
|
T.CREATE_NAME AS "createName",
|
||||||
, T.CREATE_USERID
|
T.CREATE_USERID AS "createUserid",
|
||||||
, T.DATETIME
|
T.DATETIME AS "datetime",
|
||||||
, T.MAP
|
T.MAP AS "map",
|
||||||
, T.INS
|
T.INS AS "ins",
|
||||||
, T.MODIFYCALL
|
T.MODIFYCALL AS "modifycall",
|
||||||
, OB.HIST_SEQ
|
OB.HIST_SEQ AS "histSeq",
|
||||||
, TO_CHAR(OB.CREATEDATE,'YYYY-MM-DD HH24:MI:SS') AS CREATEDATE
|
TO_CHAR(OB.CREATEDATE, 'YYYY-MM-DD HH24:MI:SS') AS "createdate",
|
||||||
, TO_CHAR(OB.MODIFY_CALL_DATE,'YYYY-MM-DD HH24:MI:SS') AS MODIFYCALLDATE
|
TO_CHAR(OB.MODIFY_CALL_DATE, 'YYYY-MM-DD HH24:MI:SS') AS "modifycalldate",
|
||||||
, NVL((SELECT DISTINCT(REPORT_FILE) FROM TEMP_EXPERT_OPINION WHERE PROJECT_CODE = T.PROJECT_CODE),'NO') AS EXPERT_FILE
|
NVL((SELECT DISTINCT (REPORT_FILE) FROM TEMP_EXPERT_OPINION WHERE PROJECT_CODE = T.PROJECT_CODE), 'NO') AS "expertFile",
|
||||||
, ROW_NUMBER() OVER(ORDER BY T.DATETIME DESC) AS RNK
|
ROW_NUMBER() OVER(
|
||||||
|
ORDER BY
|
||||||
|
<choose>
|
||||||
|
<when test="sortField == 'projectName'"> T.PROJECT_NAME ${sortDir} </when>
|
||||||
|
<when test="sortField == 'userName'"> T.USER_NAME ${sortDir} </when>
|
||||||
|
|
||||||
FROM
|
<when test="sortField == 'datetime'">
|
||||||
(
|
T.DATETIME ${sortDir} <if test='sortDir == "desc"'> NULLS LAST </if>
|
||||||
SELECT
|
</when>
|
||||||
CLASS_CODE
|
<when test="sortField == 'createdate'">
|
||||||
, PROJECT_CODE
|
OB.CREATEDATE ${sortDir} <if test='sortDir == "desc"'> NULLS LAST </if>
|
||||||
, REPORT_TYPE
|
</when>
|
||||||
, FUNC_COMM_NAME('CM016',REPORT_TYPE ) REPORT_TYPE_NAME
|
<when test="sortField == 'modifycalldate'">
|
||||||
, PROJECT_NAME
|
OB.MODIFY_CALL_DATE ${sortDir} <if test='sortDir == "desc"'> NULLS LAST </if>
|
||||||
, USERID
|
</when>
|
||||||
, (SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = INFO.USERID) AS USER_NAME
|
<when test="sortField == 'stateName'"> T.STATE_NAME ${sortDir} </when>
|
||||||
, STATE
|
<when test="sortField == 'createName'"> T.CREATE_NAME ${sortDir} </when>
|
||||||
, FUNC_COMM_NAME('CM001',STATE ) STATE_NAME
|
<when test="sortField == 'histSeq'">
|
||||||
, (
|
OB.HIST_SEQ ${sortDir} <if test='sortDir == "desc"'> NULLS LAST </if>
|
||||||
SELECT
|
</when>
|
||||||
(SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = M.USERID)
|
|
||||||
FROM
|
|
||||||
TEMP_MANAGE_STATE M
|
|
||||||
WHERE
|
|
||||||
M.PROJECT_CODE = INFO.PROJECT_CODE
|
|
||||||
) AS CREATE_NAME
|
|
||||||
, (SELECT M.USERID FROM TEMP_MANAGE_STATE M WHERE M.PROJECT_CODE = INFO.PROJECT_CODE) AS CREATE_USERID
|
|
||||||
, TO_CHAR(DATETIME,'YYYY-MM-DD HH24:MI:SS') AS DATETIME
|
|
||||||
, DECODE(REPORT_TYPE,'CH','map','') AS MAP
|
|
||||||
, PROJECT_MASTER_COMPANY_O_CODE
|
|
||||||
, DECODE(STATE,'6','insert') AS INS
|
|
||||||
, DECODE(STATE,'6','modifycall') AS MODIFYCALL
|
|
||||||
FROM
|
|
||||||
TEMP_PROJECT_INFO INFO
|
|
||||||
<![CDATA[
|
|
||||||
WHERE NVL(USE_YN,' ') <> 'N' AND STATE = '6'
|
|
||||||
]]>
|
|
||||||
) T
|
|
||||||
, TEMP_MANAGE_STATE OB
|
|
||||||
WHERE
|
|
||||||
T.PROJECT_CODE = OB.PROJECT_CODE(+)
|
|
||||||
|
|
||||||
<if test="srchReportType != null and srchReportType != '' and srchReportType != 'null'">
|
<otherwise> T.DATETIME DESC NULLS LAST </otherwise>
|
||||||
AND T.REPORT_TYPE = #{srchReportType}
|
</choose>
|
||||||
</if>
|
) AS RNK
|
||||||
<if test="searchProjectName != null and searchProjectName != '' and searchProjectName != 'null'">
|
FROM
|
||||||
AND T.PROJECT_NAME LIKE '%${searchProjectName}%'
|
(
|
||||||
</if>
|
SELECT
|
||||||
<if test="searchProjectCode != null and searchProjectCode != '' and searchProjectCode != 'null'">
|
CLASS_CODE,
|
||||||
AND T.PROJECT_CODE LIKE '%${searchProjectCode}%'
|
PROJECT_CODE,
|
||||||
</if>
|
REPORT_TYPE,
|
||||||
<if test="searchUserName != null and searchUserName != '' and searchUserName != 'null'">
|
FUNC_COMM_NAME('CM016', REPORT_TYPE) REPORT_TYPE_NAME,
|
||||||
AND T.USER_NAME = #{searchUserName}
|
PROJECT_NAME,
|
||||||
</if>
|
USERID,
|
||||||
<if test="searchCreateName != null and searchCreateName != '' and searchCreateName != 'null'">
|
(SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = INFO.USERID) AS USER_NAME,
|
||||||
AND T.CREATE_NAME = #{searchCreateName}
|
STATE,
|
||||||
</if>
|
FUNC_COMM_NAME('CM001', STATE) STATE_NAME,
|
||||||
<if test="searchHistSeq != null and searchHistSeq != '' and searchHistSeq != 'null'">
|
(SELECT (SELECT USER_NAME FROM WEB_MEMBER_IN WHERE USERID = M.USERID)
|
||||||
AND OB.HIST_SEQ = #{searchHistSeq}
|
FROM TEMP_MANAGE_STATE M
|
||||||
</if>
|
WHERE M.PROJECT_CODE = INFO.PROJECT_CODE) AS CREATE_NAME,
|
||||||
<if test="LoginUserId != 'admin_user' and LoginUserId != null and LoginUserId != '' and cls != 65535 ">
|
(SELECT M.USERID FROM TEMP_MANAGE_STATE M WHERE M.PROJECT_CODE = INFO.PROJECT_CODE) AS CREATE_USERID,
|
||||||
AND T.PROJECT_MASTER_COMPANY_O_CODE = (SELECT MASTER_COMPANY_CODE FROM WEB_MEMBER_IN WHERE USERID = #{LoginUserId})
|
TO_CHAR(DATETIME, 'YYYY-MM-DD HH24:MI:SS') AS DATETIME,
|
||||||
</if>
|
DECODE(REPORT_TYPE, 'CH', 'map', '') AS MAP,
|
||||||
ORDER BY
|
PROJECT_MASTER_COMPANY_O_CODE,
|
||||||
T.DATETIME DESC
|
DECODE(STATE, '6', 'insert') AS INS,
|
||||||
) A
|
DECODE(STATE, '6', 'modifycall') AS MODIFYCALL
|
||||||
WHERE
|
FROM TEMP_PROJECT_INFO INFO
|
||||||
<![CDATA[
|
WHERE NVL(USE_YN, ' ') != 'N' AND STATE = '6'
|
||||||
A.RNK BETWEEN #{firstIndex} + 1
|
) T,
|
||||||
AND #{firstIndex} + #{recordCountPerPage}
|
TEMP_MANAGE_STATE OB
|
||||||
]]>
|
WHERE T.PROJECT_CODE = OB.PROJECT_CODE(+)
|
||||||
|
|
||||||
|
<if test="searchProjectName != null and searchProjectName != '' and searchProjectName != 'null'">
|
||||||
|
AND T.PROJECT_NAME LIKE '%${searchProjectName}%'
|
||||||
|
</if>
|
||||||
|
) A
|
||||||
|
WHERE
|
||||||
|
A.RNK BETWEEN #{firstIndex} + 1 AND #{firstIndex} + #{recordCountPerPage}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectCompleteItemsCnt" parameterType="hashmap" resultType="long">
|
<select id="selectCompleteItemsCnt" parameterType="hashmap" resultType="long">
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,11 @@ function fn_Search() {
|
||||||
if (!fn_fromToCheckAlert($("#startDate").val(), $("#endDate").val(), "기간시작일", "기간종료일", "startDate"))
|
if (!fn_fromToCheckAlert($("#startDate").val(), $("#endDate").val(), "기간시작일", "기간종료일", "startDate"))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
document.frmSearch.submit();
|
var grid = kendoJQuery("#grid_type_1").data("kendoGrid");
|
||||||
|
if (grid) {
|
||||||
|
// 검색 시 항상 첫 페이지로 이동
|
||||||
|
grid.dataSource.page(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//load
|
//load
|
||||||
|
|
@ -224,25 +228,37 @@ function kendoGrid() {
|
||||||
if( searchCreateNameEle ) {
|
if( searchCreateNameEle ) {
|
||||||
searchCreateName = searchCreateNameEle.value;
|
searchCreateName = searchCreateNameEle.value;
|
||||||
}
|
}
|
||||||
|
// 정렬 파라미터를 담을 변수 추가
|
||||||
|
var sortParams = "";
|
||||||
|
if (options.data.sort && options.data.sort.length > 0) {
|
||||||
|
for (var i = 0; i < options.data.sort.length; i++) {
|
||||||
|
sortParams += "&sort[" + i + "][field]=" + options.data.sort[i].field;
|
||||||
|
sortParams += "&sort[" + i + "][dir]=" + options.data.sort[i].dir;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/manage/complete/list.do?pageIndex=" + currentPage
|
url: "/manage/complete/list.do", // URL은 순수 경로만 지정
|
||||||
+ "&" + "searchProjectName=" + searchProjectName
|
data: { // 파라미터는 data 객체로 전달
|
||||||
+ "&" + "searchProjectCode=" + searchProjectCode
|
pageIndex: currentPage,
|
||||||
+ "&" + "searchHistSeq=" + searchHistSeq
|
searchProjectName: searchProjectName,
|
||||||
+ "&" + "searchUserName=" + searchUserName
|
searchProjectCode: searchProjectCode,
|
||||||
+ "&" + "searchCreateName=" + searchCreateName
|
searchHistSeq: searchHistSeq,
|
||||||
,
|
searchUserName: searchUserName,
|
||||||
contentType: 'application/json',
|
searchCreateName: searchCreateName,
|
||||||
dataType: "json",
|
// Kendo UI가 전달하는 정렬, 페이징 정보 등을 options.data에서 가져와 추가
|
||||||
type: 'GET',
|
sort: options.data.sort
|
||||||
success: function(result) {
|
},
|
||||||
options.success(result);
|
contentType: 'application/json',
|
||||||
},
|
dataType: "json",
|
||||||
error: function(result) {
|
type: 'GET',
|
||||||
options.error(result);
|
success: function(result) {
|
||||||
}
|
options.success(result);
|
||||||
});
|
},
|
||||||
|
error: function(result) {
|
||||||
|
options.error(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
schema: {
|
schema: {
|
||||||
|
|
@ -254,7 +270,8 @@ function kendoGrid() {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
serverPaging: true
|
serverPaging: true,
|
||||||
|
serverSorting: true
|
||||||
});
|
});
|
||||||
|
|
||||||
kendoJQuery("#grid_type_1").kendoGrid({
|
kendoJQuery("#grid_type_1").kendoGrid({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue