feat: 교육자료 교체

main
thkim 2024-07-11 14:17:31 +09:00
parent 15828e0dc9
commit 181e062ee3
9 changed files with 175 additions and 29 deletions

View File

@ -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.71:1521:orcl";
/*String url = "jdbc:oracle:thin:@192.168.0.29:1521:xe";이전*/ /*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:@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; * public WebConfirm() { this.connection = null; this.connectionPool = null;
* this.query = null; this.resultSet = null; this.sql = ""; this.resultCnt = 0; * this.query = null; this.resultSet = null; this.sql = ""; this.resultCnt = 0;
@ -177,7 +177,13 @@ public class WebConfirm
resultCnt += query.executeUpdate(connection); resultCnt += query.executeUpdate(connection);
query.close(); 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(); final StringBuffer sbQuery = new StringBuffer();
sbQuery.append(" INSERT INTO TBL_HEADER_HOLE ( "); sbQuery.append(" INSERT INTO TBL_HEADER_HOLE ( ");

View File

@ -101,7 +101,7 @@ public class SampleInfoController {
WebUtil wUtil = new WebUtil(); WebUtil wUtil = new WebUtil();
strUtil sUtil = new strUtil(); strUtil sUtil = new strUtil();
int affectRow = 0; int affectRow = 0;
String sJOB_TYPE = ""; String message = "";
//request //request
String changedData = String.valueOf(params.get("changedDataXML")); String changedData = String.valueOf(params.get("changedDataXML"));
@ -158,7 +158,7 @@ public class SampleInfoController {
Element data = (Element)dataNodeDOC.item(i); Element data = (Element)dataNodeDOC.item(i);
String key; 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 nPROJECT_CODE=data.getElementsByTagName("projectCode");
NodeList nHOLE_CODE=data.getElementsByTagName("holeCode"); NodeList nHOLE_CODE=data.getElementsByTagName("holeCode");
@ -171,13 +171,20 @@ public class SampleInfoController {
params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE )); params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
params.put("SAMPLE_CODE", wUtil.isNullNode(nSAMPLE_CODE )); params.put("SAMPLE_CODE", wUtil.isNullNode(nSAMPLE_CODE ));
sampleService.deleteSampleInfo(params); 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++) { for (int i = 0; i < jobNodeDOC.getLength(); i++) {
String job = jobNodeDOC.item(i).getFirstChild().getNodeValue(); String job = jobNodeDOC.item(i).getFirstChild().getNodeValue();
Element data = (Element)dataNodeDOC.item(i); Element data = (Element)dataNodeDOC.item(i);
String key;
if ("D".equals(job)) { if ("D".equals(job)) {
@ -185,15 +192,36 @@ public class SampleInfoController {
NodeList nHOLE_CODE=data.getElementsByTagName("holeCode"); NodeList nHOLE_CODE=data.getElementsByTagName("holeCode");
NodeList nSAMPLE_NUMBER=data.getElementsByTagName("sampleNumber"); NodeList nSAMPLE_NUMBER=data.getElementsByTagName("sampleNumber");
String sQry = "";
//DELETE //DELETE
params.put("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE)); params.put("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE));
params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE )); params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
params.put("SAMPLE_CODE", wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER )); params.put("SAMPLE_CODE", wUtil.isNullNode(nHOLE_CODE )+ wUtil.isNullNode(nSAMPLE_NUMBER ));
affectRow = sampleService.deleteSampleInfo(params); 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 nPROJECT_CODE=data.getElementsByTagName("projectCode");
NodeList nHOLE_CODE=data.getElementsByTagName("holeCode"); NodeList nHOLE_CODE=data.getElementsByTagName("holeCode");
@ -209,18 +237,6 @@ public class SampleInfoController {
NodeList nSAMPLE_PI=data.getElementsByTagName("samplePi"); NodeList nSAMPLE_PI=data.getElementsByTagName("samplePi");
NodeList nSAMPLE_RD=data.getElementsByTagName("sampleRd"); NodeList nSAMPLE_RD=data.getElementsByTagName("sampleRd");
NodeList nSAMPLE_DESC=data.getElementsByTagName("sampleDesc"); 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("PROJECT_CODE", wUtil.isNullNode(nPROJECT_CODE ));
params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE )); params.put("HOLE_CODE", wUtil.isNullNode(nHOLE_CODE ));
@ -240,6 +256,19 @@ public class SampleInfoController {
params.put("USERID", request.getSession().getAttribute("USERID")); params.put("USERID", request.getSession().getAttribute("USERID"));
affectRow = sampleService.insertSampleInfo(params); 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; affectRow = 0;
} }
model.put("affectRow",affectRow); model.put("affectRow",affectRow);
model.put("message", message); // 오류가 난 원인을 사용자가 알 수 있게 수정 필요. 20240705 1606
return "/web/input/sampleInfoDb"; return "/web/input/sampleInfoDb";

View File

@ -587,8 +587,7 @@ public class RegiController {
HashMap result = masterService.getHistSeq(params); HashMap result = masterService.getHistSeq(params);
if (result == null) { if (result == null) {
//웹 취약점 때문에 수정 //웹 취약점 때문에 수정
// } else {
int insertResult = masterService.insertHistSeq(params); int insertResult = masterService.insertHistSeq(params);
affectRow = affectRow + insertResult; affectRow = affectRow + insertResult;

View File

@ -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 is prod
#Oracle.Url=jdbc:oracle:thin:@192.168.0.8:3452:orcl #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 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 #Oracle.Url=jdbc:oracle:thin:@192.168.0.29:1521:xe

View File

@ -451,8 +451,8 @@
</a> </a>
</c:if> </c:if>
<c:if test="${status.index eq 2}"> <c:if test="${status.index eq 2}">
<a href="#" class="shortcuts-btn-box shortcuts-btn-02" onclick="javascript:fileDownload('22년집합교육자료.zip','22년집합교육자료.zip');"> <a href="#" class="shortcuts-btn-box shortcuts-btn-02" onclick="javascript:fileDownload('23년집합교육자료.zip','23년집합교육자료.zip');">
<span class="shortcuts-btn-text">'22년 건설 시추정보<br />DB사용자<br />집합교육 자료</span> <span class="shortcuts-btn-text">'23년 건설 시추정보<br />DB사용자<br />집합교육 자료</span>
</a> </a>
</c:if> </c:if>
<c:if test="${status.index eq 3}"> <c:if test="${status.index eq 3}">

View File

@ -81,7 +81,7 @@ function fn_save(rUrl){
var kendoColCount = grid.columns.length; // 세로(열) 갯수 var kendoColCount = grid.columns.length; // 세로(열) 갯수
var kendoRowIdx = grid.dataSource._data[kendoRowCount -1]; // 마지막행 데이터 var kendoRowIdx = grid.dataSource._data[kendoRowCount -1]; // 마지막행 데이터
var gridDataCount = gridData.length; var gridDataCount = typeof gridData == 'undefined' ? 0 : gridData.length;
if (!kendoRowCount == 0) { if (!kendoRowCount == 0) {
if (kendoRowIdx.sampleNumber == null || kendoRowIdx.sampleNumber == "") { if (kendoRowIdx.sampleNumber == null || kendoRowIdx.sampleNumber == "") {
@ -197,6 +197,9 @@ function fn_save(rUrl){
for(var i=0; i < _delGridData.length; i++){ for(var i=0; i < _delGridData.length; i++){
var row = _delGridData[i]; var row = _delGridData[i];
if( typeof row == 'undefined') {
continue;
}
var keys = Object.keys(row); var keys = Object.keys(row);
change_data += "<idx>" + (data.length + i) + "</idx>\r\n"; change_data += "<idx>" + (data.length + i) + "</idx>\r\n";
@ -271,6 +274,55 @@ function fn_save(rUrl){
} }
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 +=
"<changedData><changedData>\r\n" +
"<idx>0</idx>\r\n" +
"<job>ignore</job>\r\n" +
"<data><projectCode>" + basicData.projectCode + "</projectCode>\r\n" +
"<holeCode>" + basicData.holeCode + "</holeCode>\r\n" +
"<sampleCode>" + basicData.sampleCode + "</sampleCode>\r\n" +
"<sampleNumber>" + basicData.sampleNumber + "</sampleNumber>\r\n" +
"<sampleDepthFrom>-999</sampleDepthFrom>\r\n" +
"<sampleDepthTo>-999</sampleDepthTo>\r\n" +
"<sampleUscs>-999</sampleUscs>\r\n" +
"<sampleSamplingMethod>-999</sampleSamplingMethod>\r\n" +
"<sampleShape>-999</sampleShape>\r\n" +
"<sampleGs>-999</sampleGs>\r\n" +
"<sampleWc>-999</sampleWc>\r\n" +
"<sampleLl>-999</sampleLl>\r\n" +
"<samplePi>-999</samplePi>\r\n" +
"<sampleRd>-999</sampleRd>\r\n" +
"<sampleDesc>-</sampleDesc>\r\n" +
"<userid>" + basicData.userid + "</userid>\r\n" +
"<datetime>" + basicData.datetime + "</datetime>\r\n" +
"</data></changedData></changedData>";
setTimeout(function(){fn_submitAllToServerKendo("/web/input/sampleInfoDb.do", return_url, change_data);}, 500);
} else {
console.log("아니오");
// "아니오"를 선택했을 때 실행할 코드
return false;
}
}
change_data += "</changedData>"; change_data += "</changedData>";
// ----------------------- kendoGrid XML 구조저장 끝 ----------------------- // ----------------------- kendoGrid XML 구조저장 끝 -----------------------
@ -282,8 +334,27 @@ function fn_save(rUrl){
return_url = rUrl; return_url = rUrl;
} }
//그리드 저장 //그리드 저장
setTimeout(function(){fn_submitAllToServerKendo("/web/input/sampleInfoDb.do", return_url, change_data);}, 500); 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() { function fn_kendoGrid() {
var nullTypeString = 'test'; 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 ({ var kictDataSource = new kendo.data.DataSource ({
data: gridData, data: gridData,
schema: { schema: {
@ -1004,3 +1108,4 @@ function fn_grid_refresh(){
<!-- footer start--> <!-- footer start-->
<c:import url="/com/includeFooterInput.do?projectCode=${oPROJECT_CODE}"/> <c:import url="/com/includeFooterInput.do?projectCode=${oPROJECT_CODE}"/>
<!-- footer end--> <!-- footer end-->

View File

@ -3,6 +3,9 @@
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:if test="${affectRow == 0}"> <c:if test="${affectRow == 0}">
오류입니다. 오류입니다.
<c:if test="${not empty message}">
${message}
</c:if>
</c:if> </c:if>
<c:if test="${affectRow != 0}"> <c:if test="${affectRow != 0}">
저장 되었습니다. 저장 되었습니다.

View File

@ -1,2 +1,2 @@
copy *.css /y ..\..\..\..\..\..\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\geoinfo_eGov_work\com\css\ 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 ..\..\..\..\..\..\.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\

View File

@ -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\