diff --git a/src/main/java/geoinfo/com/WebConfirm.java b/src/main/java/geoinfo/com/WebConfirm.java
index f784d5db..9017232a 100644
--- a/src/main/java/geoinfo/com/WebConfirm.java
+++ b/src/main/java/geoinfo/com/WebConfirm.java
@@ -29,7 +29,7 @@ public class WebConfirm
//String url = "jdbc:oracle:thin:@192.168.0.71:1521:orcl";
/*String url = "jdbc:oracle:thin:@192.168.0.29:1521:xe";이전*/
//String url = "jdbc:oracle:thin:@192.168.0.8:3452:orcl"; // 실서버
- String url = "jdbc:oracle:thin:@118.219.150.34:1521:ORAGEODEV";
+ String url = "jdbc:oracle:thin:@118.219.150.34:1521:ORAGEODEV"; // DBNT 개발 서버
/*
* public WebConfirm() { this.connection = null; this.connectionPool = null;
* this.query = null; this.resultSet = null; this.sql = ""; this.resultCnt = 0;
@@ -177,7 +177,13 @@ public class WebConfirm
resultCnt += query.executeUpdate(connection);
query.close();
- exeQuery(sql = "DELETE FROM TBL_HEADER_HOLE WHERE HOLE_CODE = [HOLE_CODE]", resultSet.getString("HOLE_CODE"));
+
+ final StringBuffer sbQueryDeleteTblHeaderHole = new StringBuffer();
+ sbQueryDeleteTblHeaderHole.append("DELETE FROM TBL_HEADER_HOLE WHERE HOLE_CODE = [HOLE_CODE]");
+ (query = new DatabaseQuery(sbQueryDeleteTblHeaderHole.toString())).setParam("HOLE_CODE", resultSet.getString("HOLE_CODE"));
+ resultCnt += query.executeUpdate(connection);
+ query.close();
+
final StringBuffer sbQuery = new StringBuffer();
sbQuery.append(" INSERT INTO TBL_HEADER_HOLE ( ");
diff --git a/src/main/java/geoinfo/regi/sampleInfo/SampleInfoController.java b/src/main/java/geoinfo/regi/sampleInfo/SampleInfoController.java
index f7301b7e..07639f52 100644
--- a/src/main/java/geoinfo/regi/sampleInfo/SampleInfoController.java
+++ b/src/main/java/geoinfo/regi/sampleInfo/SampleInfoController.java
@@ -101,7 +101,7 @@ public class SampleInfoController {
WebUtil wUtil = new WebUtil();
strUtil sUtil = new strUtil();
int affectRow = 0;
- String sJOB_TYPE = "";
+ String message = "";
//request
String changedData = String.valueOf(params.get("changedDataXML"));
@@ -158,7 +158,7 @@ public class SampleInfoController {
Element data = (Element)dataNodeDOC.item(i);
String key;
- if ("U".equals(job) || "I".equals(job)) { // delete, insert 처리
+ if ("U".equals(job) || "I".equals(job) || "ignore".equals(job)) { // delete, insert 처리
NodeList nPROJECT_CODE=data.getElementsByTagName("projectCode");
NodeList nHOLE_CODE=data.getElementsByTagName("holeCode");
@@ -171,13 +171,20 @@ public class SampleInfoController {
params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
params.put("SAMPLE_CODE", wUtil.isNullNode(nSAMPLE_CODE ));
sampleService.deleteSampleInfo(params);
+
+ if( "ignore".equals(job) == false ) {
+ //기존 기본물성시험이 없다고 넣은 데이터를 제거한다.
+ params.put("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE));
+ params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
+ params.put("SAMPLE_CODE", wUtil.isNullNode(nHOLE_CODE ) + "-999");
+ sampleService.deleteSampleInfo(params);
+ }
}
}
-
+
for (int i = 0; i < jobNodeDOC.getLength(); i++) {
String job = jobNodeDOC.item(i).getFirstChild().getNodeValue();
Element data = (Element)dataNodeDOC.item(i);
- String key;
if ("D".equals(job)) {
@@ -185,15 +192,36 @@ public class SampleInfoController {
NodeList nHOLE_CODE=data.getElementsByTagName("holeCode");
NodeList nSAMPLE_NUMBER=data.getElementsByTagName("sampleNumber");
- String sQry = "";
//DELETE
params.put("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE));
params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
params.put("SAMPLE_CODE", wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER ));
affectRow = sampleService.deleteSampleInfo(params);
+ if( affectRow == 0) {
+ System.out.println(
+ "\n--------------------------------------------------------------\n" +
+ request.getRequestURI() + " " + " affectRow = sampleService.deleteSampleInfo(params); 실패 됨:" +
+ "\n--------------------------------------------------------------\n" +
+ "PROJECT_CODE:[" + wUtil.isNullNode(nPROJECT_CODE) + "]\n" +
+ "HOLE_CODE:[" + wUtil.isNullNode(nHOLE_CODE) + "]\n" +
+ "SAMPLE_CODE:[" + wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER ) + "]\n" +
+ "\n--------------------------------------------------------------\n"
+ );
+ message = "기본물성시험 정보 삭제에 실패하였습니다. 담당자에게 문의 바랍니다." + "[" + wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER ) + "]";
+ }
- }else if ("U".equals(job) || "I".equals(job)) { // delete, insert 처리
+ }
+
+ }
+
+
+ for (int i = 0; i < jobNodeDOC.getLength(); i++) {
+ String job = jobNodeDOC.item(i).getFirstChild().getNodeValue();
+ Element data = (Element)dataNodeDOC.item(i);
+ String key;
+
+ if ("U".equals(job) || "I".equals(job) || "ignore".equals(job) ) { // delete, insert 처리
NodeList nPROJECT_CODE=data.getElementsByTagName("projectCode");
NodeList nHOLE_CODE=data.getElementsByTagName("holeCode");
@@ -209,18 +237,6 @@ public class SampleInfoController {
NodeList nSAMPLE_PI=data.getElementsByTagName("samplePi");
NodeList nSAMPLE_RD=data.getElementsByTagName("sampleRd");
NodeList nSAMPLE_DESC=data.getElementsByTagName("sampleDesc");
- NodeList nSAMPLE_CODE=data.getElementsByTagName("sampleCode");
-
-
- /* 상단에서 처리.
- //DELETE
- sQry = "DELETE FROM TEMP_SAMPLE_INFO WHERE PROJECT_CODE=[PROJECT_CODE] AND HOLE_CODE=[HOLE_CODE] AND SAMPLE_CODE=[SAMPLE_CODE]";
- query = new DatabaseQuery(sQry);
- params.put("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE));
- params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
- params.put("SAMPLE_CODE", wUtil.isNullNode(nSAMPLE_CODE ));
- query.executeUpdate(connection);
- */
params.put("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE ));
params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
@@ -240,6 +256,19 @@ public class SampleInfoController {
params.put("USERID", request.getSession().getAttribute("USERID"));
affectRow = sampleService.insertSampleInfo(params);
+
+ if( affectRow == 0) {
+ System.out.println(
+ "\n--------------------------------------------------------------\n" +
+ request.getRequestURI() + " " + "sampleService.insertSampleInfo(params) 실패 됨:" +
+ "\n--------------------------------------------------------------\n" +
+ "PROJECT_CODE:[" + wUtil.isNullNode(nPROJECT_CODE) + "]\n" +
+ "HOLE_CODE:[" + wUtil.isNullNode(nHOLE_CODE) + "]\n" +
+ "SAMPLE_CODE:[" + wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER ) + "]\n" +
+ "\n--------------------------------------------------------------\n"
+ );
+ message = "기본물성시험 정보 삭제에 실패하였습니다. 담당자에게 문의 바랍니다." + "[" + wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER ) + "]";
+ }
}
}
@@ -274,6 +303,7 @@ public class SampleInfoController {
affectRow = 0;
}
model.put("affectRow",affectRow);
+ model.put("message", message); // 오류가 난 원인을 사용자가 알 수 있게 수정 필요. 20240705 1606
return "/web/input/sampleInfoDb";
diff --git a/src/main/java/geoinfo/regi/status/RegiController.java b/src/main/java/geoinfo/regi/status/RegiController.java
index cd14d56e..aab1f788 100644
--- a/src/main/java/geoinfo/regi/status/RegiController.java
+++ b/src/main/java/geoinfo/regi/status/RegiController.java
@@ -587,8 +587,7 @@ public class RegiController {
HashMap result = masterService.getHistSeq(params);
if (result == null) {
- //웹 취약점 때문에 수정
-// } else {
+ //웹 취약점 때문에 수정
int insertResult = masterService.insertHistSeq(params);
affectRow = affectRow + insertResult;
diff --git a/src/main/resources/egovframework/egovProps/globals.properties b/src/main/resources/egovframework/egovProps/globals.properties
index 01a16ae4..1178aaa0 100644
--- a/src/main/resources/egovframework/egovProps/globals.properties
+++ b/src/main/resources/egovframework/egovProps/globals.properties
@@ -8,7 +8,10 @@ Oracle.Driver=oracle.jdbc.driver.OracleDriver
################################################################
# Oracle.Url=jdbc:oracle:thin:@192.168.0.8:3452:orcl is prod
#Oracle.Url=jdbc:oracle:thin:@192.168.0.8:3452:orcl
+# dbnt devlop server
Oracle.Url=jdbc:oracle:thin:@118.219.150.34:1521:ORAGEODEV
+# develop local server
+#Oracle.Url=jdbc:oracle:thin:@192.168.86.2:1521:xe
################################################################
#Oracle.Url=jdbc:oracle:thin:@192.168.0.29:1521:xe
diff --git a/src/main/webapp/WEB-INF/views/home/index.jsp b/src/main/webapp/WEB-INF/views/home/index.jsp
index 5bf5efc1..37874ff1 100644
--- a/src/main/webapp/WEB-INF/views/home/index.jsp
+++ b/src/main/webapp/WEB-INF/views/home/index.jsp
@@ -451,8 +451,8 @@
-
- '22년 건설 시추정보
DB사용자
집합교육 자료
+
+ '23년 건설 시추정보
DB사용자
집합교육 자료
diff --git a/src/main/webapp/WEB-INF/views/web/input/sampleInfo.jsp b/src/main/webapp/WEB-INF/views/web/input/sampleInfo.jsp
index 101ce8e5..974ba583 100644
--- a/src/main/webapp/WEB-INF/views/web/input/sampleInfo.jsp
+++ b/src/main/webapp/WEB-INF/views/web/input/sampleInfo.jsp
@@ -81,7 +81,7 @@ function fn_save(rUrl){
var kendoColCount = grid.columns.length; // 세로(열) 갯수
var kendoRowIdx = grid.dataSource._data[kendoRowCount -1]; // 마지막행 데이터
- var gridDataCount = gridData.length;
+ var gridDataCount = typeof gridData == 'undefined' ? 0 : gridData.length;
if (!kendoRowCount == 0) {
if (kendoRowIdx.sampleNumber == null || kendoRowIdx.sampleNumber == "") {
@@ -197,6 +197,9 @@ function fn_save(rUrl){
for(var i=0; i < _delGridData.length; i++){
var row = _delGridData[i];
+ if( typeof row == 'undefined') {
+ continue;
+ }
var keys = Object.keys(row);
change_data += "" + (data.length + i) + "\r\n";
@@ -270,6 +273,55 @@ function fn_save(rUrl){
change_data += "";
}
+
+ if( data.length === 0 ) {
+ const answer = confirm("기본물성시험 정보가 없습니까?");
+
+ if (answer) {
+ console.log("네");
+ // "네"를 선택했을 때 실행할 코드
+ //그리드 저장
+ var basicData = {
+ "projectCode" : "${oPROJECT_CODE}",
+ "holeCode" : "${oHOLE_CODE}",
+ "sampleCode" : "${oHOLE_CODE}" + "-999",
+ "sampleNumber" : "-999",
+ "userid" : "",
+ "datetime" : "",
+ }
+
+ console.log(basicData);
+
+ change_data +=
+ "\r\n" +
+ "0\r\n" +
+ "ignore\r\n" +
+ "" + basicData.projectCode + "\r\n" +
+ "" + basicData.holeCode + "\r\n" +
+ "" + basicData.sampleCode + "\r\n" +
+ "" + basicData.sampleNumber + "\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-999\r\n" +
+ "-\r\n" +
+ "" + basicData.userid + "\r\n" +
+ "" + basicData.datetime + "\r\n" +
+ "";
+
+ setTimeout(function(){fn_submitAllToServerKendo("/web/input/sampleInfoDb.do", return_url, change_data);}, 500);
+ } else {
+ console.log("아니오");
+ // "아니오"를 선택했을 때 실행할 코드
+ return false;
+ }
+ }
change_data += "";
@@ -281,9 +333,28 @@ function fn_save(rUrl){
}else{
return_url = rUrl;
}
-
+
+
//그리드 저장
setTimeout(function(){fn_submitAllToServerKendo("/web/input/sampleInfoDb.do", return_url, change_data);}, 500);
+
+}
+
+// 현재 시분초를 5자리 숫자로 변환하는 로직
+function getCurrentTimeInFiveDigits() {
+ var now = new Date();
+ var hours = now.getHours();
+ var minutes = now.getMinutes();
+ var seconds = now.getSeconds();
+
+ // 5자리 숫자로 변환 (HHmmss 형태)
+ var timeInFiveDigits =
+ (hours < 10 ? "0" : "") + hours +
+ (minutes < 10 ? "0" : "") + minutes +
+ (seconds < 10 ? "0" : "") + seconds.toString().charAt(0); // 초의 첫 번째 자리만 사용
+ timeInFiveDigits = parseInt(timeInFiveDigits); // 문자열을 숫자로 변환
+
+ return timeInFiveDigits;
}
//행추가
@@ -686,6 +757,39 @@ function fn_grid_refresh(){
function fn_kendoGrid() {
var nullTypeString = 'test';
+
+ if( gridData.length == 1 && gridData[0].sampleNumber == '-999' ) {
+ gridData = undefined;
+
+ // table-top-control 클래스를 가진 첫 번째 요소 찾기
+ var tableTopControlElement = document.getElementsByClassName('table-top-control')[0];
+
+ if (tableTopControlElement) {
+ // 추가할 div 요소 생성
+ var newDiv = document.createElement('div');
+ newDiv.textContent = '기본물성시험 데이터가 없는 사업'; // div 내용 설정 (선택 사항)
+
+ // 스타일 적용 (선택 사항)
+ newDiv.style.backgroundColor = '#e53535';
+ newDiv.style.color = '#ffffff';
+ newDiv.style.fontWeight = '600';
+ newDiv.style.padding = '5px 20px';
+ newDiv.style.display = 'inline-block';
+ newDiv.style.width = 'auto';
+ newDiv.style.height = '34px';
+ newDiv.style.borderRadius = '5px';
+ newDiv.style.margin = '0px auto';
+ newDiv.id = 'no-basic-property-test-business'
+
+ // table-top-control 요소에 새로운 div 추가
+ tableTopControlElement.appendChild(newDiv);
+
+ var gridRowCntElement = document.getElementById('GridRowCnt');
+ gridRowCntElement.value = 0;
+ } else {
+ console.log('table-top-control 클래스를 가진 요소를 찾을 수 없습니다.');
+ }
+ }
var kictDataSource = new kendo.data.DataSource ({
data: gridData,
schema: {
@@ -1004,3 +1108,4 @@ function fn_grid_refresh(){
+
diff --git a/src/main/webapp/WEB-INF/views/web/input/sampleInfoDb.jsp b/src/main/webapp/WEB-INF/views/web/input/sampleInfoDb.jsp
index ecfa5339..d3069907 100644
--- a/src/main/webapp/WEB-INF/views/web/input/sampleInfoDb.jsp
+++ b/src/main/webapp/WEB-INF/views/web/input/sampleInfoDb.jsp
@@ -3,6 +3,9 @@
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
오류입니다.
+
+${message}
+
저장 되었습니다.
diff --git a/src/main/webapp/com/css/apply.bat b/src/main/webapp/com/css/apply.bat
index 6cb1cd8a..2472088a 100644
--- a/src/main/webapp/com/css/apply.bat
+++ b/src/main/webapp/com/css/apply.bat
@@ -1,2 +1,2 @@
-copy *.css /y ..\..\..\..\..\..\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\
-copy *.map /y ..\..\..\..\..\..\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\
\ No newline at end of file
+copy *.css /y C:\Users\dbnt\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\
+copy *.map /y C:\Users\dbnt\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\
\ No newline at end of file
diff --git a/src/main/webapp/com/css/open_target.bat b/src/main/webapp/com/css/open_target.bat
index fcd8186b..bea0eb2e 100644
--- a/src/main/webapp/com/css/open_target.bat
+++ b/src/main/webapp/com/css/open_target.bat
@@ -1 +1 @@
-explorer ..\..\..\..\..\..\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\
+explorer C:\Users\dbnt\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\