Compare commits

...

8 Commits

52 changed files with 5562 additions and 519 deletions

1192
df Normal file

File diff suppressed because it is too large Load Diff

View File

@ -72,6 +72,13 @@
</repositories>
<dependencies>
<!-- Swagger API Annotation -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
<!-- SMS -->
<dependency>

View File

@ -0,0 +1,118 @@
package geoinfo.api.geoinfo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import java.util.Date;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import geoinfo.api.geoinfo.service.GeoinfoApiV1Service;
import geoinfo.util.MyUtil;
@Controller
@RequiredArgsConstructor
@RequestMapping("/api/geoinfo/v1")
public class GeoinfoApiV1Controller {
private final Logger logger = LoggerFactory.getLogger(GeoinfoApiV1Controller.class);
@Autowired
GeoinfoApiV1Service geoinfoApiV1Service;
/**
* GeoInfo API .
* URL .
* @param serviceName URL (: abc, def)
* @param request HttpServletRequest
* @param strJSON JSON
* @param response HttpServletResponse
* @return JSONObject
*/
@ApiOperation(value = "GeoInfo API 서비스 통합 엔드포인트", notes = "URL 경로에 지정된 서비스명에 따라 적절한 비즈니스 로직을 동적으로 처리합니다.<br />" +
"- 요청 본문(body)에 JSON 형식의 파라미터를 전달해야 합니다.<br />" +
"- 예시 URL: /api/geoinfo/v1/getProjectInfo.do, /api/geoinfo/v1/getBoreholeInfo.do<br />" +
"- 변경자명 : 김종훈<br />" +
"- 변경일자 : 2025.08.14")
@RequestMapping(value = "/{spName}.do", method = RequestMethod.GET)
@ResponseBody
public JSONObject handleApiService(
@ApiParam(value = "URL 경로에 포함된 서비스 이름", required = true, example = "getProjectInfo") @PathVariable("spName") String spName,
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
// 2. HashMap을 사용하여 JSONObject 생성
JSONObject jsonObject = new JSONObject();
for (HashMap.Entry<String, Object> entry : params.entrySet()) {
if ("".equals(entry.getValue())) {
entry.setValue(null);
jsonObject.put(entry.getKey(), entry.getValue());
}
}
// 3. toJSONString() 메서드로 JSON 문자열 출력
String jsonString = jsonObject.toJSONString();
logger.info("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"procedure Name: " + spName + "\n" +
"Request params: \n" + jsonString + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
try {
geoinfoApiV1Service.handleApiService(request, params, spName, jsonResponse);
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"jsonString:[\n" + jsonString + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
logger.info("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"Response JSON: [" + jsonResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n");
return jsonResponse;
}
}

View File

@ -0,0 +1,135 @@
package geoinfo.api.geoinfo.service;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
/**
* Geoinfo API v1 Mapper
* @author
* @since 2025.08.18
* @version 1.0
* @see
*
* <pre>
* << (Modification Information) >>
*
*
* ------- -------- ---------------------------
* 2025.08.18
*
* </pre>
*/
@Mapper("geoinfoApiV1Mapper")
public interface GeoinfoApiV1Mapper {
// ==================================================================================================
// 프로젝트 정보 (Project Info)
// ==================================================================================================
public ArrayList<EgovMap> spGetTblProjectInfo(HashMap<String, Object> params) throws SQLException;
public int spCntTblProjectInfo(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetSelectclassInfoP(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetSelectclassInfoPh(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblTopoGeology(HashMap<String, Object> params) throws SQLException;
public int spCntTblTopoGeology(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblResistivitySurvey(HashMap<String, Object> params) throws SQLException;
public int spCntTblResistivitySurvey(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRefractionSurvey(HashMap<String, Object> params) throws SQLException;
public int spCntTblRefractionSurvey(HashMap<String, Object> params) throws SQLException;
// ==================================================================================================
// 시추공 정보 (Borehole Info)
// ==================================================================================================
public ArrayList<EgovMap> spGetTblHeader(HashMap<String, Object> params) throws SQLException;
public int spCntTblHeader(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetSelectclassInfoH(HashMap<String, Object> params) throws SQLException;
// ==================================================================================================
// 시추공 부속 정보 (Borehole Appendix)
// ==================================================================================================
// 지층/시료 정보
public ArrayList<EgovMap> spGetTblLayerInfo(HashMap<String, Object> params) throws SQLException;
public int spCntTblLayerInfo(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblSampleInfo(HashMap<String, Object> params) throws SQLException;
public int spCntTblSampleInfo(HashMap<String, Object> params) throws SQLException;
// 현장 시험
public ArrayList<EgovMap> spGetTblSpt(HashMap<String, Object> params) throws SQLException;
public int spCntTblSpt(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblSlickensideInfo(HashMap<String, Object> params) throws SQLException;
public int spCntTblSlickensideInfo(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRqd(HashMap<String, Object> params) throws SQLException;
public int spCntTblRqd(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblDsf(HashMap<String, Object> params) throws SQLException;
public int spCntTblDsf(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRmr(HashMap<String, Object> params) throws SQLException;
public int spCntTblRmr(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblQ(HashMap<String, Object> params) throws SQLException;
public int spCntTblQ(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblFieldWaterpressure(HashMap<String, Object> params) throws SQLException;
public int spCntTblFieldWaterpressure(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblWpTest(HashMap<String, Object> params) throws SQLException;
public int spCntTblWpTest(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblFieldPermeability(HashMap<String, Object> params) throws SQLException;
public int spCntTblFieldPermeability(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblFieldperSub(HashMap<String, Object> params) throws SQLException;
public int spCntTblFieldperSub(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblFieldPressuremeter(HashMap<String, Object> params) throws SQLException;
public int spCntTblFieldPressuremeter(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblFieldConePenetra(HashMap<String, Object> params) throws SQLException;
public int spCntTblFieldConePenetra(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblBoreholeWave(HashMap<String, Object> params) throws SQLException;
public int spCntTblBoreholeWave(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblDownhole(HashMap<String, Object> params) throws SQLException;
public int spCntTblDownhole(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblDensity(HashMap<String, Object> params) throws SQLException;
public int spCntTblDensity(HashMap<String, Object> params) throws SQLException;
// 실내 시험
public ArrayList<EgovMap> spGetTblClassification(HashMap<String, Object> params) throws SQLException;
public int spCntTblClassification(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblCbrCompac(HashMap<String, Object> params) throws SQLException;
public int spCntTblCbrCompac(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblConsolidationUsual(HashMap<String, Object> params) throws SQLException;
public int spCntTblConsolidationUsual(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblConsolidation(HashMap<String, Object> params) throws SQLException;
public int spCntTblConsolidation(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblUnconfinedUsual(HashMap<String, Object> params) throws SQLException;
public int spCntTblUnconfinedUsual(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblTriaxialUsual(HashMap<String, Object> params) throws SQLException;
public int spCntTblTriaxialUsual(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblTriaxialCu(HashMap<String, Object> params) throws SQLException;
public int spCntTblTriaxialCu(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblTriaxialUu(HashMap<String, Object> params) throws SQLException;
public int spCntTblTriaxialUu(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblResonantUsual(HashMap<String, Object> params) throws SQLException;
public int spCntTblResonantUsual(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblResonant(HashMap<String, Object> params) throws SQLException;
public int spCntTblResonant(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRepeatedTriaxialU(HashMap<String, Object> params) throws SQLException;
public int spCntTblRepeatedTriaxialU(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRepeatedTriaxial(HashMap<String, Object> params) throws SQLException;
public int spCntTblRepeatedTriaxial(HashMap<String, Object> params) throws SQLException;
// 암석 시험
public ArrayList<EgovMap> spGetTblRockUniaxial(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockUniaxial(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRockTriaxial(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockTriaxial(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRockPointload(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockPointload(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRockJointshear(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockJointshear(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRockResonantUsual(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockResonantUsual(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRockReptTriU(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockReptTriU(HashMap<String, Object> params) throws SQLException;
public ArrayList<EgovMap> spGetTblRockReptTri(HashMap<String, Object> params) throws SQLException;
public int spCntTblRockReptTri(HashMap<String, Object> params) throws SQLException;
}

View File

@ -0,0 +1,12 @@
package geoinfo.api.geoinfo.service;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONObject;
public interface GeoinfoApiV1Service {
int handleApiService(HttpServletRequest request, HashMap<String, Object> params, String spName, JSONObject jsonResponse) throws Exception;
}

View File

@ -0,0 +1,217 @@
package geoinfo.api.geoinfo.service.impl;
import geoinfo.api.geoinfo.service.GeoinfoApiV1Mapper;
import geoinfo.api.geoinfo.service.GeoinfoApiV1Service;
import java.util.ArrayList;
import java.util.HashMap;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@Service("geoinfoApiV1Service")
public class GeoinfoApiV1ServiceImpl implements GeoinfoApiV1Service {
private static final Logger LOGGER = LoggerFactory.getLogger(GeoinfoApiV1ServiceImpl.class);
@Resource(name="geoinfoApiV1Mapper")
private GeoinfoApiV1Mapper geoinfoApiV1Mapper;
public int handleApiService(HttpServletRequest request, HashMap<String, Object> params, String spName, JSONObject jsonResponse) throws Exception {
//호출 프로시저 유효성 체크
spName = spName.trim();
// 서비스 이름에 따라 분기 처리
if ("sp-get-tbl-project-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblProjectInfo(params));
} else if ("sp-cnt-tbl-project-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblProjectInfo(params));
} else if ("sp-get-selectclass-info-p".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetSelectclassInfoP(params));
} else if ("sp-get-selectclass-info-ph".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetSelectclassInfoPh(params));
} else if ("sp-get-tbl-topo-geology".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblTopoGeology(params));
} else if ("sp-cnt-tbl-topo-geology".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblTopoGeology(params));
} else if ("sp-get-tbl-resistivity-survey".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblResistivitySurvey(params));
} else if ("sp-cnt-tbl-resistivity-survey".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblResistivitySurvey(params));
} else if ("sp-get-tbl-refraction-survey".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRefractionSurvey(params));
} else if ("sp-cnt-tbl-refraction-survey".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRefractionSurvey(params));
} else if ("sp-get-tbl-header".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblHeader(params));
} else if ("sp-cnt-tbl-header".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblHeader(params));
} else if ("sp-get-selectclass-info-h".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetSelectclassInfoH(params));
} else if ("sp-get-tbl-layer-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblLayerInfo(params));
} else if ("sp-cnt-tbl-layer-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblLayerInfo(params));
} else if ("sp-get-tbl-sample-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblSampleInfo(params));
} else if ("sp-cnt-tbl-sample-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblSampleInfo(params));
} else if ("sp-get-tbl-spt".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblSpt(params));
} else if ("sp-cnt-tbl-spt".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblSpt(params));
} else if ("sp-get-tbl-slickenside-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblSlickensideInfo(params));
} else if ("sp-cnt-tbl-slickenside-info".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblSlickensideInfo(params));
} else if ("sp-get-tbl-rqd".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRqd(params));
} else if ("sp-cnt-tbl-rqd".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRqd(params));
} else if ("sp-get-tbl-dsf".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblDsf(params));
} else if ("sp-cnt-tbl-dsf".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblDsf(params));
} else if ("sp-get-tbl-rmr".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRmr(params));
} else if ("sp-cnt-tbl-rmr".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRmr(params));
} else if ("sp-get-tbl-q".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblQ(params));
} else if ("sp-cnt-tbl-q".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblQ(params));
} else if ("sp-get-tbl-field-waterpressure".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblFieldWaterpressure(params));
} else if ("sp-cnt-tbl-field-waterpressure".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblFieldWaterpressure(params));
} else if ("sp-get-tbl-wp-test".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblWpTest(params));
} else if ("sp-cnt-tbl-wp-test".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblWpTest(params));
} else if ("sp-get-tbl-field-permeability".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblFieldPermeability(params));
} else if ("sp-cnt-tbl-field-permeability".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblFieldPermeability(params));
} else if ("sp-get-tbl-fieldper-sub".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblFieldperSub(params));
} else if ("sp-cnt-tbl-fieldper-sub".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblFieldperSub(params));
} else if ("sp-get-tbl-field-pressuremeter".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblFieldPressuremeter(params));
} else if ("sp-cnt-tbl-field-pressuremeter".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblFieldPressuremeter(params));
} else if ("sp-get-tbl-field-cone-penetra".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblFieldConePenetra(params));
} else if ("sp-cnt-tbl-field-cone-penetra".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblFieldConePenetra(params));
} else if ("sp-get-tbl-borehole-wave".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblBoreholeWave(params));
} else if ("sp-cnt-tbl-borehole-wave".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblBoreholeWave(params));
} else if ("sp-get-tbl-downhole".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblDownhole(params));
} else if ("sp-cnt-tbl-downhole".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblDownhole(params));
} else if ("sp-get-tbl-density".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblDensity(params));
} else if ("sp-cnt-tbl-density".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblDensity(params));
} else if ("sp-get-tbl-classification".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblClassification(params));
} else if ("sp-cnt-tbl-classification".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblClassification(params));
} else if ("sp-get-tbl-cbr-compac".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblCbrCompac(params));
} else if ("sp-cnt-tbl-cbr-compac".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblCbrCompac(params));
} else if ("sp-get-tbl-consolidation-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblConsolidationUsual(params));
} else if ("sp-cnt-tbl-consolidation-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblConsolidationUsual(params));
} else if ("sp-get-tbl-consolidation".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblConsolidation(params));
} else if ("sp-cnt-tbl-consolidation".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblConsolidation(params));
} else if ("sp-get-tbl-unconfined-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblUnconfinedUsual(params));
} else if ("sp-cnt-tbl-unconfined-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblUnconfinedUsual(params));
} else if ("sp-get-tbl-triaxial-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblTriaxialUsual(params));
} else if ("sp-cnt-tbl-triaxial-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblTriaxialUsual(params));
} else if ("sp-get-tbl-triaxial-cu".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblTriaxialCu(params));
} else if ("sp-cnt-tbl-triaxial-cu".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblTriaxialCu(params));
} else if ("sp-get-tbl-triaxial-uu".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblTriaxialUu(params));
} else if ("sp-cnt-tbl-triaxial-uu".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblTriaxialUu(params));
} else if ("sp-get-tbl-resonant-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblResonantUsual(params));
} else if ("sp-cnt-tbl-resonant-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblResonantUsual(params));
} else if ("sp-get-tbl-resonant".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblResonant(params));
} else if ("sp-cnt-tbl-resonant".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblResonant(params));
} else if ("sp-get-tbl-repeated-triaxial-u".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRepeatedTriaxialU(params));
} else if ("sp-cnt-tbl-repeated-triaxial-u".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRepeatedTriaxialU(params));
} else if ("sp-get-tbl-repeated-triaxial".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRepeatedTriaxial(params));
} else if ("sp-cnt-tbl-repeated-triaxial".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRepeatedTriaxial(params));
} else if ("sp-get-tbl-rock-uniaxial".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockUniaxial(params));
} else if ("sp-cnt-tbl-rock-uniaxial".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockUniaxial(params));
} else if ("sp-get-tbl-rock-triaxial".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockTriaxial(params));
} else if ("sp-cnt-tbl-rock-triaxial".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockTriaxial(params));
} else if ("sp-get-tbl-rock-pointload".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockPointload(params));
} else if ("sp-cnt-tbl-rock-pointload".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockPointload(params));
} else if ("sp-get-tbl-rock-jointshear".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockJointshear(params));
} else if ("sp-cnt-tbl-rock-jointshear".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockJointshear(params));
} else if ("sp-get-tbl-rock-resonant-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockResonantUsual(params));
} else if ("sp-cnt-tbl-rock-resonant-usual".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockResonantUsual(params));
} else if ("sp-get-tbl-rock-rept-tri-u".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockReptTriU(params));
} else if ("sp-cnt-tbl-rock-rept-tri-u".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockReptTriU(params));
} else if ("sp-get-tbl-rock-rept-tri".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spGetTblRockReptTri(params));
} else if ("sp-cnt-tbl-rock-rept-tri".equalsIgnoreCase(spName)) {
jsonResponse.put("data", geoinfoApiV1Mapper.spCntTblRockReptTri(params));
} else {
// 지원하지 않는 서비스명인 경우 오류 처리
throw new Exception("Unsupported service name: " + spName);
}
// 성공 응답 기본값 설정
jsonResponse.put("resultCode", 0);
jsonResponse.put("result", "true");
jsonResponse.put("message", "SUCCESS");
// 성공 코드 반환
return 0;
}
}

View File

@ -106,6 +106,7 @@ public class DrillingInputServiceImpl implements DrillingInputService {
//String[] words = projectMasterCompanyName.split(" ");
//String lastWord = words[words.length - 1];
//spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", lastWord);
projectMasterCompanyName = projectMasterCompanyName.trim();
spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", projectMasterCompanyName);
drillingInputMapper.spGetMasterCompanyDistrict(spGetMasterCompanyDistrictParams);

View File

@ -1,58 +1,28 @@
package geoinfo.drilling.inquiry;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.util.Log;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import geoinfo.com.WebConfirm;
import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import geoinfo.map.mapControl.service.MapControlService;
import geoinfo.regi.selectClassInfo.service.SelectClassService;
import geoinfo.regi.status.service.RegiPageService;
import geoinfo.regi.util.exportGeotechnicalPointShp2;
import geoinfo.util.MyUtil;
import ictway.comm.util.parseData;
import ictway.comm.util.strUtil;
import ictway.comm.web.WebUtil;
import ictway.whois.whoisSMS;
@Controller
public class DrillingInquiryController {

View File

@ -12,6 +12,7 @@ public interface DrillingInquiryMapper {
public Long sPCntTblCsiByKeyword(HashMap<String, Object> params) throws SQLException;
public List<EgovMap> spGetTblCsiByKeyword(HashMap<String, Object> params) throws SQLException;
public String getComCodes(HashMap<String, Object> params) throws SQLException;
public String spGetConstCompanyName(Long constCompanyCode) throws SQLException;
public String spGetProjectMbr(HashMap<String, Object> params) throws SQLException;
public List<EgovMap> drillingInquiryAutocompleteList(HashMap<String, Object> params) throws SQLException;

View File

@ -5,6 +5,7 @@ import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryMapper;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import geoinfo.main.login.service.LoginMapper;
import geoinfo.main.login.service.LoginService;
import geoinfo.util.MyUtil;
import java.sql.SQLException;
@ -13,6 +14,7 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -38,6 +40,10 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
@Autowired
DrillingInputService drillingInputService;
@Resource(name = "loginService")
private LoginService loginService;
@Resource(name="loginMapper")
private LoginMapper loginMapper;
@ -70,12 +76,32 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
try {
try {
String keyName = "constName";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constCompanyAdmin";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constCompanyTel";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constCompanyName";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constComCodes";
if( params.get("constCompanyName") != null && !MyUtil.getStringFromObject(params.get("constCompanyName")).trim().isEmpty() ) {
params.put(keyName, drillingInquiryMapper.getComCodes(params));
} else {
params.put(keyName, null);
}
Long count = drillingInquiryMapper.sPCntTblCsiByKeyword(params);
List<EgovMap> datas = drillingInquiryMapper.spGetTblCsiByKeyword(params);
String constStateCodeKey = "constStateCode";
String constStateCodeKey = "constStateCode";
String constCompanyCodeKey = "constCompanyCode";
String projectStateCodeKey = "projectStateCode";
String crtDtKey = "crtDt";
@ -325,6 +351,30 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
throw new Exception( "로그인이 필요한 서비스입니다." );
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("userid", userId);
Map<String, Object> result = loginService.selectWebMemberIn(map);
int cls = MyUtil.getIntegerFromObject( result.get("cls") );
if( cls == 2 ) {
// 발주기관 계정으로 조회한 경우, 본인의 영역에 해당하는 프로젝트만 조회한다.
String masterCompanyCode = MyUtil.getStringFromObject( result.get("master_company_code") );
HashMap<String, Object> spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userId);
String glDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") );
String gmDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") );
String gsDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") );
params.put("glDistrict", glDistrict);
params.put("gmDistrict", gmDistrict);
params.put("gsDistrict", gsDistrict);
}
try {
try {

View File

@ -0,0 +1,53 @@
package geoinfo.drilling.statistics;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import geoinfo.util.MyUtil;
@Controller
public class DrillingStatisticsController {
private static final Logger LOGGER = LoggerFactory.getLogger(DrillingStatisticsController.class);
@Autowired
DrillingInquiryService drillingInquiryService;
@RequestMapping(value = "/drilling/statistics.do")
public String drillingStatistics(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if(request.getSession().getAttribute("USERNAME") == null){
return "redirect:/index.do";
}
return "/drilling/statistics/drilling_statistics";
}
@RequestMapping(value = "/drilling/notice.do")
public String drillingNotice(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if(request.getSession().getAttribute("USERNAME") == null){
return "redirect:/index.do";
}
return "/drilling/statistics/drilling_notice";
}
}

View File

@ -0,0 +1,15 @@
package geoinfo.drilling.statistics.service;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@Mapper("drillingStatisticsMapper")
public interface DrillingStatisticsMapper {
}

View File

@ -0,0 +1,16 @@
package geoinfo.drilling.statistics.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONObject;
import egovframework.rte.psl.dataaccess.util.EgovMap;
public interface DrillingStatisticsService {
}

View File

@ -0,0 +1,53 @@
package geoinfo.drilling.statistics.service.impl;
import geoinfo.drilling.input.service.DrillingInputMapper;
import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.drilling.inquiry.service.DrillingInquiryMapper;
import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import geoinfo.drilling.statistics.service.DrillingStatisticsService;
import geoinfo.main.login.service.LoginMapper;
import geoinfo.main.login.service.LoginService;
import geoinfo.util.MyUtil;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import oracle.sql.TIMESTAMP;
import org.json.simple.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@Service("drillingStatisticsService")
public class DrillingStatisticsServiceImpl implements DrillingStatisticsService {
@Resource(name="drillingInquiryMapper")
private DrillingInquiryMapper drillingInquiryMapper;
@Resource(name="drillingInputMapper")
private DrillingInputMapper drillingInputMapper;
@Autowired
DrillingInputService drillingInputService;
@Resource(name = "loginService")
private LoginService loginService;
@Resource(name="loginMapper")
private LoginMapper loginMapper;
}

View File

@ -63,7 +63,11 @@ public class CommunityController {
List<Map<String, Object>> row = communityService.selectRow(page);
mv.addObject("rows", row);
mv = GeoinfoCommon.setPage(Integer.parseInt(rowCount.get("lastpage").toString()) - 1, page, mv, "cmuboard");
if( rowCount != null ) {
mv = GeoinfoCommon.setPage(Integer.parseInt(rowCount.get("lastpage").toString()) - 1, page, mv, "cmuboard");
} else {
mv = GeoinfoCommon.setPage(-1, page, mv, "cmuboard");
}
return mv;
}

View File

@ -2894,10 +2894,12 @@ public class LoginController {
byte[] digest = md.digest();
String shaHex = "";
shaHex = DatatypeConverter.printHexBinary(digest);
newPass = GeoinfoCommon.parseData(newPass);
newPass = ScriptUtil.getSha256(newPass, "UTF-8").substring(0, 20);
String newPassHash = GeoinfoCommon.parseData(newPass);
newPassHash = ScriptUtil.getSha256(newPassHash, "UTF-8").substring(0, 20);
model.put("data", newPass);
model.put("data", newPassHash);
model.put("original", newPass);
model.put("notice", "# sharp is not supported");
return "jsonView";
}

View File

@ -691,7 +691,7 @@ public class MainController
startDate = (String)params.get("startDate");
}else {
startDate = Integer.toString(thisYear);
startDate = "2014";
startDate = GeoinfoCommon.parseData(String.valueOf(params.get("startDate")));
}
if(!"".equals(endDate) && endDate != null && !"null".equals(endDate) && !"undefined".equals(endDate)) {
@ -1286,7 +1286,7 @@ public class MainController
return mv;
}
// 개인정보처리방침
// 개인정보처리방침(20250801)
@RequestMapping(value = "personalinfo.do")
public ModelAndView personalinfo(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) throws Exception
{
@ -1295,6 +1295,15 @@ public class MainController
return mv;
}
// 개인정보처리방침 이전 방침(20240801)
@RequestMapping(value = "personalinfo_20240801.do")
public ModelAndView personalinfo_20240801(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) throws Exception
{
ModelAndView mv = new ModelAndView("home/personalinfo_20240801");
return mv;
}
// 개인정보처리방침 이전 방침(20230101)
@RequestMapping(value = "personalinfo_20230101.do")
public ModelAndView personalinfo_20230101(Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) throws Exception

View File

@ -30,8 +30,10 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.jfree.util.Log;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@ -43,6 +45,7 @@ import org.springframework.web.servlet.ModelAndView;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import geoinfo.api.geoinfo.service.GeoinfoApiV1Service;
import geoinfo.com.GeoInfoSessionMgrListener;
import geoinfo.com.GeoinfoCommon;
import geoinfo.com.MultiLoginPreventor;
@ -76,11 +79,14 @@ public class MapLeftController {
@Resource(name = "headerService")
private HeaderService headerService;
@Resource(name = "drillingHomeService")
private DrillingHomeService drillingHomeService;
@Autowired
private GeoinfoApiV1Service geoinfoApiV1Service;
private final static Logger logger = LoggerFactory.getLogger(GeoInfoSessionMgrListener.class);
@ -259,6 +265,17 @@ public class MapLeftController {
model.put("bbox", bbox);
model.put("locationDataYn", locationDataYn);*/
model.put("userId", request.getSession().getAttribute("USERID"));
JSONObject jsonResponse = new JSONObject();
HashMap<String, Object> handleApiServiceParams = new HashMap<String, Object>();
handleApiServiceParams.put("holeCode", params.get("hcode"));
geoinfoApiV1Service.handleApiService(request, handleApiServiceParams, "sp-get-selectclass-info-h", jsonResponse);
ArrayList<HashMap<String, Object>> dataList = (ArrayList<HashMap<String, Object>>)jsonResponse.get("data");
if( dataList != null && 0 < dataList.size() ) {
model.put("data", dataList.get(0));
} else {
model.put("data", new HashMap<String, Object>());
}
return "jsonView";
}
@ -303,13 +320,13 @@ public class MapLeftController {
String sidoSub = "";
String gugunSub = "";
String dongSub = "";
// 발주기관 프로젝트 코드만 조회
String masterCompanyCode = null;
String masterCompanyProjectCodes = null;
if( params.get("masterCompanyCode") != null ) {
masterCompanyCode = GeoinfoCommon.parseData(params.get("masterCompanyCode").toString().trim());
HashMap<String, Object> paramsMasterCompanyCode = new HashMap<String, Object>();
paramsMasterCompanyCode.put("COM_CODE", masterCompanyCode);
masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsComma(paramsMasterCompanyCode);
@ -317,7 +334,7 @@ public class MapLeftController {
params.put("masterCompanyCode", masterCompanyCode);
params.put("masterCompanyProjectCodes", masterCompanyProjectCodes);
}
if (!(sido.equals("all"))) {
sidoSub = sido.substring(0, 4);
@ -644,22 +661,15 @@ public class MapLeftController {
@RequestMapping(value = "/map/mapSichInformation.do")
public String mapSichInformation(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
/*List<EgovMap> result = mapControlService.selectSichInformation(params);*/
/*List<EgovMap> hole = mapLeftService.selectHeaderFromProjectCode(params);*/
params.put("pcodePer", params.get("pcode") +"%");
EgovMap bbox = mapLeftService.selectTblHeaderBBOX(params);
/*EgovMap project = mapLeftService.selectProjectInfo2(params);*/
logger.debug("-------------------동작확인1");
/*EgovMap locationDataYn = mapLeftService.getLoYn(params);*/
/*EgovMap project = mapLeftService.selectProjectInfo(params);*/
logger.debug("-------------------동작확인2");
/* List<EgovMap> projectYn = mapLeftService.selectTblProjectInformationYn(params);*/
logger.debug("-------------------동작확인3");
/*model.put("locationDataYn", locationDataYn);*/
EgovMap bbox = mapLeftService.selectTblHeaderBBOX(params);
JSONObject jsonResponse = new JSONObject();
HashMap<String, Object> handleApiServiceParams = new HashMap<String, Object>();
handleApiServiceParams.put("projCode", params.get("pcode"));
geoinfoApiV1Service.handleApiService(request, handleApiServiceParams, "sp-get-selectclass-info-p", jsonResponse);
EgovMap projectCount = mapLeftService.selectTblProjectCount(params);
params.put("stanSpt", projectCount.get("stanSpt"));
@ -692,26 +702,23 @@ public class MapLeftController {
params.put("sampleInfo", projectCount.get("sampleInfo"));
model.put("projectCount", projectCount);
model.put("projectCount", projectCount);
model.put("data", jsonResponse.get("data"));
EgovMap project = mapLeftService.selectProjectInfo(params);
model.put("project", project);
// projectYn에 시추공 별 시험여부가 들어간다.
List<EgovMap> projectYn = mapLeftService.selectTblProjectInformationYn(params);
logger.debug("-------------------동작확인4");
geoinfoApiV1Service.handleApiService(request, handleApiServiceParams, "sp-get-selectclass-info-ph", jsonResponse);
model.put("testCountsPerBorehole", jsonResponse.get("data"));
logger.debug("-------------------동작확인5");
model.put("projectYn", projectYn);
model.put("userId", request.getSession().getAttribute("USERID"));
/*model.put("hole", hole);*/
model.put("bbox", bbox);
/*model.put("result", result);*/
/*model.put("projectYn", projectYn);*/
return "jsonView";
}
@ -917,6 +924,47 @@ public class MapLeftController {
return "map/left/include/mapSearchArea";
}
@RequestMapping(value = "/map/mapSearchDis.do")
public String mapSearchDist(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
params.put("viewPage", viewPage);
EgovMap result = mapLeftService.selectProjectListByDist( params );
if (params.get("page")!= null) {
pageIndex = Integer.parseInt(GeoinfoCommon.parseData(String.valueOf(params.get("page")))); // 현재페이지번호
} else {
pageIndex = 0;
}
int lastPage = Integer.parseInt(result.get("count").toString()) / viewPage;
// if (!lastPage) {
lastPageIndex = lastPage - 1;
pageIndex = (pageIndex > 0) ? pageIndex : 0;
lastPageIndex = (lastPageIndex > 0) ? lastPageIndex : 0;
pageIndex = (pageIndex > lastPageIndex) ? lastPageIndex : pageIndex;
// }
initPageIndex(pageIndex, lastPageIndex);
params.put("pageIndex", nowPage+1);
EgovMap rtn_result = mapLeftService.selectProjectListByDist( params );
model.addAttribute("result", rtn_result.get("datas"));
model.addAttribute("params", params);
model.addAttribute("startPage", startPage);
model.addAttribute("endPage", endPage);
model.addAttribute("nowPage", nowPage);
model.addAttribute("nextPage", next);
model.addAttribute("prePage", pre);
// 발주처 검색
return "map/left/include/mapSearchDist";
}
int pageIndex = 0; // 현재페이지번호
int lastPageIndex = 0; // 마지막페이지번호
int viewPage = Integer.parseInt(EgovProperties.getGeoinfoProperty("Globals.VIEWPAGE")) - 1; // 한번에

View File

@ -21,6 +21,8 @@ public interface MapLeftMapper {
EgovMap selectProjectInfo2(Map<String, Object> params) throws Exception;
EgovMap selectTempProjectInfo(Map<String, Object> params) throws Exception;
EgovMap selectGetHoleCodeInfo(Map<String, Object> params) throws Exception;
EgovMap selectGetHoleCodeDetailInfo(Map<String, Object> params) throws Exception;
@ -107,4 +109,8 @@ public interface MapLeftMapper {
EgovMap selectTblProjectCount(Map<String, Object> params) throws Exception;
Long sPCntTblCsiByKeyword(Map<String, Object> params) throws Exception;
List<EgovMap> spGetTblCsiByKeyword(Map<String, Object> params) throws Exception;
}

View File

@ -111,5 +111,7 @@ public interface MapLeftService {
EgovMap selectTblProjectCount(Map<String, Object> params) throws Exception;
EgovMap selectProjectListByDist(Map<String, Object> params) throws Exception;
}

View File

@ -5,6 +5,7 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
@ -24,6 +25,7 @@ import org.springframework.web.multipart.MultipartRequest;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import geoinfo.com.GeoinfoCommon;
import geoinfo.com.file.FileCmmn;
import geoinfo.map.left.service.MapLeftMapper;
import geoinfo.map.left.service.MapLeftService;
@ -59,7 +61,12 @@ public class MapLeftServiceImpl implements MapLeftService{
@Override
public EgovMap selectProjectInfo(Map<String, Object> params) throws Exception {
return mapLeftMapper.selectProjectInfo(params);
EgovMap resultMap = new EgovMap();
resultMap = mapLeftMapper.selectProjectInfo(params);
if (resultMap == null) {
resultMap = mapLeftMapper.selectTempProjectInfo(params);
}
return resultMap;
}
@Override
@ -516,4 +523,31 @@ public class MapLeftServiceImpl implements MapLeftService{
return mapLeftMapper.selectTblProjectCount(params);
}
}
@Override
public EgovMap selectProjectListByDist(Map<String, Object> params) throws Exception {
EgovMap resultMap = new EgovMap();
params.put("constTag", "P");
params.put("masterCompanyOCode", GeoinfoCommon.parseData(params.get("o").toString()));
params.put("masterCompanyTwCode", GeoinfoCommon.parseData(params.get("tw").toString()));
params.put("masterCompanyThCode", GeoinfoCommon.parseData(params.get("th").toString()));
params.put("masterCompanyName", "");
params.put("nPage", params.get("pageIndex"));
params.put("nCount", params.get("viewPage"));
Long count = mapLeftMapper.sPCntTblCsiByKeyword(params);
List<EgovMap> datas = mapLeftMapper.spGetTblCsiByKeyword(params);
if (datas.size() < 1) {
datas = new ArrayList<EgovMap>();
}
resultMap.put("count", count);
resultMap.put("datas", datas);
return resultMap;
}
}

View File

@ -906,5 +906,19 @@ public class MapContorlController {
}
return crosses % 2 > 0;
}
/**
* .
* @param params
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value = "/map/hole-name-by-user.do", method = RequestMethod.GET)
public String holeNameByUser(@RequestParam Map<String, Object> params, ModelMap model) throws Exception {
model.put("data", mapControlService.holeNameByUser(params));
return "jsonView";
}
}

View File

@ -76,4 +76,5 @@ public interface MapControlMapper {
List<EgovMap> selectHeaderSichInformation(Map<String, Object> params) throws Exception;
List<EgovMap> holeNameByUser(Map<String, Object> params) throws Exception;
}

View File

@ -74,5 +74,7 @@ public interface MapControlService {
List<EgovMap> selectSichInformation(Map<String, Object> params) throws Exception;
List<EgovMap> selectHeaderSichInformation(Map<String, Object> params) throws Exception;
List<EgovMap> holeNameByUser(Map<String, Object> params) throws Exception;
}

View File

@ -184,5 +184,8 @@ public class MapContorlServiceImpl implements MapControlService{
return mapControlMapper.selectHeaderSichInformation(params);
}
@Override
public List<EgovMap> holeNameByUser(Map<String, Object> params) throws Exception {
return mapControlMapper.holeNameByUser(params);
}
}

View File

@ -6,6 +6,7 @@ import geoinfo.com.GeoinfoCommon;
import geoinfo.map.projectSearch.service.MapProjectSearchService;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -38,6 +39,7 @@ public class MapProjectSearchController {
String dsf = GeoinfoCommon.parseData(String.valueOf(params.get("dsf")));//
String slickenside = GeoinfoCommon.parseData(String.valueOf(params.get("slickenside")));
String q = GeoinfoCommon.parseData(String.valueOf(params.get("q")));
String cone = GeoinfoCommon.parseData(String.valueOf(params.get("cone")));
String rmr = GeoinfoCommon.parseData(String.valueOf(params.get("rmr")));
String classification9 = GeoinfoCommon.parseData(String.valueOf(params.get("classification9")));
@ -61,6 +63,7 @@ public class MapProjectSearchController {
String rock_resonant_usual = GeoinfoCommon.parseData(String.valueOf(params.get("rock_resonant_usual")));
String density = GeoinfoCommon.parseData(String.valueOf(params.get("density")));
String ps = GeoinfoCommon.parseData(String.valueOf(params.get("ps")));
String downhole = GeoinfoCommon.parseData(String.valueOf(params.get("downhole")));
String refraction_survey = GeoinfoCommon.parseData(String.valueOf(params.get("refraction_survey")));
String resistivity_survey = GeoinfoCommon.parseData(String.valueOf(params.get("resistivity_survey")));
@ -92,6 +95,11 @@ public class MapProjectSearchController {
} else if (q.equals("on") || q.equals("1")) {
q = "1";
}
if (cone == null) {
cone = "0";
} else if (cone.equals("on") || cone.equals("1")) {
cone = "1";
}
if (rmr == null) {
rmr = "0";
} else if (rmr.equals("on") || rmr.equals("1")) {
@ -185,6 +193,11 @@ public class MapProjectSearchController {
else if ((density.equals("on")) || (density.equals("1"))) {
density = "1";
}
if (ps == null) {
ps = "0";
} else if ((ps.equals("on")) || (ps.equals("1"))) {
ps = "1";
}
if (downhole == null)
downhole = "0";
else if ((downhole.equals("on")) || (downhole.equals("1"))) {
@ -262,7 +275,12 @@ public class MapProjectSearchController {
params.put("firstRow", pageIndex * viewPage);
params.put("lastRow", (pageIndex + 1) * viewPage);
List<EgovMap> items = mapProjectSearchService.selectItems(params);
List<EgovMap> items = null;
if( lastPage == null) {
items = new ArrayList<EgovMap>();
} else {
items = mapProjectSearchService.selectItems(params);
}
Iterator<EgovMap> iter = items.iterator();
if (!userId.equals(particularId1) && !userId.equals("admin_user")) {

View File

@ -21,6 +21,7 @@ import com.clipsoft.clipreport.oof.OOFDocument;
import com.clipsoft.clipreport.oof.OOFFile;
import com.clipsoft.clipreport.server.service.ReportUtil;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import geoinfo.regi.common.service.CommonService;
import geoinfo.regi.rock.service.RockService;
@ -41,6 +42,8 @@ public class CommonController {
@Resource(name = "rockService")
private RockService rockService;
public String filePath = EgovProperties.getProperty("Geoinfo.FilePath");
//지반정보등록 (관리자)
@RequestMapping(value="/provider_info.do")
@ -60,6 +63,30 @@ public class CommonController {
return "/web/common/provider_info";
}
private String getImagePath(String path, String imagePath) {
// 1. imagePath가 null인 경우 null을 반환합니다.
if (imagePath == null) {
return null;
}
File imageFile = new File(imagePath);
// 2. 파일이 존재하는지 확인합니다.
if (imageFile.exists()) {
// 2-1. 파일이 존재하지만 크기가 0바이트인 경우
if (imageFile.length() == 0) {
return path + "/web/images/no_image_zero_byte.png";
} else {
// 2-2. 파일이 정상적으로 존재하는 경우
return imagePath;
}
} else {
// 3. 파일이 존재하지 않는 경우
return path + "/web/images/no_image_not_found.png";
}
}
@RequestMapping(value="/com/includeFooterInput")
public String includeFooterInput(@RequestParam HashMap<String,Object> params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
@ -247,7 +274,8 @@ public class CommonController {
if("noImage".equals(boreholeWaveImage[0]) || "noImage".equals(boreholeWaveImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + boreholeWaveHolecode[i] + "/BOREHOLE_WAVE/" + boreholeWaveImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + boreholeWaveHolecode[i] + "/BOREHOLE_WAVE/" + boreholeWaveImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file4 = oof.addFile("reb.root", realPath+"web\\preview\\BOREHOLE_WAVE.reb");
@ -299,7 +327,8 @@ public class CommonController {
if("noImage".equals(densityImage[0]) || "noImage".equals(densityImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + densityHolecode[i] + "/DENSITY/" + densityImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + densityHolecode[i] + "/DENSITY/" + densityImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file5 = oof.addFile("reb.root", realPath+"web\\preview\\DENSITY.reb");
@ -325,7 +354,8 @@ public class CommonController {
if("noImage".equals(downholeImage[0]) || "noImage".equals(downholeImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + downholeHolecode[i] + "/DOWNHOLE/" + downholeImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + downholeHolecode[i] + "/DOWNHOLE/" + downholeImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file6 = oof.addFile("reb.root", realPath+"web\\preview\\DOWNHOLE.reb");
@ -381,7 +411,8 @@ public class CommonController {
if("noImage".equals(coneImage[0]) || "noImage".equals(coneImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + coneHolecode[i] + "/CONE/" + coneImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + coneHolecode[i] + "/CONE/" + coneImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file29 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_CONE_PENETRATION.reb");
file29.addConnectionData("*", "oracle1");
@ -401,7 +432,8 @@ public class CommonController {
if("noImage".equals(cone_image) ){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + cone_holecode + "/CONE/" + cone_image;
imagePath = filePath + "web/CH/" + projectCode + "/" + cone_holecode + "/CONE/" + cone_image;
imagePath = getImagePath( Path, imagePath );
}
OOFFile file29 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_CONE_PENETRATION.reb");
file29.addConnectionData("*", "oracle1");
@ -426,7 +458,8 @@ public class CommonController {
if("noImage".equals(permeabilityImage[0]) || "noImage".equals(permeabilityImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file8 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_PERMEABILITY.reb");
file8.addConnectionData("*", "oracle1");
@ -454,7 +487,8 @@ public class CommonController {
if("noImage".equals(permeabilityImage[i]) ||"null".equals(permeabilityImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file30 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_PERMEABILITY.reb");
file30.addConnectionData("*", "oracle1");
@ -480,7 +514,8 @@ public class CommonController {
if("noImage".equals(pressuremeterImage[0]) || "noImage".equals(pressuremeterImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + pressuremeterHolecode[i] + "/PRESSUREMETER/" + pressuremeterImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + pressuremeterHolecode[i] + "/PRESSUREMETER/" + pressuremeterImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file9 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_PRESSUREMETER.reb");
file9.addConnectionData("*", "oracle1");
@ -507,7 +542,8 @@ public class CommonController {
if("noImage".equals(waterpressureImage[0]) || "noImage".equals(waterpressureImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file10 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_WATERPRESSURE.reb");
file10.addConnectionData("*", "oracle1");
@ -538,7 +574,8 @@ public class CommonController {
if("noImage".equals(waterpressureImage[i]) || "null".equals(waterpressureImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file31 = oof.addFile("reb.root", realPath+"web\\preview\\FIELD_WATERPRESSURE.reb");
file31.addConnectionData("*", "oracle1");
@ -566,7 +603,8 @@ public class CommonController {
if("noImage".equals(rockRepeatTriImage[0]) || "noImage".equals(rockRepeatTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockRepeatTriHolecode[i] + "/ROCK_REPEATED/" + rockRepeatTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockRepeatTriHolecode[i] + "/ROCK_REPEATED/" + rockRepeatTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file12 = oof.addFile("reb.root", realPath+"web\\preview\\REPEATED_U.reb");
file12.addConnectionData("*", "oracle1");
@ -596,7 +634,8 @@ public class CommonController {
if("noImage".equals(repeatTriImage[0]) || "noImage".equals(repeatTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + repeatTriHolecode[i] + "/SAND_REPEATED/" + repeatTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + repeatTriHolecode[i] + "/SAND_REPEATED/" + repeatTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file13 = oof.addFile("reb.root", realPath+"web\\preview\\REPEATED.reb");
file13.addConnectionData("*", "oracle1");
@ -625,7 +664,8 @@ public class CommonController {
if("noImage".equals(resonantImage[0]) || "noImage".equals(resonantImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + resonantHolecode[i] + "/SAND_RESONANT/" + resonantImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + resonantHolecode[i] + "/SAND_RESONANT/" + resonantImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file15 = oof.addFile("reb.root", realPath+"web\\preview\\RESONANT.reb");
file15.addConnectionData("*", "oracle1");
@ -653,7 +693,8 @@ public class CommonController {
if("noImage".equals(rockResonantImage[0]) || "noImage".equals(rockResonantImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockResonantHolecode[i] + "/ROCK_RESONANT/" + rockResonantImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockResonantHolecode[i] + "/ROCK_RESONANT/" + rockResonantImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file16 = oof.addFile("reb.root", realPath+"web\\preview\\RESONANT_ROCK.reb");
file16.addConnectionData("*", "oracle1");
@ -686,7 +727,8 @@ public class CommonController {
if("noImage".equals(rockJointshearImage)){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockJointshearHolecode + "/ROCK_JOINTSHEAR/" + rockJointshearImage;
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockJointshearHolecode + "/ROCK_JOINTSHEAR/" + rockJointshearImage;
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file17 = oof.addFile("reb.root", realPath+"web\\preview\\ROCK_JOINTSHEAR.reb");
file17.addConnectionData("*", "oracle1");
@ -738,7 +780,8 @@ public class CommonController {
if("noImage".equals(rockPointloadImage) ){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockPointloadHolecode + "/ROCK_POINTLOAD/" + rockPointloadImage;
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockPointloadHolecode + "/ROCK_POINTLOAD/" + rockPointloadImage;
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file18 = oof.addFile("reb.root", realPath+"web\\preview\\ROCK_POINTLOAD.reb");
file18.addConnectionData("*", "oracle1");
@ -783,7 +826,8 @@ public class CommonController {
if("noImage".equals((String)rockTri.get(0).get("graphImage")) || "noImage".equals(rockTriImage)){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockTriHolecode + "/ROCK_TRIAXIAL/" + rockTriImage;
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockTriHolecode + "/ROCK_TRIAXIAL/" + rockTriImage;
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file19 = oof.addFile("reb.root", realPath+"web\\preview\\ROCK_TRIAXIAL.reb");
file19.addConnectionData("*", "oracle1");
@ -839,12 +883,14 @@ public class CommonController {
if("noImage".equals(rockUni_image1)){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockUni_holecode + "/ROCK_UNIAXIAL/" + rockUni_image1;
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockUni_holecode + "/ROCK_UNIAXIAL/" + rockUni_image1;
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(rockUni_image2) ){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + rockUni_holecode + "/ROCK_UNIAXIAL/" +rockUni_image2;
imagePath2 = filePath + "web/CH/" + projectCode + "/" + rockUni_holecode + "/ROCK_UNIAXIAL/" +rockUni_image2;
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file20 = oof.addFile("reb.root", realPath+"web\\preview\\ROCK_UNIAXIAL.reb");
@ -887,12 +933,14 @@ public class CommonController {
if("noImage".equals(cbrCompacImage1[0]) || "noImage".equals(cbrCompacImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(cbrCompacImage2[0]) || "noImage".equals(cbrCompacImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage2[i];
imagePath2 = getImagePath( Path, imagePath1 );
}
OOFFile file21 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_CBR.reb");
file21.addConnectionData("*", "oracle1");
@ -941,7 +989,8 @@ public class CommonController {
if("noImage".equals(classificationImage[0]) || "noImage".equals(classificationImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + classificationHolecode[i] + "/SAND_CLASSIFICATION/" + classificationImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + classificationHolecode[i] + "/SAND_CLASSIFICATION/" + classificationImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file22 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_CLASSIFICATION.reb");
file22.addConnectionData("*", "oracle1");
@ -995,7 +1044,8 @@ public class CommonController {
if("noImage".equals(classificationImage2[0]) || "noImage".equals(classificationImage2[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + classificationHolecode2[i] + "/SAND_CLASSIFICATION/" + classificationImage2[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + classificationHolecode2[i] + "/SAND_CLASSIFICATION/" + classificationImage2[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file30 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_CLASSIFICATION.reb");
file30.addConnectionData("*", "oracle1");
@ -1022,7 +1072,8 @@ public class CommonController {
if("noImage".equals(consolidationImage[0]) || "noImage".equals(consolidationImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + consolidationHolecode[i] + "/SAND_CONSOLIDATION/" + consolidationImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + consolidationHolecode[i] + "/SAND_CONSOLIDATION/" + consolidationImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file23 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_CONSOLIDATION.reb");
@ -1064,12 +1115,14 @@ public class CommonController {
if("noImage".equals(triCuImage1[0]) || "noImage".equals(triCuImage1[0])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage1[0];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage1[0];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(triCuImage2[0]) || "noImage".equals(triCuImage2[0])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage2[0];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage2[0];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file23 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_TRIAXIAL_CU.reb");
file23.addConnectionData("*", "oracle1");
@ -1138,12 +1191,14 @@ public class CommonController {
if("noImage".equals(triUuImage1[0]) || "noImage".equals(triUuImage1[0])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage1[0];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage1[0];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(triUuImage2[0]) || "noImage".equals(triUuImage2[0])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage2[0];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage2[0];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file24 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_TRIAXIAL_UU.reb");
file24.addConnectionData("*", "oracle1");
@ -1197,7 +1252,8 @@ public class CommonController {
if("noImage".equals(unconfineImage[0]) || "noImage".equals(unconfineImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + unconfineHolecode[i] + "/SAND_UNCONFINED/" + unconfineImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + unconfineHolecode[i] + "/SAND_UNCONFINED/" + unconfineImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file25 = oof.addFile("reb.root", realPath+"web\\preview\\SOIL_UNCONFINED.reb");
@ -1208,10 +1264,6 @@ public class CommonController {
file25.addField("sample_code", unconfineSamplecode[i]);
file25.addField("image1", imagePath1);
params.put("TEST_INFO_CODE", "SAND_UNCONFINED_USUAL");
params.put("HOLE_CODE", unconfineHolecode[i]);
// 단위중량의 단위를 구한다.
params.put("INI_UNIT", "kN/㎥");
params.put("ITEM_INFO_CODE", "UNCONF_UNDISTURB_RT");
@ -1313,7 +1365,8 @@ public class CommonController {
if("noImage".equals(densityImage[0]) || "noImage".equals(densityImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + densityHolecode[i] + "/DENSITY/" + densityImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + densityHolecode[i] + "/DENSITY/" + densityImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file33 = oof.addFile("reb.root", realPath+"web\\service\\DENSITY.reb");
@ -1340,7 +1393,8 @@ public class CommonController {
if("noImage".equals(downholeImage[0]) || "noImage".equals(downholeImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + downholeHolecode[i] + "/DOWNHOLE/" + downholeImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + downholeHolecode[i] + "/DOWNHOLE/" + downholeImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file34 = oof.addFile("reb.root", realPath+"web\\service\\DOWNHOLE.reb");
@ -1386,7 +1440,8 @@ public class CommonController {
if("noImage".equals(boreholeWaveImage[0]) || "noImage".equals(boreholeWaveImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + boreholeWaveHolecode[i] + "/BOREHOLE_WAVE/" + boreholeWaveImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + boreholeWaveHolecode[i] + "/BOREHOLE_WAVE/" + boreholeWaveImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file35 = oof.addFile("reb.root", realPath+"web\\service\\BOREHOLE_WAVE.reb");
@ -1449,7 +1504,8 @@ public class CommonController {
if("noImage".equals(rockRepeatTriImage[0]) || "noImage".equals(rockRepeatTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockRepeatTriHolecode[i] + "/ROCK_REPEATED/" + rockRepeatTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockRepeatTriHolecode[i] + "/ROCK_REPEATED/" + rockRepeatTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file36 = oof.addFile("reb.root", realPath+"web\\service\\REPEATED_U.reb");
file36.addConnectionData("*", "oracle1");
@ -1481,7 +1537,8 @@ public class CommonController {
if("noImage".equals(rockRepeatTriImage[0]) || "noImage".equals(rockRepeatTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockRepeatTriHolecode[i] + "/ROCK_REPEATED/" + rockRepeatTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockRepeatTriHolecode[i] + "/ROCK_REPEATED/" + rockRepeatTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file72 = oof.addFile("reb.root", realPath+"web\\service\\REPEATED_U.reb");
file72.addConnectionData("*", "oracle1");
@ -1537,7 +1594,8 @@ public class CommonController {
if("noImage".equals(rockResonantImage[0]) || "noImage".equals(rockResonantImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockResonantHolecode[i] + "/ROCK_RESONANT/" + rockResonantImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockResonantHolecode[i] + "/ROCK_RESONANT/" + rockResonantImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file37 = oof.addFile("reb.root", realPath+"web\\service\\RESONANT_ROCK.reb");
file37.addConnectionData("*", "oracle1");
@ -1610,7 +1668,8 @@ public class CommonController {
if("noImage".equals(rockResonantImage[0]) || "noImage".equals(rockResonantImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockResonantHolecode[i] + "/ROCK_RESONANT/" + rockResonantImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockResonantHolecode[i] + "/ROCK_RESONANT/" + rockResonantImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file71 = oof.addFile("reb.root", realPath+"web\\service\\RESONANT_ROCK.reb");
file71.addConnectionData("*", "oracle1");
@ -1681,7 +1740,8 @@ public class CommonController {
if("noImage".equals(rockJointshearImage[0]) || "noImage".equals(rockJointshearImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockJointshearHolecode[i] + "/ROCK_JOINTSHEAR/" + rockJointshearImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockJointshearHolecode[i] + "/ROCK_JOINTSHEAR/" + rockJointshearImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file39 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_JOINTSHEAR.reb");
file39.addConnectionData("*", "oracle1");
@ -1760,7 +1820,8 @@ public class CommonController {
if("noImage".equals(rockJointshearImage[0]) || "noImage".equals(rockJointshearImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockJointshearHolecode[i] + "/ROCK_JOINTSHEAR/" + rockJointshearImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockJointshearHolecode[i] + "/ROCK_JOINTSHEAR/" + rockJointshearImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file70 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_JOINTSHEAR.reb");
file70.addConnectionData("*", "oracle1");
@ -1837,7 +1898,8 @@ public class CommonController {
if("noImage".equals(rockPointloadImage[0]) || "noImage".equals(rockPointloadImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockPointloadHolecode[i] + "/ROCK_POINTLOAD/" + rockPointloadImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockPointloadHolecode[i] + "/ROCK_POINTLOAD/" + rockPointloadImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file40 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_POINTLOAD.reb");
file40.addConnectionData("*", "oracle1");
@ -1900,7 +1962,8 @@ public class CommonController {
if("noImage".equals(rockPointloadImage[0]) || "noImage".equals(rockPointloadImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockPointloadHolecode[i] + "/ROCK_POINTLOAD/" + rockPointloadImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockPointloadHolecode[i] + "/ROCK_POINTLOAD/" + rockPointloadImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file69 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_POINTLOAD.reb");
file69.addConnectionData("*", "oracle1");
@ -1973,7 +2036,8 @@ public class CommonController {
if("noImage".equals(rockTriImage[0]) || "noImage".equals(rockTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockTriHolecode[i] + "/ROCK_TRIAXIAL/" + rockTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockTriHolecode[i] + "/ROCK_TRIAXIAL/" + rockTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file41 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_TRIAXIAL.reb");
file41.addConnectionData("*", "oracle1");
@ -2050,7 +2114,8 @@ public class CommonController {
if("noImage".equals(rockTriImage[0]) || "noImage".equals(rockTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockTriHolecode[i] + "/ROCK_TRIAXIAL/" + rockTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockTriHolecode[i] + "/ROCK_TRIAXIAL/" + rockTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file68 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_TRIAXIAL.reb");
file68.addConnectionData("*", "oracle1");
@ -2122,12 +2187,14 @@ public class CommonController {
if("noImage".equals(rockUniImage1[0]) || "noImage".equals(rockUniImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(rockUniImage2[0]) || "noImage".equals(rockUniImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file42 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_UNIAXIAL.reb");
file42.addConnectionData("*", "oracle1");
@ -2186,12 +2253,14 @@ public class CommonController {
if("noImage".equals(rockUniImage1[0]) || "noImage".equals(rockUniImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(rockUniImage2[0]) || "noImage".equals(rockUniImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + rockUniHolecode[i] + "/ROCK_UNIAXIAL/" + rockUniImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file67 = oof.addFile("reb.root", realPath+"web\\service\\ROCK_UNIAXIAL.reb");
file67.addConnectionData("*", "oracle1");
@ -2251,7 +2320,8 @@ public class CommonController {
if("noImage".equals(repeatTriImage[0]) || "noImage".equals(repeatTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + repeatTriHolecode[i] + "/SAND_REPEATED/" + repeatTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + repeatTriHolecode[i] + "/SAND_REPEATED/" + repeatTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file43 = oof.addFile("reb.root", realPath+"web\\service\\REPEATED.reb");
file43.addConnectionData("*", "oracle1");
@ -2325,7 +2395,8 @@ public class CommonController {
if("noImage".equals(repeatTriImage[0]) || "noImage".equals(repeatTriImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + repeatTriHolecode[i] + "/SAND_REPEATED/" + repeatTriImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + repeatTriHolecode[i] + "/SAND_REPEATED/" + repeatTriImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file66 = oof.addFile("reb.root", realPath+"web\\service\\REPEATED.reb");
file66.addConnectionData("*", "oracle1");
@ -2378,7 +2449,8 @@ public class CommonController {
if("noImage".equals(resonantImage[0]) || "noImage".equals(resonantImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + resonantHolecode[i] + "/SAND_RESONANT/" + resonantImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + resonantHolecode[i] + "/SAND_RESONANT/" + resonantImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file44 = oof.addFile("reb.root", realPath+"web\\service\\RESONANT.reb");
file44.addConnectionData("*", "oracle1");
@ -2440,7 +2512,8 @@ public class CommonController {
if("noImage".equals(resonantImage[0]) || "noImage".equals(resonantImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + resonantHolecode[i] + "/SAND_RESONANT/" + resonantImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + resonantHolecode[i] + "/SAND_RESONANT/" + resonantImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file65 = oof.addFile("reb.root", realPath+"web\\service\\RESONANT.reb");
file65.addConnectionData("*", "oracle1");
@ -2449,7 +2522,10 @@ public class CommonController {
file65.addField("rc_seq", resonantCode[i]);
file65.addField("image1", imagePath1);
for(int k =0; k <HoleCodeUnit.length; k++ ){
for(int k =0; k <HoleCodeUnit.length; k++ ) {
if( HoleCodeUnit.length -1 < i ) {
break;
}
if(HoleCodeUnit[k].equals(HoleCodeUnit[i])){
if(ItemInfoCode[k].equals("RC_DENSITY_IN_SITU")){
@ -2518,12 +2594,14 @@ public class CommonController {
if("noImage".equals(triUuImage1[0]) || "noImage".equals(triUuImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(triUuImage2[0]) || "noImage".equals(triUuImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file45 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_TRIAXIAL_UU.reb");
file45.addConnectionData("*", "oracle1");
@ -2602,12 +2680,14 @@ public class CommonController {
if("noImage".equals(triUuImage1[0]) || "noImage".equals(triUuImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(triUuImage2[0]) || "noImage".equals(triUuImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triUuImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file64 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_TRIAXIAL_UU.reb");
file64.addConnectionData("*", "oracle1");
@ -2687,12 +2767,14 @@ public class CommonController {
if("noImage".equals(triCuImage1[0]) || "noImage".equals(triCuImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(triCuImage2[0]) || "noImage".equals(triCuImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file46 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_TRIAXIAL_CU.reb");
file46.addConnectionData("*", "oracle1");
@ -2772,12 +2854,14 @@ public class CommonController {
if("noImage".equals(triCuImage1[0]) || "noImage".equals(triCuImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(triCuImage2[0]) || "noImage".equals(triCuImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + holeCode + "/SAND_TRIAXIAL/" + triCuImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file63 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_TRIAXIAL_CU.reb");
file63.addConnectionData("*", "oracle1");
@ -2858,7 +2942,8 @@ public class CommonController {
if("noImage".equals(unconfineImage[0]) || "noImage".equals(unconfineImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + unconfineHolecode[i] + "/SAND_UNCONFINED/" + unconfineImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + unconfineHolecode[i] + "/SAND_UNCONFINED/" + unconfineImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file47 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_UNCONFINED.reb");
@ -2934,7 +3019,8 @@ public class CommonController {
if("noImage".equals(unconfineImage[0]) || "noImage".equals(unconfineImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + unconfineHolecode[i] + "/SAND_UNCONFINED/" + unconfineImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + unconfineHolecode[i] + "/SAND_UNCONFINED/" + unconfineImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file62 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_UNCONFINED.reb");
@ -3011,7 +3097,8 @@ public class CommonController {
if("noImage".equals(consolidationImage[0]) || "noImage".equals(consolidationImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + consolidationHolecode[i] + "/SAND_CONSOLIDATION/" + consolidationImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + consolidationHolecode[i] + "/SAND_CONSOLIDATION/" + consolidationImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file48 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_CONSOLIDATION.reb");
@ -3084,7 +3171,8 @@ public class CommonController {
if("noImage".equals(consolidationImage[0]) || "noImage".equals(consolidationImage[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + consolidationHolecode[i] + "/SAND_CONSOLIDATION/" + consolidationImage[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + consolidationHolecode[i] + "/SAND_CONSOLIDATION/" + consolidationImage[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file60 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_CONSOLIDATION.reb");
@ -3159,12 +3247,14 @@ public class CommonController {
if("noImage".equals(cbrCompacImage1[0]) || "noImage".equals(cbrCompacImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(cbrCompacImage2[0]) || "noImage".equals(cbrCompacImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file49 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_CBR.reb");
file49.addConnectionData("*", "oracle1");
@ -3229,12 +3319,14 @@ public class CommonController {
if("noImage".equals(cbrCompacImage1[0]) || "noImage".equals(cbrCompacImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage1[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(cbrCompacImage2[0]) || "noImage".equals(cbrCompacImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = Path + "/files/web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage2[i];
imagePath2 = filePath + "web/CH/" + projectCode + "/" + cbrCompacHolecode[i] + "/SAND_CBR/" + cbrCompacImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
OOFFile file61 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_CBR.reb");
file61.addConnectionData("*", "oracle1");
@ -3292,7 +3384,8 @@ public class CommonController {
if("noImage".equals(classificationImage2[0]) || "noImage".equals(classificationImage2[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + classificationHolecode2[i] + "/SAND_CLASSIFICATION/" + classificationImage2[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + classificationHolecode2[i] + "/SAND_CLASSIFICATION/" + classificationImage2[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file50 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_CLASSIFICATION.reb");
file50.addConnectionData("*", "oracle1");
@ -3338,7 +3431,8 @@ public class CommonController {
if("noImage".equals(classificationImage2[0]) || "noImage".equals(classificationImage2[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = Path + "/files/web/CH/" + projectCode + "/" + classificationHolecode2[i] + "/SAND_CLASSIFICATION/" + classificationImage2[i];
imagePath1 = filePath + "web/CH/" + projectCode + "/" + classificationHolecode2[i] + "/SAND_CLASSIFICATION/" + classificationImage2[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
OOFFile file59 = oof.addFile("reb.root", realPath+"web\\service\\SOIL_CLASSIFICATION.reb");
file59.addConnectionData("*", "oracle1");
@ -3393,7 +3487,8 @@ public class CommonController {
if("noImage".equals(coneImage[0]) || "noImage".equals(coneImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + coneHolecode[i] + "/CONE/" + coneImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + coneHolecode[i] + "/CONE/" + coneImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file52 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_CONE_PENETRATION.reb");
file52.addConnectionData("*", "oracle1");
@ -3460,7 +3555,8 @@ public class CommonController {
if("noImage".equals(coneImage[0]) || "noImage".equals(coneImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + coneHolecode[i] + "/CONE/" + coneImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + coneHolecode[i] + "/CONE/" + coneImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file58 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_CONE_PENETRATION.reb");
file58.addConnectionData("*", "oracle1");
@ -3528,7 +3624,8 @@ public class CommonController {
if("noImage".equals(permeabilityImage[0]) || "noImage".equals(permeabilityImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file53 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_PERMEABILITY.reb");
file53.addConnectionData("*", "oracle1");
@ -3579,7 +3676,8 @@ public class CommonController {
if("noImage".equals(permeabilityImage[0]) || "noImage".equals(permeabilityImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + permeabilityHolecode[i] + "/PERMEABILITY/" + permeabilityImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file56 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_PERMEABILITY.reb");
file56.addConnectionData("*", "oracle1");
@ -3610,7 +3708,8 @@ public class CommonController {
if("noImage".equals(waterpressureImage[0]) || "noImage".equals(waterpressureImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file54 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_WATERPRESSURE.reb");
file54.addConnectionData("*", "oracle1");
@ -3643,7 +3742,8 @@ public class CommonController {
if("noImage".equals(waterpressureImage[0]) || "noImage".equals(waterpressureImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = Path + "/files/web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = filePath + "web/CH/" + projectCode + "/" + waterpressureHolecode[i] + "/WATERPRESSURE/" + waterpressureImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file57 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_WATERPRESSURE.reb");
file57.addConnectionData("*", "oracle1");
@ -3654,6 +3754,135 @@ public class CommonController {
}
}
//검색유통 공내재하시험
if(tblTestInfoCode.equals("TBL_FIELD_PRESSUREMETER")) {
EgovMap pressuremeter = masterService.getPressuremeter(params);
String pressuremeter_holecode = (String)pressuremeter.get("holeCode");
String pressuremeter_code = (String)pressuremeter.get("fieldprescode");
String pressuremeter_image = (String)pressuremeter.get("graphImage");
String pressuremeterHolecode[] = pressuremeter_holecode.split(",");
String pressuremeterCode[] = pressuremeter_code.split(",");
String pressuremeterImage[] = pressuremeter_image.split(",");
int pressuremeterCnt = pressuremeterHolecode.length;
for(int i=0; i<pressuremeterCnt; i++){
if( !pressuremeterHolecode[i].equals(holeCode.trim()) ) {
// 해당 시추공만 처리한다.
continue;
}
if("noImage".equals(pressuremeterImage[0]) || "noImage".equals(pressuremeterImage[i])){
imagePath = Path + "/web/images/no_image.png";
}else{
imagePath = filePath + "web/CH/" + projectCode + "/" + pressuremeterHolecode[i] + "/PRESSUREMETER/" + pressuremeterImage[i];
imagePath = getImagePath( Path, imagePath );
}
OOFFile file9 = oof.addFile("reb.root", realPath+"web\\service\\FIELD_PRESSUREMETER.reb");
file9.addConnectionData("*", "oracle1");
file9.addField("project_code", projectCode);
file9.addField("hole_code", pressuremeterHolecode[i]);
file9.addField("fieldpres_code", pressuremeterCode[i]);
file9.addField("image1", imagePath);
}
}
//검색유통 굴절법 탄성파
if(tblTestInfoCode.equals("TBL_REFRACTION_SURVEY")) {
EgovMap refraction = masterService.getRefractionSurvey(params);
String refraction_line ="";
String refraction_image1="";
String refraction_image2="";
refraction_line = String.valueOf(refraction.get("lineNumber"));
refraction_image1 =(String)refraction.get("graphImage1");
refraction_image2 =(String)refraction.get("graphImage2");
String refractionLine[] = refraction_line.split(",");
String refractionImage1[] = refraction_image1.split(",");
String refractionImage2[] = refraction_image2.split(",");
int refractionCnt = refractionLine.length;
int refractionImageCnt1 = refractionImage1.length;
int refractionImageCnt2 = refractionImage2.length;
oof = OOFDocument.newOOF();
oof.addConnectionData("*", "oracle1");
OOFFile file = oof.addFile("reb.root", realPath+"web\\service\\REFRACTION_SURVEY.reb");;
for(int i=0; i<refractionCnt; i++){
if("noImage".equals(refractionImage1[0]) || "noImage".equals(refractionImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = filePath + "web/CH/" + projectCode + "/REFRACTION/" + refractionImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(refractionImage2[0]) || "noImage".equals(refractionImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = filePath + "web/CH/" + projectCode + "/REFRACTION/" + refractionImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
file.addField("project_code", projectCode);
file.addField("line_number", refractionLine[i]);
file.addField("image1", imagePath1);
file.addField("image2", imagePath2);
}
}
//검색유통 전기비저항탐사정보
if(tblTestInfoCode.equals("TBL_RESISTIVITY_SURVEY")) {
EgovMap resistivity = masterService.getResistivitySurvey(params);
String resistivity_line = String.valueOf(resistivity.get("lineNumber"));
String resistivity_image1 = (String)resistivity.get("graphImage1");
String resistivity_image2 = (String)resistivity.get("graphImage2");
String resistivityLine[] = resistivity_line.split(",");
String resistivityImage1[] = resistivity_image1.split(",");
String resistivityImage2[] = resistivity_image2.split(",");
int resistivityCnt = resistivityLine.length;
int resistivityImageCnt1 = resistivityImage1.length;
int resistivityImageCnt2 = resistivityImage2.length;
oof = OOFDocument.newOOF();
oof.addConnectionData("*", "oracle1");
OOFFile file = oof.addFile("reb.root", realPath+"web\\service\\RESISTIVITY_SURVEY.reb");;
for(int i=0; i<resistivityCnt; i++){
if("noImage".equals(resistivityImage1[0]) || "noImage".equals(resistivityImage1[i])){
imagePath1 = Path + "/web/images/no_image.png";
}else{
imagePath1 = filePath + "web/CH/" + projectCode + "/RESISTIVITY/" + resistivityImage1[i];
imagePath1 = getImagePath( Path, imagePath1 );
}
if("noImage".equals(resistivityImage2[0]) || "noImage".equals(resistivityImage2[i])){
imagePath2 = Path + "/web/images/no_image.png";
}else{
imagePath2 = filePath + "web/CH/" + projectCode + "/RESISTIVITY/" + resistivityImage2[i];
imagePath2 = getImagePath( Path, imagePath2 );
}
file.addField("project_code", projectCode);
file.addField("line_number", resistivityLine[i]);
file.addField("image1", imagePath1);
file.addField("image2", imagePath2);
}
}
//검색유통 주상도 표준관입 + TCR/RQD주상도
if(tblTestInfoCode.equals("TBL_HOLE")) {

View File

@ -92,7 +92,7 @@ public class ProjectListController {
jsonObject.put("resultCode", "The name already exists.");
jsonObject.put("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력해 주세요. code 2");
}
} else if( 0 < arrConstNameByProjectNameFromTempConstructSiteInfo.size() ) {
} else if( false && 0 < arrConstNameByProjectNameFromTempConstructSiteInfo.size() ) {
jsonObject.put("result", "false");
jsonObject.put("resultCode", "The name already exists.");
jsonObject.put("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력해 주세요. code 3");

View File

@ -444,7 +444,9 @@ public final class MyUtil {
return ((Long) obj).intValue();
} else if (obj instanceof Double) {
return ((Long)Math.round((Double)obj)).intValue();
}
} else if (obj instanceof BigDecimal) {
return ((BigDecimal)obj).intValue();
}
return null;
}
@ -847,5 +849,29 @@ public final class MyUtil {
return params;
}
/**
* return
* @param target
* @return
* @throws Exception
*/
public static String removeBlank( Object target ) throws Exception {
String str = getStringFromObject( target );
if( str != null ) {
str = str.replaceAll("\\s", "");
}
return str;
}
public static String removeBlank( String target ) throws Exception {
return removeBlank( (Object) target );
}
}

View File

@ -0,0 +1,576 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="geoinfo.api.geoinfo.service.GeoinfoApiV1Mapper">
<!-- ================================================================================================== -->
<!-- 프로젝트 정보 (Project Info) -->
<!-- ================================================================================================== -->
<select id="spGetTblProjectInfo" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_PROJECT_INFO(
#{prjCode, jdbcType=VARCHAR},
#{prjName, jdbcType=VARCHAR},
#{mastCompany, jdbcType=VARCHAR},
#{addr, jdbcType=VARCHAR},
#{startDate, jdbcType=VARCHAR},
#{endDate, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblProjectInfo" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_PROJECT_INFO(
#{prjCode, jdbcType=VARCHAR},
#{prjName, jdbcType=VARCHAR},
#{mastCompany, jdbcType=VARCHAR},
#{addr, jdbcType=VARCHAR},
#{startDate, jdbcType=VARCHAR},
#{endDate, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetSelectclassInfoP" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_SELECTCLASS_INFO_P(
#{projCode, jdbcType=VARCHAR}
))
</select>
<select id="spGetSelectclassInfoPh" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_SELECTCLASS_INFO_PH(
#{projCode, jdbcType=VARCHAR}
))
</select>
<select id="spGetTblTopoGeology" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_TOPO_GEOLOGY(
#{projCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblTopoGeology" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_TOPO_GEOLOGY(
#{projCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblResistivitySurvey" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_RESISTIVITY_SURVEY(
#{projCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblResistivitySurvey" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_RESISTIVITY_SURVEY(
#{projCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRefractionSurvey" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_REFRACTION_SURVEY(
#{projCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRefractionSurvey" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_REFRACTION_SURVEY(
#{projCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<!-- ================================================================================================== -->
<!-- 시추공 정보 (Borehole Info) -->
<!-- ================================================================================================== -->
<select id="spGetTblHeader" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_HEADER(
#{prjCode, jdbcType=VARCHAR},
#{holeCode, jdbcType=VARCHAR},
#{holeName, jdbcType=VARCHAR},
#{addr, jdbcType=VARCHAR},
#{minX, jdbcType=DECIMAL},
#{minY, jdbcType=DECIMAL},
#{maxX, jdbcType=DECIMAL},
#{maxY, jdbcType=DECIMAL},
#{startDate, jdbcType=VARCHAR},
#{endDate, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblHeader" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_HEADER(
#{prjCode, jdbcType=VARCHAR},
#{holeCode, jdbcType=VARCHAR},
#{holeName, jdbcType=VARCHAR},
#{addr, jdbcType=VARCHAR},
#{minX, jdbcType=DECIMAL},
#{minY, jdbcType=DECIMAL},
#{maxX, jdbcType=DECIMAL},
#{maxY, jdbcType=DECIMAL},
#{startDate, jdbcType=VARCHAR},
#{endDate, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetSelectclassInfoH" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_SELECTCLASS_INFO_H(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<!-- ================================================================================================== -->
<!-- 시추공 부속 정보 (Borehole Appendix) -->
<!-- ================================================================================================== -->
<!-- 지층/시료 정보 -->
<select id="spGetTblLayerInfo" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_LAYER_INFO(
#{holeCode, jdbcType=VARCHAR},
#{layerCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblLayerInfo" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_LAYER_INFO(
#{holeCode, jdbcType=VARCHAR},
#{layerCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblSampleInfo" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_SAMPLE_INFO(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblSampleInfo" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_SAMPLE_INFO(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<!-- 현장 시험 -->
<select id="spGetTblSpt" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_SPT(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblSpt" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_SPT(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblSlickensideInfo" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_SLICKENSIDE_INFO(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblSlickensideInfo" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_SLICKENSIDE_INFO(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRqd" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_RQD(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRqd" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_RQD(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblDsf" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_DSF(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblDsf" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_DSF(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRmr" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_RMR(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRmr" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_RMR(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblQ" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_Q(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblQ" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_Q(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblFieldWaterpressure" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_FIELD_WATERPRESSURE(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblFieldWaterpressure" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_FIELD_WATERPRESSURE(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblWpTest" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_WP_TEST(
#{holeCode, jdbcType=VARCHAR},
#{wpCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblWpTest" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_WP_TEST(
#{holeCode, jdbcType=VARCHAR},
#{wpCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblFieldPermeability" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_FIELD_PERMEABILITY(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblFieldPermeability" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_FIELD_PERMEABILITY(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblFieldperSub" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_FIELDPER_SUB(
#{holeCode, jdbcType=VARCHAR},
#{fielderCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblFieldperSub" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_FIELDPER_SUB(
#{holeCode, jdbcType=VARCHAR},
#{fielderCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblFieldPressuremeter" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_FIELD_PRESSUREMETER(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblFieldPressuremeter" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_FIELD_PRESSUREMETER(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblFieldConePenetra" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_FIELD_CONE_PENETRA(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblFieldConePenetra" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_FIELD_CONE_PENETRA(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblBoreholeWave" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_BOREHOLE_WAVE(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblBoreholeWave" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_BOREHOLE_WAVE(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblDownhole" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_DOWNHOLE(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblDownhole" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_DOWNHOLE(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblDensity" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_DENSITY(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblDensity" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_DENSITY(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<!-- 실내 시험 -->
<select id="spGetTblClassification" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_CLASSIFICATION(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblClassification" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_CLASSIFICATION(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblCbrCompac" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_CBR_COMPAC(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblCbrCompac" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_CBR_COMPAC(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblConsolidationUsual" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_CONSOLIDATION_USUAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblConsolidationUsual" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_CONSOLIDATION_USUAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblConsolidation" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_CONSOLIDATION(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblConsolidation" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_CONSOLIDATION(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblUnconfinedUsual" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_UNCONFINED_USUAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblUnconfinedUsual" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_UNCONFINED_USUAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblTriaxialUsual" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_TRIAXIAL_USUAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblTriaxialUsual" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_TRIAXIAL_USUAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblTriaxialCu" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_TRIAXIAL_CU(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblTriaxialCu" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_TRIAXIAL_CU(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblTriaxialUu" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_TRIAXIAL_UU(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblTriaxialUu" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_TRIAXIAL_UU(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblResonantUsual" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_RESONANT_USUAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblResonantUsual" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_RESONANT_USUAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblResonant" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_RESONANT(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblResonant" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_RESONANT(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRepeatedTriaxialU" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_REPEATED_TRIAXIAL_U(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRepeatedTriaxialU" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_REPEATED_TRIAXIAL_U(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRepeatedTriaxial" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_REPEATED_TRIAXIAL(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRepeatedTriaxial" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_REPEATED_TRIAXIAL(
#{holeCode, jdbcType=VARCHAR},
#{sampleCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<!-- 암석 시험 -->
<select id="spGetTblRockUniaxial" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_UNIAXIAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockUniaxial" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_UNIAXIAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRockTriaxial" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_TRIAXIAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockTriaxial" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_TRIAXIAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRockPointload" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_POINTLOAD(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockPointload" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_POINTLOAD(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRockJointshear" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_JOINTSHEAR(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockJointshear" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_JOINTSHEAR(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRockResonantUsual" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_RESONANT_USUAL(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockResonantUsual" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_RESONANT_USUAL(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRockReptTriU" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_REPT_TRI_U(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockReptTriU" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_REPT_TRI_U(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
<select id="spGetTblRockReptTri" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_ROCK_REPT_TRI(
#{holeCode, jdbcType=VARCHAR}
))
</select>
<select id="spCntTblRockReptTri" parameterType="map" resultType="int">
SELECT SP_CNT_TBL_ROCK_REPT_TRI(
#{holeCode, jdbcType=VARCHAR}
) FROM DUAL
</select>
</mapper>

View File

@ -16,6 +16,7 @@
#{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},
#{constComCodes, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR},
NULL
@ -24,12 +25,33 @@
<select id="spGetTblCsiByKeyword" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},#{constName, jdbcType=VARCHAR},#{constStartDate, jdbcType=VARCHAR},#{constEndDate, jdbcType=VARCHAR},#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},#{masterCompanyTwCode, jdbcType=VARCHAR},#{masterCompanyThCode, jdbcType=VARCHAR}, #{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},#{constCompanyAdmin, jdbcType=VARCHAR},#{constCompanyTel, jdbcType=VARCHAR},NULL,
#{constTag, jdbcType=VARCHAR},
#{constName, jdbcType=VARCHAR},
#{constStartDate, jdbcType=VARCHAR},
#{constEndDate, jdbcType=VARCHAR},
#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},
#{masterCompanyTwCode, jdbcType=VARCHAR},
#{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},
#{constComCodes, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR},
NULL,
2,2,#{nCount},#{nPage}))
</select>
<select id="getComCodes" parameterType="map" resultType="String">
SELECT
LISTAGG(COM_CODE, ',') WITHIN GROUP (
ORDER BY COM_CODE) AS COM_CODES
FROM
TBL_CONST_COMPANY
WHERE
REPLACE(COM_NAME, ' ', '') LIKE '%' || #{constCompanyName} || '%'
</select>
<select id="spGetConstCompanyName" parameterType="Long" resultType="String">
SELECT SP_GET_CONST_COMPANY_NAME(#{constCompanyCode}) FROM DUAL
</select>
@ -52,7 +74,8 @@
tgmd.GM_DISTRICT,
tgsd.GS_DISTRICT,
tcsi.CID,
tcsi.CONST_NAME
tcsi.CONST_NAME,
tcsi.CONST_START_DATE
FROM
TEMP_CONSTRUCT_SITE_INFO tcsi
LEFT JOIN (
@ -90,7 +113,16 @@
tcsi.MASTER_COMPANY_TH_CODE = tgsd.GS_CODE
WHERE
tcsi.PROJECT_CODE IS NULL AND
tcsi.CONST_NAME LIKE '%' || #{projectName} || '%'
tcsi.CONST_NAME LIKE '%' || #{projectName} || '%'
<if test="glDistrict != null">
<![CDATA[ AND tgld.GL_CODE = #{glDistrict} ]]>
</if>
<if test="gmDistrict != null">
<![CDATA[ AND tgmd.GM_CODE = #{gmDistrict} ]]>
</if>
<if test="gsDistrict != null">
<![CDATA[ AND tgsd.GS_CODE = #{gsDistrict} ]]>
</if>
ORDER BY tcsi.CRT_DT DESC
</select>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="geoinfo.drilling.statistics.service.DrillingStatisticsMapper">
</mapper>

View File

@ -184,9 +184,15 @@
FROM VI_DBINFO_DATE
WHERE 1=1
]]>
<if test = "startDate != '0000' and startDate != null">
<![CDATA[ AND (SUBSTR(TO_CHAR(START_DATE),0,4) >= #{startDate} AND SUBSTR(TO_CHAR(END_DATE),0,4) <= #{endDate}) ]]>
</if>
<!-- <if test = "startDate != '0000' and startDate != null"> -->
<!-- <![CDATA[ AND (SUBSTR(TO_CHAR(START_DATE),0,4) >= #{startDate} AND SUBSTR(TO_CHAR(END_DATE),0,4) <= #{endDate}) ]]> -->
<!-- </if> -->
<if test = "startDate != null and startDate != '' and startDate != 'null'">
AND (SUBSTR(TO_CHAR(START_DATE),0,4) <![CDATA[>=]]> #{startDate})
</if>
<if test = "endDate != null and endDate != '' and endDate != 'null'">
AND (SUBSTR(TO_CHAR(END_DATE),0,4) <![CDATA[<=]]> #{endDate})
</if>
<if test = "searchKey != null">
<![CDATA[ AND REPLACE(PNAME, ' ', '') LIKE '%' || #{searchKey} || '%' ]]>
</if>

View File

@ -152,17 +152,17 @@
]]>
</select>
<select id="selectSearchPass" resultType="org.apache.commons.collections.map.CaseInsensitiveMap">
<![CDATA[
SELECT CLS, USER_NAME, USERID, PASSWD, TO_CHAR(DATETIME,'YYYY-MM-DD') DATETIME, CERTIFICATION_YN
FROM WEB_MEMBER_IN
WHERE
TRIM(USERID) = TRIM(#{userId}) AND
TRIM(USER_NAME) = TRIM(#{name}) AND
TRIM(CLS) = TRIM(#{cls}) AND
TRIM(EMAIL) = TRIM(#{email})
]]>
</select>
<select id="selectSearchPass" resultType="org.apache.commons.collections.map.CaseInsensitiveMap">
<![CDATA[
SELECT CLS, USER_NAME, USERID, PASSWD, TO_CHAR(DATETIME,'YYYY-MM-DD') DATETIME, CERTIFICATION_YN
FROM WEB_MEMBER_IN
WHERE
TRIM(USERID) = TRIM(#{userId}) AND
TRIM(USER_NAME) = TRIM(#{name}) AND
TRIM(CLS) = TRIM(#{cls}) AND
TRIM(EMAIL) = TRIM(#{email})
]]>
</select>
<update id="updateSearchPassch">
<![CDATA[

View File

@ -802,5 +802,15 @@
project_code = #{projectCode}
]]>
</select>
<select id="holeNameByUser" parameterType="map" resultType="egovMap">
<![CDATA[
select th.HOLE_NAME
from TBL_HEADER th
WHERE th.HOLE_CODE = #{CODE}
]]>
</select>
</mapper>

View File

@ -215,13 +215,13 @@
WHERE NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND A.PROJECT_CODE = B.PROJECT_CODE
AND NVL(A.USE_YN,' ') <> 'N'
]]>
<if test="masterCompanyCode != null and masterCompanyProjectCodes != null and masterCompanyProjectCodes !=''">
<![CDATA[
AND TRIM(a.PROJECT_CODE) IN( ${masterCompanyProjectCodes} )
]]>
</if>
<if test="gugun != 'all'">
<![CDATA[
AND (B.HOLE_LOCATION_TM_X >= C.MINX AND B.HOLE_LOCATION_TM_X <= C.MAXX)
@ -339,6 +339,24 @@
]]>
</select>
<select id="selectTempProjectInfo" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT
PROJECT_CODE,
PROJECT_NAME,
(SELECT CLASS_DETAIL_NAME FROM TBL_CLASS_DETAIL WHERE CLASS_DETAIL_CODE = A.CLASS_CODE) CLASS_NAME,
PROJECT_START_DATE,
PROJECT_END_DATE,
PROJECT_GOAL AS PRO_GOAL,
(SELECT MAX(LINE_NUMBER) FROM TBL_REFRACTION_SURVEY_SUB WHERE PROJECT_CODE=#{pcode}) AS REFRACTION_COUNT,
(SELECT MAX(LINE_NUMBER) FROM TBL_RESISTIVITY_SURVEY_SUB WHERE PROJECT_CODE=#{pcode}) AS RESISTIVITY_COUNT
FROM
TEMP_PROJECT_INFO A
WHERE
NVL(A.USE_YN,' ') <> 'N' AND TRIM(PROJECT_CODE) = #{pcode}
]]>
</select>
<select id="selectGetHoleCodeInfo" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT B.*,
@ -665,7 +683,7 @@
</select>
<select id="selectProjectList" parameterType="map" resultType="egovMap">
SELECT
*
FROM
@ -677,7 +695,7 @@
<foreach collection="projectList" item="project" index="index" open="(" close=")" separator=",">
#{project}
</foreach>
</select>
<select id="selectWebDownloadLog" parameterType="map" resultType="egovMap">
@ -739,7 +757,7 @@
MAX(HOLE_LOCATION_TM_Y) MAXY
FROM TBL_HEADER
WHERE
NVL(USE_YN,' ') <> 'N' AND
NVL(USE_YN,' ') <> 'N' AND
]]>
<if test="projectCode != null">
<![CDATA[
@ -1055,7 +1073,7 @@
]]>
</select>
<select id="selectTblProjectInformationYn" parameterType="map" resultType="egovMap">
<select id="selectTblProjectInformationYn" parameterType="map" resultType="egovMap">
select
b.HOLE_CODE,
B.HOLE_TOTAL_DEPTH DEPTH,
@ -1433,4 +1451,32 @@
</select>
<select id="sPCntTblCsiByKeyword" parameterType="map" resultType="long">
SELECT SP_CNT_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},
#{constName, jdbcType=VARCHAR},
#{constStartDate, jdbcType=VARCHAR},
#{constEndDate, jdbcType=VARCHAR},
#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},
#{masterCompanyTwCode, jdbcType=VARCHAR},
#{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR},
NULL
) FROM DUAL
</select>
<select id="spGetTblCsiByKeyword" parameterType="map" resultType="egovMap">
SELECT const_name AS project_name,
project_code,
project_hole_number AS hole_cnt
FROM TABLE(SP_GET_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},#{constName, jdbcType=VARCHAR},#{constStartDate, jdbcType=VARCHAR},#{constEndDate, jdbcType=VARCHAR},#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},#{masterCompanyTwCode, jdbcType=VARCHAR},#{masterCompanyThCode, jdbcType=VARCHAR}, #{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},#{constCompanyAdmin, jdbcType=VARCHAR},#{constCompanyTel, jdbcType=VARCHAR},NULL,
2,2,#{nCount},#{nPage}))
</select>
</mapper>

View File

@ -87,12 +87,12 @@
<!-- 현장수압시험 -->
<if test="waterpressure == 'on'">
AND EXISTS (SELECT 1 FROM TBL_FIELD_PERMEABILITY C WHERE B.HOLE_CODE = C.HOLE_CODE )
AND EXISTS (SELECT 1 FROM TBL_FIELD_WATERPRESSURE C WHERE B.HOLE_CODE = C.HOLE_CODE )
</if>
<!-- 현장투수시험 -->
<if test="permeability == 'on'">
AND EXISTS (SELECT 1 FROM TBL_FIELD_WATERPRESSURE C WHERE B.HOLE_CODE = C.HOLE_CODE )
AND EXISTS (SELECT 1 FROM TBL_FIELD_PERMEABILITY C WHERE B.HOLE_CODE = C.HOLE_CODE )
</if>
<!-- 점하중 -->
@ -276,13 +276,13 @@
<!-- 현장수압시험 -->
<if test="waterpressure == 'on'">
UNION ALL
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_PERMEABILITY
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_WATERPRESSURE
</if>
<!-- 현장투수시험 -->
<if test="permeability == 'on'">
UNION ALL
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_WATERPRESSURE
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_PERMEABILITY
</if>
<!-- 점하중 -->
@ -496,12 +496,12 @@
<!-- 현장수압시험 -->
<if test="waterpressure == 'on'">
AND EXISTS (SELECT 1 FROM TBL_FIELD_PERMEABILITY C WHERE B.HOLE_CODE = C.HOLE_CODE )
AND EXISTS (SELECT 1 FROM TBL_FIELD_WATERPRESSURE C WHERE B.HOLE_CODE = C.HOLE_CODE )
</if>
<!-- 현장투수시험 -->
<if test="permeability == 'on'">
AND EXISTS (SELECT 1 FROM TBL_FIELD_WATERPRESSURE C WHERE B.HOLE_CODE = C.HOLE_CODE )
AND EXISTS (SELECT 1 FROM TBL_FIELD_PERMEABILITY C WHERE B.HOLE_CODE = C.HOLE_CODE )
</if>
<!-- 점하중 -->
@ -685,13 +685,13 @@
<!-- 현장수압시험 -->
<if test="waterpressure == 'on'">
UNION ALL
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_PERMEABILITY
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_WATERPRESSURE
</if>
<!-- 현장투수시험 -->
<if test="permeability == 'on'">
UNION ALL
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_WATERPRESSURE
SELECT DISTINCT HOLE_CODE FROM TBL_FIELD_PERMEABILITY
</if>
<!-- 점하중 -->

View File

@ -13,19 +13,25 @@ $(function(){
<%
String startDate = request.getParameter("startDate");
String endDate = request.getParameter("endDate");
startDate = startDate.replaceAll("<", "&amp;lt;");
startDate = startDate.replaceAll(">", "&amp;gt;");
startDate = startDate.replaceAll("&", "&amp;amp;");
startDate = startDate.replaceAll("\"", "&amp;quot;");
endDate = endDate.replaceAll("<", "&amp;lt;");
endDate = endDate.replaceAll(">", "&amp;gt;");
endDate = endDate.replaceAll("&", "&amp;amp;");
endDate = endDate.replaceAll("\"", "&amp;quot;");
%>
document.getElementById('startDate').value = <%=("null".equals(startDate))?"2020":startDate%>;
document.getElementById('endDate').value = <%=("null".equals(endDate))?"":endDate%>;
<%-- document.getElementById('startDate').value = <%=("null".equals(startDate))?"2020":startDate%>; --%>
<%-- document.getElementById('endDate').value = <%=("null".equals(endDate))?"":endDate%>; --%>
<% if (!"null".equals(startDate)) {%>
document.getElementById('startDate').value = "<%=startDate%>";
<% }%>
<% if (!"null".equals(endDate)) {%>
document.getElementById('endDate').value = "<%=endDate%>";
<% }%>
});
function enterkey() {
if (window.event.keyCode == 13) {
@ -61,15 +67,27 @@ $(function(){
<div class="f-left">
기간 :
<select id="startDate" name="startDate" style="width: 160px;" validNm="시작연도" onChange="fn_onSelectStartYear()">
<c:forEach items="${year}" var="item">
<option value="${item.year}" selected>${item.year}</option>
<c:forEach items="${year}" var="item" varStatus="status">
<c:choose>
<c:when test="${status.first}">
<%-- <c:if test="${startDate eq 'null'}"> --%>
<option value="0000" selected>전체</option>
<%-- </c:if> --%>
<%-- <c:if test="${startDate ne 'null'}"> --%>
<option value="${item.year}">${item.year}</option>
<%-- </c:if> --%>
</c:when>
<c:otherwise>
<option value="${item.year}">${item.year}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
~
<select id="endDate" name="endDate" style="width: 160px;" validNm="종료연도" onChange="fn_onSelectEndYear()">
<option selected>선택</option>
<option value="">전체</option>
<c:forEach items="${year}" var="item">
<option value="${item.year}" selected>${item.year}</option>
<option value="${item.year}">${item.year}</option>
</c:forEach>
</select>
</div>

View File

@ -178,6 +178,12 @@
</a>
</li>
<li class="">
<a href="/drilling/statistics.do">
통계
</a>
</li>
<li class="" style="display: none;">
<a href="/drilling/input.do">
입력 하기

View File

@ -34,6 +34,101 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<c:import url="/drilling/common/includeTopMenu.do" charEncoding="UTF-8" />
<!-- header end-->
<style>
@keyframes shake {
0% { transform: translateX(0); }
10% { transform: translateX(-5px); }
20% { transform: translateX(5px); }
30% { transform: translateX(-5px); }
40% { transform: translateX(5px); }
50% { transform: translateX(-5px); }
60% { transform: translateX(5px); }
70% { transform: translateX(-5px); }
80% { transform: translateX(5px); }
90% { transform: translateX(-5px); }
100% { transform: translateX(0); }
}
.shake-animation {
animation: shake 0.6s;
}
/* The snackbar - position it at the bottom and in the middle of the screen */
#snackbar {
visibility: hidden; /* Hidden by default. Visible on click */
min-width: 250px; /* Set a default minimum width */
margin-left: -125px; /* Divide value of min-width by 2 */
background-color: #000000; /* Black background color */
color: #ff0000; /* White text color */
text-align: center; /* Centered text */
border-radius: 2px; /* Rounded borders */
padding: 16px; /* Padding */
position: fixed; /* Sit on top of the screen */
z-index: 1; /* Add a z-index if needed */
left: 50%; /* Center the snackbar */
bottom: 80px; /* 30px from the bottom */
font-weight: 500;
}
/* Show the snackbar when clicking on a button (class added with JavaScript) */
#snackbar.show {
visibility: visible; /* Show the snackbar */
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
However, delay the fade out process for 2.5 seconds */
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 80px; opacity: 1;}
}
@keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 80px; opacity: 1;}
}
@-webkit-keyframes fadeout {
from {bottom: 80px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
@keyframes fadeout {
from {bottom: 80px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
#suggestionList {
border: 1px solid #ccc;
width: 300px; /* 입력창 너비에 맞춰 조절 */
position_: absolute;
background-color: white;
display: none;
left: 91px;
top: 54px;
z-index: 3;
}
#suggestionList div {
padding: 5px;
cursor: pointer;
}
#suggestionList div:hover {
background-color: #f0f0f0;
}
#suggestionList div .organizational-structure {
color: red;
}
#const-state-code {
width: 160px;
}
</style>
<!-- javascript start-->
<script type="text/javascript">
@ -118,10 +213,9 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
let lastIndicator = Math.ceil(nPage / nCount) * 10; // 현재 페이지의 마지막 페이지인디케이터 번호
let totalIndicator = Math.ceil(obj.count / nCount); // 총 페이지인디케이터 번호
let pagingEleHTML = "<ul>"
if (!(firstIndicator-1) < 1) {
pagingEleHTML += `<li data-npage="` + (firstIndicator-1) +`" class="page-button"><a href="#"><img src="/com/img/common/icon/ico_chevron.svg" alt="Chevron-prev" class="page-prev"></a></li>
`;
}
if (!((firstIndicator - 1) < 1)) {
pagingEleHTML = pagingEleHTML + '<li data-npage="' + (firstIndicator - 1) + '" class="page-button"><a href="#"><img src="/com/img/common/icon/ico_chevron.svg" alt="Chevron-prev" class="page-prev"></a></li>';
}
for( let i = firstIndicator; i<lastIndicator+1; i++ ) {
if (i <= totalIndicator) {
@ -217,8 +311,98 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
}
});
var projectNameInput = document.getElementById('const-name');
var suggestionListDiv = document.getElementById("suggestionList");
projectNameInput.onkeyup = function() {
var projectName = String(this.value).trim();
if (projectName.length > 0) {
$.ajax({
type : "GET",
data : {
projectName : projectName,
isProjectNameChecking : "true"
},
url : "/drilling-project-list.json",
dataType : "json",
success : function( json ) {
suggestionListDiv.innerHTML = ""; // 이전 목록 비우기
suggestionListDiv.style.display = "none";
var list = json.result.list;
var matchingProjects = [];
for (var i = 0; i < list.length; i++) {
matchingProjects.push(list[i]);
}
if (matchingProjects.length > 0) {
for (var i = 0; i < matchingProjects.length; i++) {
var suggestionItem = document.createElement("div");
var organHierarchy = " " + matchingProjects[i].glDistrict !== null ? matchingProjects[i].glDistrict : "";
if( matchingProjects[i].gmDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gmDistrict;
}
if( matchingProjects[i].gsDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gsDistrict;
}
suggestionItem.setAttribute('data-const-name', matchingProjects[i].constName);
suggestionItem.setAttribute('data-cid', matchingProjects[i].cid);
// 검색어를 굵게 표시
              var constName = matchingProjects[i].constName;
              var projectName = String(projectNameInput.value).trim();
              // 정규식으로 검색어를 찾고, 대소문자 구분 없이 처리
              var regex = new RegExp(projectName, "gi");
              var boldConstName = constName.replace(regex, '<b>' + projectName + '</b>');
suggestionItem.innerHTML = 
              '<span>' + boldConstName + '</span><br />\n' +
              '<span class="organizational-structure" data->' +
              "발주처: " + organHierarchy
              '</span>';
suggestionItem.onclick = function() {
projectNameInput.value = this.getAttribute('data-const-name');
suggestionListDiv.style.display = "none";
};
suggestionListDiv.appendChild(suggestionItem);
}
// suggestionListDiv 위치 설정
var rect = projectNameInput.getBoundingClientRect();
suggestionListDiv.style.position = 'absolute';
//suggestionListDiv.style.left = rect.left + 'px';
//suggestionListDiv.style.top = (rect.bottom + window.scrollY) + 'px';
//suggestionListDiv.style.float = 'left';
suggestionListDiv.style.width = rect.width + 'px';
suggestionListDiv.style.display = "block";
}
},
error: function(xhr, option, error){
alert(xhr.status); //오류코드
alert(error); //오류내용
}
});
}
};
// 사용자가 추천 목록 외부를 클릭하면 목록 숨기기 (선택적)
document.onclick = function(event) {
if (event.target !== projectNameInput && event.target !== suggestionListDiv && !suggestionListDiv.contains(event.target)) {
suggestionListDiv.style.display = "none";
}
};
});
</script>
<!-- javascript end-->
@ -260,10 +444,20 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<label class="input-label-display">검색</label>
<input type="hidden" id="const-tag" name="const-tag" value="C" >
<input type="search" id="const-name" name="const-name" class="input" placeholder="프로젝트명" title="" value="">
<div id="suggestionList"></div>
<input type="date" id="const-start-date" name="const-start-date" >
<span>~</span>
<input type="date" id="const-end-date" name="const-end-date" >
<input type="hidden" id="const-state-code" name="const-end-date">
<input type="hidden" >
<select id="const-state-code" name="const-state-code">
<option value="" selected="selected">전체</option>
<option value="1">미입력</option>
<option value="2">입력 중</option>
<option value="3">검수 준비 대기중</option>
<option value="4">검수 중</option>
<option value="6">수정 요청</option>
<option value="7">등록 완료</option>
</select>
</form>
<form class="form-inline-row">
<input type="text" id="company-dept" name="company-dept" class="input input-1" placeholder="담당부서,건설사명" title="" value="">

View File

@ -0,0 +1,148 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%
if (request.getSession().getAttribute("USERID") == null) {
%>
<script>alert('로그인후 이용하실 수 있습니다.');window.location.href='/index.do';</script>
<%
return;
}
%>
<%
if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSession().getAttribute("CLS") ) == false ) {
%>
<script>alert('발주 기관 회원만 이용가능합니다.');window.location.href='/index.do';</script>
<%
return;
}
%>
<%@ include file="/include/inc_head_2021_new.jsp" %>
<!-- header start-->
<c:import url="/drilling/common/includeTopMenu.do" charEncoding="UTF-8" />
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Google Fonts: Inter -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet">
<!-- header end-->
<style>
/* Minimal styles needed for this page */
</style>
<!-- javascript start-->
<script type="text/javascript">
</script>
<!-- javascript end-->
<!-- 페이지 컨테이너 시작 -->
<section class="drilling-page-container">
<div class="page-content-wrapper drilling inquiry">
<!-- 서브메뉴 시작 -->
<div class="page-sidebar-wrapper">
<div class="page-sidebar">
<div class="treeview-project-name">
<p class="project-title">알림</p>
<p class="project-value"><a href="/drilling/statistics.do">통계</a></p>
<p class="project-value value-is-active">알림 내역</p>
</div>
</div>
</div>
<!-- 서브메뉴 끝 -->
<!-- 콘텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<!-- 카테고리 시작 -->
<div class="category-wrapper">
<ul class="page-category">
<li class="category-item"></li>
<li class="category-item">알림 내역</li>
</ul>
<a href="#" class="btn btn-help">도움말</a>
</div>
<!-- 카테고리 끝 -->
<h1 class="page-title-1depth">알림 내역</h1>
<!-- 내용 시작 -->
<div class="content-wrapper">
<!-- Main Content -->
<main class="w-full">
<div class="bg-white p-6 rounded-lg shadow-md">
<div class="border-b pb-4 mb-4">
<h3 class="font-semibold text-gray-800 text-4xl">건설현장 프로젝트 상태 변경 이력</h3>
</div>
<div class="space-y-6">
<!-- Notification Item 1 -->
<div class="flex items-start p-4 bg-gray-50 rounded-lg">
<div class="bg-green-500 text-white rounded-full h-10 w-10 flex-shrink-0 flex items-center justify-center mr-4">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
<div class="flex-grow">
<p class="text-3xl font-medium text-gray-800">'충북선 달천 충주간' 프로젝트</p>
<p class="text-2xl text-gray-600">상태가 <span class="font-semibold text-yellow-600">검수중</span>에서 <span class="font-semibold text-green-600">검수 완료</span>로 변경되었습니다.</p>
</div>
<div class="text-right text-gray-500 text-xl">
<p>2025-08-27</p>
<p>14:30</p>
</div>
</div>
<!-- Notification Item 2 -->
<div class="flex items-start p-4 bg-gray-50 rounded-lg">
<div class="bg-blue-500 text-white rounded-full h-10 w-10 flex-shrink-0 flex items-center justify-center mr-4">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
<div class="flex-grow">
<p class="text-3xl font-medium text-gray-800">'제3연륙교 건설 공사' 프로젝트</p>
<p class="text-2xl text-gray-600">상태가 <span class="font-semibold text-green-600">검수 완료</span>에서 <span class="font-semibold text-blue-600">수정 요청</span>으로 변경되었습니다.</p>
</div>
<div class="text-right text-gray-500 text-xl">
<p>2025-08-26</p>
<p>11:15</p>
</div>
</div>
<!-- Notification Item 3 -->
<div class="flex items-start p-4 bg-gray-50 rounded-lg">
<div class="bg-yellow-500 text-white rounded-full h-10 w-10 flex-shrink-0 flex items-center justify-center mr-4">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg>
</div>
<div class="flex-grow">
<p class="text-3xl font-medium text-gray-800">'수도권 제2순환고속도로' 프로젝트</p>
<p class="text-2xl text-gray-600">상태가 <span class="font-semibold text-gray-600">미입력</span>에서 <span class="font-semibold text-yellow-600">검수중</span>으로 변경되었습니다.</p>
</div>
<div class="text-right text-gray-500 text-xl">
<p>2025-08-25</p>
<p>09:05</p>
</div>
</div>
</div>
</div>
</main>
</div>
<!-- 내용 끝 -->
</div>
</div>
<!-- 콘텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
<div id="calenderDiv" class="trViewOff" style="position:absolute;"></div>
<%@ include file="/include/inc_footer_2021_new.jsp" %>

View File

@ -0,0 +1,401 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%
if (request.getSession().getAttribute("USERID") == null) {
%>
<script>alert('로그인후 이용하실 수 있습니다.');window.location.href='/index.do';</script>
<%
return;
}
%>
<%
if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSession().getAttribute("CLS") ) == false ) {
%>
<script>alert('발주 기관 회원만 이용가능합니다.');window.location.href='/index.do';</script>
<%
return;
}
%>
<%@ include file="/include/inc_head_2021_new.jsp" %>
<!-- header start-->
<c:import url="/drilling/common/includeTopMenu.do" charEncoding="UTF-8" />
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Chart.js CDN for creating charts -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- Google Fonts: Inter -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet">
<!-- header end-->
<style>
@keyframes shake {
0% { transform: translateX(0); }
10% { transform: translateX(-5px); }
20% { transform: translateX(5px); }
30% { transform: translateX(-5px); }
40% { transform: translateX(5px); }
50% { transform: translateX(-5px); }
60% { transform: translateX(5px); }
70% { transform: translateX(-5px); }
80% { transform: translateX(5px); }
90% { transform: translateX(-5px); }
100% { transform: translateX(0); }
}
.shake-animation {
animation: shake 0.6s;
}
/* The snackbar - position it at the bottom and in the middle of the screen */
#snackbar {
visibility: hidden; /* Hidden by default. Visible on click */
min-width: 250px; /* Set a default minimum width */
margin-left: -125px; /* Divide value of min-width by 2 */
background-color: #000000; /* Black background color */
color: #ff0000; /* White text color */
text-align: center; /* Centered text */
border-radius: 2px; /* Rounded borders */
padding: 16px; /* Padding */
position: fixed; /* Sit on top of the screen */
z-index: 1; /* Add a z-index if needed */
left: 50%; /* Center the snackbar */
bottom: 80px; /* 30px from the bottom */
font-weight: 500;
}
/* Show the snackbar when clicking on a button (class added with JavaScript) */
#snackbar.show {
visibility: visible; /* Show the snackbar */
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
However, delay the fade out process for 2.5 seconds */
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 80px; opacity: 1;}
}
@keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 80px; opacity: 1;}
}
@-webkit-keyframes fadeout {
from {bottom: 80px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
@keyframes fadeout {
from {bottom: 80px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
#suggestionList {
border: 1px solid #ccc;
width: 300px; /* 입력창 너비에 맞춰 조절 */
position_: absolute;
background-color: white;
display: none;
left: 91px;
top: 54px;
z-index: 3;
}
#suggestionList div {
padding: 5px;
cursor: pointer;
}
#suggestionList div:hover {
background-color: #f0f0f0;
}
#suggestionList div .organizational-structure {
color: red;
}
#const-state-code {
width: 160px;
}
</style>
<!-- javascript start-->
<script type="text/javascript">
</script>
<!-- javascript end-->
<!-- 페이지 컨테이너 시작 -->
<section class="drilling-page-container">
<div class="page-content-wrapper drilling inquiry">
<!-- 서브메뉴 시작 -->
<div class="page-sidebar-wrapper">
<div class="page-sidebar">
<div class="treeview-project-name">
<p class="project-title">통계</p>
<p class="project-value value-is-active">통계</p>
<p class="project-value"><a href="/drilling/notice.do">알림 내역</a></p>
</div>
</div>
</div>
<!-- 서브메뉴 끝 -->
<!-- 콘텐츠 시작 -->
<div class="page-content">
<div class="page-content-inner">
<!-- 카테고리 시작 -->
<div class="category-wrapper">
<ul class="page-category">
<li class="category-item"></li>
<li class="category-item">통계</li>
</ul>
<a href="#" class="btn btn-help">도움말</a>
</div>
<!-- 카테고리 끝 -->
<h1 class="page-title-1depth">통계</h1>
<!-- 내용 시작 -->
<div class="content-wrapper">
<!-- Main Content -->
<main class="flex flex-col lg:flex-row gap-4">
<!-- Right Sidebar -->
<aside class="w-full flex flex-col gap-4">
<!-- Wrapper div for side-by-side layout on large screens -->
<div class="flex flex-col lg:flex-row gap-4">
<!-- Project Status Chart -->
<div class="w-full lg:w-1/2 bg-white p-4 rounded-lg shadow-md">
<h3 class="font-semibold text-gray-800 mb-2 text-4xl">건설현장 프로젝트 입력상태 별 그래프</h3>
<div class="w-full h-[28rem] flex justify-center items-center">
<canvas id="projectStatusChart"></canvas>
</div>
</div>
<!-- Notifications -->
<div class="w-full lg:w-1/2 bg-white p-4 rounded-lg shadow-md flex flex-col">
<div class="flex justify-between items-center mb-2">
<h3 class="font-semibold text-gray-800 text-4xl">알림 내역</h3>
<a href="../drilling/notice.do" class="text-3xl text-blue-600 hover:underline">모두 보기</a>
</div>
<div class="space-y-3 flex-grow">
<div class="flex items-start p-2 bg-blue-50 rounded-lg">
<div class="bg-blue-500 text-white rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
<div>
<p class="text-3xl font-medium text-gray-800">수정 요청</p>
<p class="text-2xl text-gray-600">'제3연륙교 건설 공사' 프로젝트의 시추정보 수정이 필요합니다.</p>
</div>
</div>
<div class="flex items-start p-2 rounded-lg">
<div class="bg-green-500 text-white rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
<div>
<p class="text-3xl font-medium text-gray-800">검수 완료</p>
<p class="text-2xl text-gray-600">'충북선 달천 충주간' 프로젝트가 검수 완료되었습니다.</p>
</div>
</div>
</div>
</div>
</div>
<!-- Report Download Section -->
<div class="bg-white p-4 rounded-lg shadow-md">
<h3 class="font-semibold text-gray-800 mb-2 text-4xl">통계 보고서 다운로드</h3>
<p class="text-2xl text-gray-600 mb-4">발주기관 통계 기능을 보고서 형태로 다운로드 받을 수 있습니다.</p>
<!-- MODIFIED: Changed grid to 3 columns to allow for different chart widths -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-4">
<!-- MODIFIED: Set column span to 1 -->
<div class="md:col-span-1 flex flex-col items-center">
<h4 class="text-2xl font-medium text-center text-gray-700 mb-2">위험도 현황</h4>
<div class="relative h-96 w-96">
<canvas id="riskChart"></canvas>
</div>
</div>
<!-- MODIFIED: Set column span to 2 to make it twice as wide -->
<div class="md:col-span-2 flex flex-col items-center">
<h4 class="text-2xl font-medium text-center text-gray-700 mb-2">프로젝트 재정 현황</h4>
<!-- MODIFIED: Changed width to w-full to fill the new column span -->
<div class="relative h-96 w-full">
<canvas id="financialChart"></canvas>
</div>
</div>
</div>
<!-- MODIFIED: Wrapped button in a flex container to center it and reduced its width -->
<div class="flex justify-center">
<!-- MODIFIED: Reduced width from md:w-1/4 to md:w-[15%] (40% reduction) -->
<button class="w-full md:w-[15%] bg-red-500 hover:bg-red-600 text-white font-bold py-2 px-4 rounded-lg flex items-center justify-center transition duration-300 text-3xl">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"></path></svg>
PDF로 내보내기
</button>
</div>
</div>
</aside>
</main>
<script>
// Chart.js initialization
document.addEventListener('DOMContentLoaded', () => {
// 1. Project Status Pie Chart
const ctxProjectStatus = document.getElementById('projectStatusChart').getContext('2d');
new Chart(ctxProjectStatus, {
type: 'pie',
data: {
labels: ['등록완료', '미입력', '검수중', '수정요청'],
datasets: [{
label: '프로젝트 상태',
data: [34, 32, 18, 16],
backgroundColor: [
'rgba(239, 68, 68, 0.8)', // Red
'rgba(245, 158, 11, 0.8)', // Amber
'rgba(16, 185, 129, 0.8)', // Emerald
'rgba(59, 130, 246, 0.8)' // Blue
],
borderColor: [
'rgba(239, 68, 68, 1)',
'rgba(245, 158, 11, 1)',
'rgba(16, 185, 129, 1)',
'rgba(59, 130, 246, 1)'
],
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'top',
},
tooltip: {
callbacks: {
label: function(context) {
let label = context.label || '';
if (label) {
label += ': ';
}
if (context.parsed !== null) {
label += context.parsed + '%';
}
return label;
}
}
}
}
}
});
// 2. Risk Status Donut Chart
const ctxRisk = document.getElementById('riskChart').getContext('2d');
new Chart(ctxRisk, {
type: 'doughnut',
data: {
labels: ['낮은 위험', '중간 위험', '높은 위험'],
datasets: [{
data: [41, 22, 37],
backgroundColor: [
'rgba(34, 197, 94, 0.8)', // Green
'rgba(245, 158, 11, 0.8)', // Amber
'rgba(239, 68, 68, 0.8)' // Red
],
borderColor: [
'rgba(34, 197, 94, 1)',
'rgba(245, 158, 11, 1)',
'rgba(239, 68, 68, 1)'
],
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: true,
plugins: {
legend: {
position: 'bottom',
labels: {
boxWidth: 12
}
}
}
}
});
// 3. Financial Status Bar Chart
const ctxFinancial = document.getElementById('financialChart').getContext('2d');
new Chart(ctxFinancial, {
type: 'bar',
data: {
labels: ['프로젝트 A', '프로젝트 B', '프로젝트 C', '프로젝트 D'],
datasets: [{
label: '예산',
data: [65, 59, 80, 81],
backgroundColor: 'rgba(59, 130, 246, 0.7)',
borderColor: 'rgba(59, 130, 246, 1)',
borderWidth: 1
}, {
label: '실제 비용',
data: [45, 49, 60, 70],
backgroundColor: 'rgba(239, 68, 68, 0.7)',
borderColor: 'rgba(239, 68, 68, 1)',
borderWidth: 1
},{
label: '예상 비용',
data: [75, 69, 90, 91],
backgroundColor: 'rgba(16, 185, 129, 0.7)',
borderColor: 'rgba(16, 185, 129, 1)',
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true,
ticks: {
callback: function(value) {
return value + '억';
}
}
}
},
plugins: {
legend: {
display: false
}
}
}
});
});
</script>
</div>
<!-- 내용 끝 -->
</div>
</div>
<!-- 콘텐츠 끝 -->
</div>
</section>
<!-- 페이지 컨테이너 끝 -->
<div id="calenderDiv" class="trViewOff" style="position:absolute;"></div>
<%@ include file="/include/inc_footer_2021_new.jsp" %>

View File

@ -32,6 +32,13 @@
var personalinfo_old = window.open("personalinfo_20240625.do", "personalinfo_20240625", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
function personalinfo_20240801() {
var personalinfo_old = window.open("personalinfo_20240801.do", "personalinfo_20240801", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
</script>
<style>
.emphasis {
@ -630,10 +637,10 @@
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토교통부/공간정보진흥과</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">김춘호</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">유병순</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 168px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-3474</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-4864</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
@ -703,13 +710,13 @@
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토교통부/공간정보진흥과</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 55px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">김춘호</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">유병순</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 103px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-3474</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-4864</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 152px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">kch1995@korea.kr</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">leader@korea.kr</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
@ -754,7 +761,7 @@
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제13조. 개인정보처리방침 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">- 이 개인정보처리방침은 2024. 1. 1부터 적용됩니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">- 이 개인정보처리방침은 2025. 8. 1부터 적용됩니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">- 이전의 개인정보처리방침은 아래에서 확인할 수 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
@ -779,16 +786,33 @@
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 142px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2023.8.1.~현재</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2025.8.1.~현재</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자(진광호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자<br />(김춘호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호담당자(김춘호)&nbsp;</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호담당자<br />(유병순)&nbsp;</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 142px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2023.8.1.~2025.07.31</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자<br />(진광호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호담당자<br />(김춘호)&nbsp;</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
@ -802,10 +826,10 @@
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호책임자 및 보호담당자 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자(오성익), 개인정보보호담당자(김현주) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자<br />(오성익),<br />개인정보보호담당자<br />(김현주) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자(김유진), 개인정보보호담당자(진광호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자<br />(김유진),<br />개인정보보호담당자<br />(진광호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;">

View File

@ -0,0 +1,863 @@
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!-- 센터소개 개요 -->
<html>
<head>
<%@ include file="include/header_iframe.jsp" %>
<script>
function personalinfo_20190606() {
var personalinfo_old = window.open("personalinfo_20190606.do", "personalinfo_20190606", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
function personalinfo_20200506() {
var personalinfo_old = window.open("personalinfo_20200506.do", "personalinfo_20200506", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
function personalinfo_20210531() {
var personalinfo_old = window.open("personalinfo_20210531.do", "personalinfo_20210531", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
function personalinfo_20220831() {
var personalinfo_old = window.open("personalinfo_20220831.do", "personalinfo_20220831", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
function personalinfo_20230101() {
var personalinfo_old = window.open("personalinfo_20230101.do", "personalinfo_20230101", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
function personalinfo_20240625() {
var personalinfo_old = window.open("personalinfo_20240625.do", "personalinfo_20240625", "title=no,toolbar=no,scrollbars=yes,width=800,height=800,left=50,top=50");
personalinfo_old.focus();
}
</script>
<style>
.emphasis {
font-size: 16px;
color: #3389ff;
text-decoration: underline;
}
</style>
</head>
<body class="iframe-body popup-body">
<div class="content-wrapper">
<h2 class="page-title-2depth marT0"><span>국토지반정보 포털시스템 개인정보처리방침</span></h2>
<div class="usage-guidelines-box">
<span class="pattern-top-L"></span>
<span class="pattern-top-R"></span>
<span class="pattern-bottom-L"></span>
<span class="pattern-bottom-R"></span>
<div class="contents-row">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="color:#6082bd; font-weight:bold; letter-spacing:-1px;">
<p>국토지반정보 통합DB센터가 운영하는 &lt;국토지반정보 포털시스템&gt;은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보 및 권익을 보호하고 개인정보 처리에 대한 절차 안내 및 고충처리를 원활하게 처리할 수 있도록 다음과 같은 개인정보 처리 방침을 수립ㆍ운영하고 있습니다.</p>
<p>&lt;국토지반정보 포털시스템&gt;은(는) 이러한 법령의 규정에 따라 수집·보유 및 처리하는 개인정보를 공공업무의 적절한 수행과 이용자의 권익을 보호하기 위해 적법하고 적정하게 취급할 것입니다. 또한, &lt;국토지반정보 포털시스템&gt;은(는) 관련 법령에서 규정한 바에 따라 보유하고 있는 개인정보에 대한 열람, 정정·삭제, 처리정지 요구 등 이용자의 권익을 존중하며, 이용자는 이러한 법령상 권익의 침해 등에 대하여 행정심판법에서 정하는 바에 따라 행정심판을 청구할 수 있습니다.</p>
</td>
</tr>
<tr>
<td height="18"></td>
</tr>
<tr>
<td style="color:#6082bd; font-weight:bold; letter-spacing:-1px;">
<p class="HStyle0" style="text-align: center; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">국토지반정보 포털시스템 개인정보처리방침</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">국토지반정보 통합DB센터가 운영하는 &lt;국토지반정보 포털시스템&gt;템에서 취급하는 「개인정보 보호법」제30조에 따라 정보주체의 개인정보 및 권익을 보호하고 개인정보 처리에 대한 절차 안내 및 고충처리를 원활하게 처리할 수 있도록 다음과 같은 개인정보 처리 방침을 수립ㆍ운영하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">주요 개인정보 처리 표시(라벨링)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 111px; height: 108px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/01_personal_information.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 1.개인정보.jpg
원본 그림의 크기: 가로 304pixel, 세로 286pixel" width="97px" height="92px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 108px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/03_purpose_of_personal_information_processing.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 3.개인정보의처리목적.jpg
원본 그림의 크기: 가로 298pixel, 세로 303pixel" width="97px" height="99px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 108px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/06_personal_information_retention_period.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 6.개인정보보유기간.jpg
원본 그림의 크기: 가로 306pixel, 세로 328pixel" width="97px" height="104px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 108px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/02_personal_information_items.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 2.개인정보의 처리항목.jpg
원본 그림의 크기: 가로 314pixel, 세로 314pixel" width="97px" height="97px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 108px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/05_consignment_of_personal_information_processing.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 5.개인정보처리위탁.jpg
원본 그림의 크기: 가로 303pixel, 세로 315pixel" width="97px" height="101px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 108px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/12_department_handling_complaints.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 12.고충사항처리부서.jpg
원본 그림의 크기: 가로 266pixel, 세로 261pixel" width="97px" height="95px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 111px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">일반 개인정보 수집</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보의 처리 목적</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보의 보유기간</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 처리항목</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 처리 위탁</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 111px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">고충처리부서</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&lt;국토지반정보 포털시스템&gt;은 이러한 법령의 규정에 따라 수집·보유 및 처리하는 개인정보를 공공업무의 적절한 수행과 이용자의 권익을 보호하기 위해 적법하고 적정하게 취급할 것입니다. 또한, &lt;국토지반정보 포털시스템&gt;은 관련 법령에서 규정한 바에 따라 보유하고 있는 개인정보에 대한 열람, 정정·삭제, 처리정지 요구 등 이용자의 권익을 존중하며, 이용자는 이러한 법령상 권익의 침해 등에 대하여 행정심판법에서 정하는 바에 따라 행정심판을 청구할 수 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">&lt;목차&gt;</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 66px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/03_purpose_of_personal_information_processing.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 3.개인정보의처리목적.jpg
원본 그림의 크기: 가로 298pixel, 세로 303pixel" width="53px" height="54px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 259px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제1조 개인정보의 처리 목적</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 70px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/07_destruction_of_personal_information.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 7.개인정보의파기.jpg
원본 그림의 크기: 가로 307pixel, 세로 319pixel" width="53px" height="55px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 278px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제7조 개인정보 파기 절차 및 방법</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 66px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/06_personal_information_retention_period.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 6.개인정보보유기간.jpg
원본 그림의 크기: 가로 306pixel, 세로 328pixel" width="53px" height="56px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 259px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제2조 개인정보 처리 및 보유기간</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 70px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/09_security_measures.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 9.안전성확보조치사항.jpg
원본 그림의 크기: 가로 283pixel, 세로 270pixel" width="56px" height="54px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 278px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제8조 개인정보 안전성 확보 조치</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 66px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/02_personal_information_items.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 2.개인정보의 처리항목.jpg
원본 그림의 크기: 가로 314pixel, 세로 314pixel" width="53px" height="53px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 259px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제3조 처리하는 개인정보 항목</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 70px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/11_appointment_and_status_of_personal_information_protection_manager.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 11.개인정보보호책임자 지정 및 현황.jpg
원본 그림의 크기: 가로 261pixel, 세로 258pixel" width="56px" height="56px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 278px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제9조. 개인정보보호 (분야별)책임자 및 담당자 연락처</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 66px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/04_provision_of_personal_information_to_third_parties.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 4.제공개인정보3자제공.jpg
원본 그림의 크기: 가로 302pixel, 세로 298pixel" width="53px" height="52px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 259px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제4조 개인정보 제3자 제공에 관한 사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 70px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/13_how_to_request_access_to_personal_information.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 13.개인정보열람청구방법.jpg
원본 그림의 크기: 가로 253pixel, 세로 254pixel" width="56px" height="57px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 278px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제10조 개인정보 열람청구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 66px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/05_consignment_of_personal_information_processing.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 5.개인정보처리위탁.jpg
원본 그림의 크기: 가로 303pixel, 세로 315pixel" width="53px" height="55px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 259px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제5조 개인정보처리 위탁에 관한 사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 70px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/13_how_to_request_access_to_personal_information.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 13.권익침해방지기관안내.jpg
원본 그림의 크기: 가로 255pixel, 세로 256pixel" width="56px" height="57px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 278px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제11조 권익침해 구제방법</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 66px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/08_rights_of_the_data_subject.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 8.정보주체의권리.jpg
원본 그림의 크기: 가로 285pixel, 세로 273pixel" width="53px" height="50px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 259px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제6조 정보주체 권리의무 및 그 행사방법에 관한 사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 70px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0"><span style="position: relative; border-width: 0px;"><img src="/com/img/main/personalinfo/10_changes_to_the_privacy_policy.jpg?v=20250617_094801" alt="그림입니다.
원본 그림의 이름: 10.처리방침의변경.jpg
원본 그림의 크기: 가로 281pixel, 세로 265pixel" width="56px" height="53px" vspace="0" hspace="0" border="0"></span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 278px; height: 72px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">제12조. 개인정보처리방침 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제1조 개인정보의 처리 목적</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① &lt;국토지반정보 포털시스템&gt;에서는 다음과 같은 목적으로 개인정보를 처리하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;가. 회원가입 및 서비스 제공</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 37.2pt; text-indent: -37.2pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;- 국토지반정보 포털시스템에서 제공하는 서비스 및 콘텐츠 등 회원제 서비스 이용에 따른 실명인증을 목적으로 개인정보를 수집하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;나. 민원업무 처리</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.5pt; text-indent: -42.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.04em; line-height: 180%; border-width: 0px;">개인정보 열람 및 정정삭제, 개인정보 처리정지 요구 및 유출사고 신고, 개인정보 침해 </span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">사실 신고 접수처리, 스팸민원고충처리, 해킹신고, 민원사항 확인, 사실조사를 위한 연락 통보, 처리결과 통보 등 민원업무 처리를 목적으로 개인정보를 처리합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;다. 데이터의 유효성 검증</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.03em; line-height: 180%; border-width: 0px;">사용자가 입력한 데이터의 유효성 검증 및 보완 요청을 위한 연락 통지 등을 목적으로 </span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">개인정보를 처리합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">순번</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 210px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">시스템명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보파일명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 101px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">운영근거</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 184px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">처리 목적</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">1</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 210px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인이용자 정보</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 101px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">정보주체 동의</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 184px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: left; border-width: 0px;"><span style="position: relative; border-width: 0px;">- 검색/유통시스템 및 게시판 이용</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: left; border-width: 0px;"><span style="position: relative; border-width: 0px;">- 민원업무처리</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 60px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 210px; height: 60px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 60px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">기업이용자 정보</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 101px; height: 60px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">정보주체 동의</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 184px; height: 60px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: left; border-width: 0px;"><span style="position: relative; border-width: 0px;">- 입력시스템 이용</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: left; border-width: 0px;"><span style="position: relative; border-width: 0px;">- 데이터 유효성 검증 및 보완요청</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: left; border-width: 0px;"><span style="position: relative; border-width: 0px;">- 민원업무처리</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.8pt; text-indent: -18.8pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">② 각 개인정보파일 목적에 따라 최소한의 개인정보를 수집하고 있으며, 처리 목적이 변경될 시 「개인정보 보호법」제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제2조 개인정보 처리 및 보유기간</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① &lt;국토지반정보 포털시스템&gt;</span><span style="position: relative; font-size: 12pt; letter-spacing: -0.02em; line-height: 180%; border-width: 0px;">에서 처리하는 개인정보는 「개인정보 보호법」 및 관련법령에서 </span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">정하는 보유기간 또는 정보주체로부터 개인정보를 수집 시 동의 받는 보관ㆍ이용기간 내에서 개인정보를 처리 및 보관 하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">② &lt;국토지반정보 포털시스템&gt;은 다음과 같은 개인정보 항목을 처리하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">순번</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">시스템명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보파일명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 363px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">처리항목</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">1</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인이용자 정보</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 363px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="margin-left: 30.8pt; text-align: left; text-indent: -30.8pt; border-width: 0px;"><span class="emphasis">(필수) 성명, 아이디, 비밀번호, 이메일, 전화번호, 업종, DI</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 30.8pt; text-align: left; text-indent: -30.8pt; border-width: 0px;"><span>(선택) 회사명/학교명, 부서명, 주소</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">기업이용자 정보</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 363px; height: 81px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="margin-left: 30.8pt; text-align: left; text-indent: -30.8pt; border-width: 0px;"><span class="emphasis">(필수) 성명, 아이디, 비밀번호, 이메일, 전화번호, 업종, DI, 사업자등록번호, 회사명, 대표자명, 설립일자, 부서명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 30.8pt; text-align: left; text-indent: -30.8pt; border-width: 0px;"><span>(선택) 주소</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제3조 처리하는 개인정보 항목</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&lt;국토지반정보 포털시스템&gt;에서 처리하는 개인정보별 보유기간은 다음과 같습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 25px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">순번</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 210px; height: 25px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">시스템명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 25px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보파일명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 101px; height: 25px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">운영근거</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 184px; height: 25px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">보유기간</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">1</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 210px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인이용자 정보</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 101px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">정보주체 동의</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 184px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="emphasis">회원 탈퇴 시 까지</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 210px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">기업이용자 정보</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 101px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">정보주체 동의</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 184px; height: 35px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="emphasis">회원 탈퇴 시 까지</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제4조 개인정보 제3자 제공에 관한 사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.3pt; text-indent: -18.3pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① &lt;국토지반정보 포털시스템&gt;는 정보주체의 동의, 법률의 특별한 규정 등 「개인정보 보호법」 제17조 및 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.</span></p>
<br />
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제5조 개인정보처리 위탁에 관한 사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.3pt; text-indent: -18.3pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① &lt;국토지반정보 포털시스템&gt;은 원활한 서비스를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">순번</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">시스템명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td colspan="2" valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">위탁받는자</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td colspan="3" valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보처리 위탁업무내용</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">위탁기간</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 44px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">1</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보시스템</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">(www.geoinfo.or.kr)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td colspan="2" valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">한국건설기술연구원</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td colspan="3" valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템 서비스</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 157px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="emphasis">계약종료시까지</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19.5pt; text-indent: -19.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">② &lt;국토지반정보 포털시스템&gt;은 위탁 계약 체결 시, 「개인정보 보호법」 제26조에 따라 위탁 업무 수행 목적 외 개인정보 처리금지, 기술적·관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리·감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19.5pt; text-indent: -19.5pt; line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19.5pt; text-indent: -19.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제6조 정보주체 권리의무 및 그 행사방법에 관한 사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.3pt; text-indent: -18.3pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① 정보주체는 언제든 &lt;국토지반정보 포털시스템&gt;에 대해 다음과 같은 권리를 행사할 수 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">가. 개인정보 열람요구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">나. 오류 등이 있을 경우 정정 요구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">다. 삭제 및 처리정정 요구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">라. 개인정보 수집 및 이용 동의에 대한 거부</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.3pt; text-indent: -18.3pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">② 제1항에 따른 권리 행사는 &lt;국토지반정보 포털시스템&gt;에 대해 「개인정보보호법」시행령 제41조 제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 &lt;국토지반정보 포털시스템&gt; 운영 및 관리부서 또는 개인정보책임자는 이에 대해 지체 없이 조치하겠습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.3pt; text-indent: -18.3pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보보호법 시행규칙(개인정보 처리 방법에 관한 고시) 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.3pt; text-indent: -18.3pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">④ 개인정보 열람 및 처리정지 요구는「개인정보 보호법」제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한될 수 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p>
<a href="https://www.privacy.go.kr/" target="_blank" style=" color: #1030ff; font-size: 20px; line-height: 35px; padding-left: 3px; text-decoration: underline;">개인정보확인하기</a>
<br />
</p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제7조 개인정보 파기 절차 및 방법</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18pt; text-indent: -18pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.03em; line-height: 180%; border-width: 0px;">&lt;국토지반정보 포털시스템&gt;은 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체 없이 </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.1em; line-height: 180%; border-width: 0px;">해당 개인정보를 파기하며 파기의 절차, 기한 및 방법은 「개인정보 보호법」제21조를 준수합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;가. 파기절차</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- (개인정보의 파기) 정보주체의 요청(회원탈퇴)시 파기합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.9pt; text-indent: -42.9pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- (개인정보파일의 파기) 개인정보파일의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보파일이 불필요하게 될 경우 개인정보 처리가 불필요한 것으로 확인한 날로부터 지체 없이 그 개인정보를 파기합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;나. 파기방법</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.4pt; text-indent: -42.4pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- (전자적 형태) 재생할 수 없는 기술적 방법을 사용하여 파기합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.4pt; text-indent: -42.4pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- (종이 문서) 분쇄기로 파기하거나 소각을 통해 파기합니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제8조 개인정보 안전성 확보 조치</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19pt; text-indent: -19pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.07em; line-height: 180%; border-width: 0px;">&lt;국토지반정보 포털시스템&gt;</span><span style="position: relative; font-size: 12pt; letter-spacing: -0.04em; line-height: 180%; border-width: 0px;">은 </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.14em; line-height: 180%; border-width: 0px;">「개인정보 보호법」</span><span style="position: relative; font-size: 12pt; letter-spacing: -0.04em; line-height: 180%; border-width: 0px;"> 제29조에 따라 다음과 같이 안전성 확보에 </span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">필요한 기술적, 관리적 및 물리적 조치를 하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;가. 개인정보 취급 직원의 최소화 및 교육</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 개인정보를 취급하는 직원은 반드시 필요한 인원에 한하여 지정·관리하고 있으며 취급직원을 대상으로 안전한 관리를 위한 교육을 실시하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;나. 개인정보에 대한 접근 제한</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여·변경·말소를 통하여 개인정보에 대한 접근통제를 위한 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;다. 접속기록의 보관 및 위변조 방지</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.2pt; text-indent: -42.2pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.03em; line-height: 180%; border-width: 0px;">개인정보처리시스템에 접속한 기록을 최소 1년 이상 보관, 관리하고 있으며, 접속 기록이 </span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">위변조 및 도난, 분실되지 않도록 보안기능을 사용하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;라. 개인정보의 암호화</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.5pt; text-indent: -42.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.08em; line-height: 180%; border-width: 0px;">개인정보는 암호화 등을 통해 안전하게 저장 및 관리되고 있습니다. 또한 중요한 데이터는 </span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">저장 및 전송 시 암호화하여 사용하는 등의 별도 보안기능을 사용하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;마. 보안프로그램 설치 및 주기적 점검·갱신</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42.5pt; text-indent: -42.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.02em; line-height: 180%; border-width: 0px;">해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로</span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">그램을 설치하고 주기적으로 갱신·점검하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;바. 비인가자에 대한 출입 통제</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대한 출입통제 절차를 수립, 운영하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;사. 정기적인 자체 점검 실시</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 개인정보 처리 관련 안전성 확보를 위해 정기적으로 소속·산하기관을 포함하여 개인정보 보호관리 점검을 실시하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;아. 내부관리계획의 수립 및 시행</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 42pt; text-indent: -42pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제9조. 개인정보보호 (분야별)책임자 및 담당자 연락처</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19pt; text-indent: -19pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.07em; line-height: 180%; border-width: 0px;">&lt;국토지반정보 포털시스템&gt;</span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">은 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19pt; text-indent: -19pt; line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 195px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">구분</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 191px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">기관/부서</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">성명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 168px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">연락처</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 195px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 191px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토교통부/공간정보진흥과</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">김유진</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 168px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-3469</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 195px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호담당자(처리자)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 191px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토교통부/공간정보진흥과</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">김춘호</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 168px; height: 20px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-3474</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 195px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템 개인정보 취급자</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 191px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">한국건설기술연구원</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 119px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">장용구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 168px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">031-910-0327</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="margin-left: 19pt; text-indent: -19pt; line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제10조 개인정보 열람청구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 19pt; text-indent: -19pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.07em; line-height: 180%; border-width: 0px;">정</span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">보주체는 개인정보 보호법 제35조에 따른 개인정보의 열람 청구를 아래의 부서에 할 수 있습니다. </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 183px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">구분</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 180px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">기관/부서</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 55px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">성명</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 103px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">연락처</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 152px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">이메일</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 183px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 180px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토교통부/공간정보진흥과</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 55px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">김유진</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 103px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-3469</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 152px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">yjkim123@korea.kr</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 183px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호담당자(처리자)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 180px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토교통부/공간정보진흥과</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 55px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">김춘호</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 103px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">044-201-3474</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 152px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">kch1995@korea.kr</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 183px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">국토지반정보 포털시스템 개인정보 취급자</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 180px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">한국건설기술연구원</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 55px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">장용구</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 103px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">031-910-0327</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 152px; height: 38px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">wkddydrn@kict.re.kr</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제11조 권익침해 구제방법</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 18.5pt; text-indent: -18.5pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">① </span><span style="position: relative; font-size: 12pt; letter-spacing: -0.04em; line-height: 180%; border-width: 0px;">정보주체는 개인정보 침해로 인한 구제를 받기 위하여 개인정보분쟁조정위원회, 한국인터넷</span><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">진흥원 개인정보 침해 신고센터 등에 분쟁 해결이나 상담 등을 신청할 수 있습니다. 이 밖에 기타 개인정보 침해의 신고, 상담에 대하여는 아래의 기관에 문의하시기 바랍니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">1. 개인정보분쟁조정위원회 : (국번없이) 1833-6972 (www.kopico.go.kr)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">2. 개인정보침해신고센터 : (국번없이) 118 (privacy.kisa.or.kr)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">4. 경찰청 : (국번없이) 182 (ecrm.cyber.go.kr)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="margin-left: 12pt; text-indent: -12pt; line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">②「개인정보 보호법」 제35조(개인정보의 열람), 제36조(개인정보의 정정·삭제), 제37조 (개인정보의 처리정지 등)의 규정에 의한 요구에 대 하여 공공기관의 장이 행한 처분 또는 부작위로 인하여 권리 또는 이익의 침해를 받은 자는 행정심판법이 정하는 바에 따라 행정심판을 청구할 수 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">※ 중앙행정심판위원회 : (국번없이) 110 (www.simpan.go.kr)</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; font-weight: bold; line-height: 180%; border-width: 0px;">제13조. 개인정보처리방침 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">- 이 개인정보처리방침은 2024. 1. 1부터 적용됩니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span style="position: relative; font-size: 12pt; line-height: 180%; border-width: 0px;">- 이전의 개인정보처리방침은 아래에서 확인할 수 있습니다.</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;">
</p><table cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 0px none; table-layout: fixed;">
<tbody><tr>
<td valign="middle" style="overflow: hidden; width: 142px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">적용기간</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">변경사항</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">변경전</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">변경후</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 17px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">전문보기</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 142px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2023.8.1.~현재</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호담당자(진광호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호담당자(김춘호)&nbsp;</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 46px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 142px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2023.1.1.~2024.7.31</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보 보호책임자 및 보호담당자 변경</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자(오성익), 개인정보보호담당자(김현주) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">개인정보보호책임자(김유진), 개인정보보호담당자(진광호) </span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 89px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;">
<span style="position: relative; border-width: 0px;">
<a href="#" onClick="javascript:personalinfo_20230101()">&lt;2019. 6. 7 2023. 12. 31 적용 지침 (클릭)&gt;</a>
</span>
<span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span>
</p>
</td>
</tr>
<tr>
<td valign="middle" style="overflow: hidden; width: 142px; height: 67px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span style="position: relative; border-width: 0px;">2019.6.6. 이전내용</span><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 135px; height: 67px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 146px; height: 67px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 127px; height: 67px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
<td valign="middle" style="overflow: hidden; width: 123px; height: 67px; border-width: 0.8pt; border-style: solid; border-color: rgb(0, 0, 0); padding: 1.4pt 5.1pt;">
<p class="HStyle0" style="text-align: center; border-width: 0px;">
<span style="position: relative; border-width: 0px;">
<a href="#" onClick="javascript:personalinfo_20190606()">&nbsp;&lt;2002. 1. 1 2019. 6. 6 적용 지침 (클릭)&gt;</a>
</span>
<span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span>
</p>
</td>
</tr>
</tbody></table><p></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
<p class="HStyle0" style="line-height: 180%; border-width: 0px;"><span class="hnc_page_break" style="word-spacing: -0.5em; border-width: 0px;">&nbsp;</span></p>
</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>

View File

@ -156,8 +156,8 @@ function LoadingShow() {
<li><a href="javascript:showJusangdo();"
class="map-top-btn map-btn-icon-column">시추<br />주상도
</a></li>
<li><a href="javascript:showSichuInfoDetail();"
class="map-top-btn map-btn-icon-info">정보<br />보기
<li><a href="javascript:showSichuInfoDetail(true);"
class="map-top-btn map-btn-icon-info">사업정보<br />보기
</a></li>
<li><a href="javascript:showSichuInfo2();"
class="map-top-btn map-btn-icon-info">개별정보<br />보기
@ -442,14 +442,16 @@ function LoadingShow() {
<table class="table table-bordered">
<colgroup>
<col width="auto">
<col width="11%">
<col width="11%">
<col width="11%">
<col width="11%">
<col width="11%">
<col width="11%">
<col width="11%">
<col width="11%">
<col width="10%">
<col width="10%">
<%-- <col width="10%"> --%>
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
</colgroup>
<thead>
<tr>
@ -457,11 +459,13 @@ function LoadingShow() {
<th scope="col">굴진심도</th>
<th scope="col">표고</th>
<th scope="col">지하수위</th>
<th scope="col">기본<br>현장시험</th>
<th scope="col">기본<br>물성시험</th>
<th scope="col">토사시험</th>
<th scope="col">암석시험</th>
<th scope="col">물리검층</th>
<!-- <th scope="col">기본<br>현장시험</th> -->
<th scope="col">시료 정보</th>
<th scope="col">실내<br>토사시험</th>
<th scope="col">실내<br>암석시험</th>
<th scope="col">현장시험</th>
<th scope="col">동적시험</th>
<th scope="col">물리탐사</th>
</tr>
</thead>
<tbody id="sichProjectInfo"> <!-- id="sichProjectInfo" -->
@ -470,6 +474,8 @@ function LoadingShow() {
<td class="t-center"></td>
<td class="t-center"></td>
<td class="t-center"></td>
<!-- <td class="t-center"></td> -->
<td class="t-center"></td>
<td class="t-center"></td>
<td class="t-center"></td>
<td class="t-center"></td>
@ -490,6 +496,9 @@ function LoadingShow() {
<script>
var popup1 = $("#popup_type_1");
const regexDoubleQutor = /"/g;
//const regexBraces = /\{/g;
popup1.kendoWindow({
animation: false,
width: 900,
@ -502,8 +511,26 @@ function LoadingShow() {
pinned: true,
title: "사업별 시추공 상세정보"
});
function goOneHoleInfo(element, holeCode, matchingBorehole) {
matchingBorehole = matchingBorehole.replace(/\|\^\|/g, "\"");
//matchingBorehole = JSON.parse(matchingBorehole);
var selectSichSize = HOLE_SELECT.features.length;
var holeCodeArray = HOLE_SELECT.features;
for( i=0; i<holeCodeArray.length; i++ ) {
if( String(holeCodeArray[i].attributes.CODE) === String(holeCode) ) {
selectOneSich(holeCode, matchingBorehole);
if( popupData1 ) {
popupData1.close();
}
break;
}
}
}
function popupDataOpen(projectCode,totalCount){
function popupDataOpen(projectCode,totalCount,isShowPopup) {
/* var params = "projectCode="+"B7328"+"&pcode="+"B7328"; */
openWaitWin();
var params = "projectCode="+projectCode+"&pcode="+projectCode;
@ -522,16 +549,16 @@ function LoadingShow() {
$("#sichProjectCode3").html(data.project.projectCode);
$("#sichMetaData").html('<img src="/body/map/download/image/btns_metadata.gif" width="15" height="15" onClick="javascript:openMetadata(\''+data.project.projectCode+'\')" style="cursor: pointer;">');
$("#sichMetaData2").html('<img src="/body/map/download/image/btns_metadata.gif" width="15" height="15" onClick="javascript:openMetadata(\''+data.project.projectCode+'\')" style="cursor: pointer;">');
if(data.project.resistivityCount == null || data.project.resistivityCount == ''){
$("#resistivityCount").html('0');
if(data.project.resistivityCount == null || data.project.resistivityCount == ''){
$("#resistivityCount").html('<a href="#" onclick="previewClipReport(\'TBL_RESISTIVITY_SURVEY\',\''+data.project.projectCode+'\',\'\')">' + '0' + '</a>');
}else{
$("#resistivityCount").html(data.project.resistivityCount);
$("#resistivityCount").html('<a href="#" onclick="previewClipReport(\'TBL_RESISTIVITY_SURVEY\',\''+data.project.projectCode+'\',\'\')">' + data.project.resistivityCount + '</a>');
}
if(data.project.refractionCount == null || data.project.refractionCount == ''){
$("#refractionCount").html('0');
$("#refractionCount").html('<a href="#" onclick="previewClipReport(\'TBL_REFRACTION_SURVEY\',\''+data.project.projectCode+'\',\'\')">' + '0' + '</a>');
}else{
$("#refractionCount").html(data.project.refractionCount);
$("#refractionCount").html('<a href="#" onclick="previewClipReport(\'TBL_REFRACTION_SURVEY\',\''+data.project.projectCode+'\',\'\')">' + data.project.refractionCount + '</a>');
}
@ -743,7 +770,13 @@ function LoadingShow() {
var text = "";
for(var i=0; i<data.projectYn.length; i++){
text += '<tr>';
// <- 여기에 동일한 holeCode값을 찾는 로직을 구현합니다.
var matchingBorehole = data.testCountsPerBorehole.find(function(borehole) {
return borehole.holeCode === data.projectYn[i].holeCode;
});
text += '<tr onclick="goOneHoleInfo(this, \'' + data.projectYn[i].holeCode + '\', \'' + JSON.stringify(matchingBorehole).replace(regexDoubleQutor, "|^|") + '\')">';
text += '<td class="t-center">'+data.projectYn[i].holeName+'</td>';
text += data.projectYn[i].depth != null ? '<td class="t-center">'+data.projectYn[i].depth+'</td>' : '<td class="t-right"></td>';
@ -757,37 +790,89 @@ function LoadingShow() {
if( (data.projectYn[i].spt == 'Y')||(data.projectYn[i].tcrrqd == 'Y') ||(data.projectYn[i].dsf == 'Y') ||(data.projectYn[i].pressuremeter == 'Y')
||(data.projectYn[i].slickenside == 'Y') ||(data.projectYn[i].q == 'Y') ||(data.projectYn[i].rmr == 'Y') ||(data.projectYn[i].waterpressure == 'Y')
||(data.projectYn[i].permeablity == 'Y')||(data.projectYn[i].conePenetration == 'Y')){
text += '<td class="t-center">V</td>'; //기본현장
// text += '<td class="t-center">V</td>'; //기본현장
}else{
text += '<td class="t-center"></td>';
// text += '<td class="t-center">V</td>'; //기본현장
}
if((data.projectYn[i].sampleInfo == 'Y') ){
text += '<td class="t-center">V</td>'; //기본물성
}else{
text += '<td class="t-center"></td>';
}
if((data.projectYn[i].classification == 'Y') ||(data.projectYn[i].cbrCompac == 'Y') || (data.projectYn[i].consolidation == 'Y') || (data.projectYn[i].unconfinedUsual == 'Y')
||(data.projectYn[i].triaxialUsualCu == 'Y')||(data.projectYn[i].triaxialUsualUu == 'Y')||(data.projectYn[i].resonant == 'Y')||(data.projectYn[i].repeated == 'Y')){
text += '<td class="t-center">V</td>'; //토사
}else{
text += '<td class="t-center"></td>';
}
if (matchingBorehole) {
// Number(null) is 0.
if((data.projectYn[i].rockUniaxial == 'Y') ||(data.projectYn[i].rockTriaxial == 'Y') || (data.projectYn[i].rockPointload == 'Y') || (data.projectYn[i].rockJointshear == 'Y')
||(data.projectYn[i].rockResonant == 'Y')||(data.projectYn[i].rockRepeated == 'Y')){
text += '<td class="t-center">V</td>'; //암석
}else{
text += '<td class="t-center"></td>';
}
// 시료정보( 기본물성 )
if(0 < matchingBorehole.sampleInfo ){
text += '<td class="t-center">V</td>';
}else{
text += '<td class="t-center"></td>';
}
// 실내 토사시험
if(0 < (
Number(matchingBorehole.sandClassification)+
Number(matchingBorehole.sandCbr)+
Number(matchingBorehole.sandConsolidation)+
Number(matchingBorehole.sandUnconfinedUsual)+
Number(matchingBorehole.sandTriaxialUu)+
Number(matchingBorehole.sandTriaxialCu)
)){
text += '<td class="t-center">V</td>';
}else{
text += '<td class="t-center"></td>';
}
// 실내 암석시험
if(0 < (
Number(matchingBorehole.rockUniaxial)+
Number(matchingBorehole.rockTriaxial)+
Number(matchingBorehole.rockPointload)+
Number(matchingBorehole.rockJointshear)
)){
text += '<td class="t-center">V</td>';
}else{
text += '<td class="t-center"></td>';
}
if((data.projectYn[i].boreholeWave == 'Y') ||(data.projectYn[i].downhole == 'Y') || (data.projectYn[i].density == 'Y')){
text += '<td class="t-center">V</td>'; //물리
}else{
text += '<td class="t-center"></td>';
}
// 현장시험
if(0 < (
Number(matchingBorehole.fieldPressuremeter)+
Number(matchingBorehole.fieldPermeablity)+
Number(matchingBorehole.fieldWaterpressure)+
Number(matchingBorehole.fieldConePenetration)
)){
text += '<td class="t-center">V</td>';
}else{
text += '<td class="t-center"></td>';
}
// 동적시험
if(0 < (
Number(matchingBorehole.sandResonant)+
Number(matchingBorehole.rockResonant)+
Number(matchingBorehole.sandRepeatedTriaxial)+
Number(matchingBorehole.rockRepeatedTriaxial)
)){
text += '<td class="t-center">V</td>';
}else{
text += '<td class="t-center"></td>';
}
// 물리탐사
if(0 < (
Number(matchingBorehole.boreholeWave)+
Number(matchingBorehole.downhole)+
Number(matchingBorehole.density)
)){
text += '<td class="t-center">V</td>';
}else{
text += '<td class="t-center"></td>';
}
}
text += '</tr>';
}
@ -795,7 +880,24 @@ function LoadingShow() {
$("#sichProjectInfo").html(text);//9개
if(data.bbox != null){
moveToExtent(data.bbox.minx, data.bbox.miny, data.bbox.maxx, data.bbox.maxy);
var offsetX = (data.bbox.maxx - data.bbox.minx);
var offsetY = (data.bbox.maxy - data.bbox.miny);
var offsetRatio = 0.3;
if( 10000 < offsetX ) {
offsetRatio = 0.25;
}
offsetX = offsetX * offsetRatio;
offsetY = offsetY * offsetRatio;
var minX = data.bbox.minx-offsetX;
var minY = data.bbox.miny-offsetY;
var maxX = data.bbox.maxx+offsetX;
var maxY = data.bbox.maxy+offsetY;
moveToExtent(minX, minY, maxX, maxY);
}
addProjectHoles(data.project.projectCode);
$("#mask").hide();
@ -809,7 +911,10 @@ function LoadingShow() {
/* popupDataOpen2(projectCode,totalCount); */
$(".k-edit-form-container").css("width", "100%");
$(".contents-row .table-scrollable").css("overflow-x", "hidden");
popupData1.open();
if( isShowPopup ) {
popupData1.open(); // 검색된 사업명 클릭시에는 시추공 선택만.
}
popupData1.center();
$("#mask").hide();

View File

@ -171,41 +171,43 @@ function downloadNew(mId, fName) {
</table></td>
<script>
document.addEventListener('DOMContentLoaded', function() {
var openerCalled = false;
var checkOpenerInterval; // To store the interval ID
function tryCallingOpenerFunctions() {
if (typeof opener.parent.parent.moveToExtent === "function") {
// alert("1111"); // Uncomment for debugging
opener.parent.parent.moveToExtent("${bbox.minx}", "${bbox.miny}", "${bbox.maxx}", "${bbox.maxy}");
opener.parent.parent.addProjectHoles("${project.projectCode}");
openerCalled = true; // Set flag to true
} else if (typeof opener.opener.moveToExtent === "function") {
// alert("2222"); // Uncomment for debugging
opener.opener.moveToExtent("${bbox.minx}", "${bbox.miny}", "${bbox.maxx}", "${bbox.maxy}");
opener.opener.addProjectHoles("${project.projectCode}");
openerCalled = true; // Set flag to true
}
// If either condition was met, stop the timer
if (openerCalled) {
clearInterval(checkOpenerInterval); // Stop the interval
// console.log("Opener functions called and timer stopped."); // Uncomment for debugging
}
}
// Start checking every 100 milliseconds (adjust as needed)
checkOpenerInterval = setInterval(tryCallingOpenerFunctions, 100);
// Optional: Add a timeout to stop checking after a certain period to prevent infinite loops
setTimeout(function() {
if (!openerCalled) {
clearInterval(checkOpenerInterval);
// console.warn("Opener functions could not be called within the timeout period."); // Uncomment for debugging
}
}, 200); // Stop after 5 seconds (5000 milliseconds)
});
document.addEventListener('DOMContentLoaded', function() {
var openerCalled = false;
var checkOpenerInterval; // To store the interval ID
function tryCallingOpenerFunctions() {
if (opener.BASE_MAP.getZoom() == 7) { // 전국표시 지도가 떴을때 (확대레벨이 전국표시일 때) zoom 시킨다
if (typeof opener.parent.parent.moveToExtent === "function") {
// alert("1111"); // Uncomment for debugging
opener.parent.parent.moveToExtent("${bbox.minx}", "${bbox.miny}", "${bbox.maxx}", "${bbox.maxy}");
opener.parent.parent.addProjectHoles("${project.projectCode}");
openerCalled = true; // Set flag to true
} else if (typeof opener.opener.moveToExtent === "function") {
// alert("2222"); // Uncomment for debugging
opener.opener.moveToExtent("${bbox.minx}", "${bbox.miny}", "${bbox.maxx}", "${bbox.maxy}");
opener.opener.addProjectHoles("${project.projectCode}");
openerCalled = true; // Set flag to true
}
// If either condition was met, stop the timer
if (openerCalled) {
clearInterval(checkOpenerInterval); // Stop the interval
// console.log("Opener functions called and timer stopped."); // Uncomment for debugging
}
}
}
// Start checking every 100 milliseconds (adjust as needed)
checkOpenerInterval = setInterval(tryCallingOpenerFunctions, 100);
// Optional: Add a timeout to stop checking after a certain period to prevent infinite loops
setTimeout(function() {
if (!openerCalled) {
clearInterval(checkOpenerInterval);
// console.warn("Opener functions could not be called within the timeout period."); // Uncomment for debugging
}
}, 200); // Stop after 5 seconds (5000 milliseconds)
});
</script>
</tr>
</table> <!--END:내용 -->

View File

@ -348,7 +348,6 @@ window.onload = function() {
resultData = json.result;
if(resultData == "false"){
shakeAndHighlight(projectNameInput, json.message);
//projectNameInput.value = '';
return false;
} else {
return true;
@ -367,91 +366,76 @@ window.onload = function() {
});
var preProjectList = [
"새로운 웹사이트 개발 프로젝트",
"새로운 나라만들기 프로젝트",
"모바일 앱 개편",
"데이터베이스 마이그레이션",
"클라우드 인프라 구축",
"인공지능 기반 서비스 개발",
"머신러닝 모델 학습",
"빅데이터 분석 플랫폼 구축",
"사이버 보안 강화 프로젝트",
"소프트웨어 품질 개선",
"사용자 인터페이스 디자인 개선"
];
projectNameInput.onkeyup = function() {
var projectName = this.value;
projectNameInput.onkeyup = function() {
var projectName = String(this.value).trim();
if (projectName.length > 0) {
$.ajax({
type : "GET",
data : {
projectName : projectName,
isProjectNameChecking : "true"
},
url : "/drilling-project-list.json",
dataType : "json",
success : function( json ) {
suggestionListDiv.innerHTML = ""; // 이전 목록 비우기
suggestionListDiv.style.display = "none";
var list = json.result.list;
var matchingProjects = [];
for (var i = 0; i < list.length; i++) {
matchingProjects.push(list[i]);
}
if (matchingProjects.length > 0) {
for (var i = 0; i < matchingProjects.length; i++) {
var suggestionItem = document.createElement("div");
var organHierarchy = " " + matchingProjects[i].glDistrict !== null ? matchingProjects[i].glDistrict : "";
if( matchingProjects[i].gmDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gmDistrict;
}
if( matchingProjects[i].gsDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gsDistrict;
}
suggestionItem.setAttribute('data-const-name', matchingProjects[i].constName);
suggestionItem.setAttribute('data-cid', matchingProjects[i].cid);
suggestionItem.innerHTML =
'<span>' + matchingProjects[i].constName + '</span><br />\n' +
'<span class="organizational-structure" data->' +
"발주처: " + organHierarchy
'</span>';
suggestionItem.onclick = function() {
projectNameInput.value = this.getAttribute('data-const-name');
document.getElementById("TEMP_CONSTRUCT_SITE_INFO-CID").value = this.getAttribute('data-cid');
suggestionListDiv.style.display = "none";
};
suggestionListDiv.appendChild(suggestionItem);
}
// suggestionListDiv 위치 설정
var rect = projectNameInput.getBoundingClientRect();
suggestionListDiv.style.position = 'absolute';
//suggestionListDiv.style.left = rect.left + 'px';
//suggestionListDiv.style.top = (rect.bottom + window.scrollY) + 'px';
//suggestionListDiv.style.float = 'left';
suggestionListDiv.style.width = rect.width + 'px';
suggestionListDiv.style.display = "block";
}
},
error: function(xhr, option, error){
alert(xhr.status); //오류코드
alert(error); //오류내용
}
});
}
if (projectName.length > 0) {
$.ajax({
type : "GET",
data : {
projectName : projectName,
isProjectNameChecking : "true"
},
url : "/drilling-project-list.json",
dataType : "json",
success : function( json ) {
suggestionListDiv.innerHTML = ""; // 이전 목록 비우기
suggestionListDiv.style.display = "none";
var list = json.result.list;
var matchingProjects = [];
for (var i = 0; i < list.length; i++) {
matchingProjects.push(list[i]);
}
if (matchingProjects.length > 0) {
for (var i = 0; i < matchingProjects.length; i++) {
var suggestionItem = document.createElement("div");
var organHierarchy = " " + matchingProjects[i].glDistrict !== null ? matchingProjects[i].glDistrict : "";
if( matchingProjects[i].gmDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gmDistrict;
}
if( matchingProjects[i].gsDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gsDistrict;
}
suggestionItem.setAttribute('data-const-name', matchingProjects[i].constName);
suggestionItem.setAttribute('data-cid', matchingProjects[i].cid);
suggestionItem.innerHTML =
'<span>' + matchingProjects[i].constName + '</span><br />\n' +
'<span class="organizational-structure" data->' +
"발주처: " + organHierarchy
'</span>';
suggestionItem.onclick = function() {
projectNameInput.value = this.getAttribute('data-const-name');
document.getElementById("TEMP_CONSTRUCT_SITE_INFO-CID").value = this.getAttribute('data-cid');
suggestionListDiv.style.display = "none";
};
suggestionListDiv.appendChild(suggestionItem);
}
// suggestionListDiv 위치 설정
var rect = projectNameInput.getBoundingClientRect();
suggestionListDiv.style.position = 'absolute';
//suggestionListDiv.style.left = rect.left + 'px';
//suggestionListDiv.style.top = (rect.bottom + window.scrollY) + 'px';
//suggestionListDiv.style.float = 'left';
suggestionListDiv.style.width = rect.width + 'px';
suggestionListDiv.style.display = "block";
}
},
error: function(xhr, option, error){
alert(xhr.status); //오류코드
alert(error); //오류내용
}
});
}
};
};

View File

@ -343,7 +343,7 @@ function holeCodeSqureCheck(){
data : params,
success : function(data){
AreaHcode = "";
if(data.count > 300){
if(false && data.count > 300){
closeWaitWin();
$("#mask").hide()
HOLE_SELECT.removeAllFeatures();
@ -356,9 +356,9 @@ function holeCodeSqureCheck(){
CTL_MODIFY.deactivate();
CTL_MODIFY.activate();
CTL_INFO.deactivate();
alert("시추공은 300개까지 선택할 수 있습니다.");
console.log("시추공은 300개까지 선택할 수 있습니다.3");
CTL_AREA.activate();
}else if(data.data.length > 300){
}else if(false && data.data.length > 300){
closeWaitWin();
$("#mask").hide()
HOLE_SELECT.removeAllFeatures();
@ -371,9 +371,9 @@ function holeCodeSqureCheck(){
CTL_MODIFY.deactivate();
CTL_MODIFY.activate();
CTL_INFO.deactivate();
alert("시추공은 300개까지 선택할 수 있습니다.");
alert("시추공은 300개까지 선택할 수 있습니다.4");
CTL_AREA.activate();
}else if(data.data){
} else if(data.data) {
var format = new OpenLayers.Format.WKT();
var features = [];
for(var i=0, len=data.data.length; i < len; i++) {
@ -392,6 +392,19 @@ function holeCodeSqureCheck(){
if(features.length > 0) {
HOLE_SELECT.addFeatures(features);
}
} else {
var currentZoomLevel = BASE_MAP.getZoom();
if( currentZoomLevel < 8) {
alert("지도 선택 범위가 전국이 보일정도로 너무 넓습니다. 지도를 많이 확대해주세요");
} else if( currentZoomLevel < 11) {
alert("지도 선택 범위가 넓습니다. 지도를 하나의 읍/면/동이 꽉 찰 때까지 확대해주세요.");
} else if( currentZoomLevel < 12) {
alert("지도 선택 범위가 넓습니다. 지도를 확대를 더 확대해주세요.");
} else if( currentZoomLevel < 13) {
alert("지도 선택 범위가 너무 넓습니다.");
} else {
alert("선택영역 좁혀주세요.");
}
}
},
@ -401,6 +414,23 @@ function holeCodeSqureCheck(){
complete: function(){
closeWaitWin()
$("#mask").hide()
clearTextLabels();
for (var i=0; i < HOLE_SELECT.features.length; i++){
addHoleNames(HOLE_SELECT.features[i]);
}
//선택된 영역을 제거한다.
CTL_AREA.deactivate();
if (HOLE_AREA.features.length > 0 && HOLE_AREA.features[0]) {
HOLE_AREA.features[0].style = null;
}
var transparentStyle = new OpenLayers.Style({
strokeOpacity: 0.0,
fillOpacity: 0.0
});
HOLE_AREA.styleMap = new OpenLayers.StyleMap(transparentStyle);
HOLE_AREA.redraw();
CTL_AREA.activate();
}
});

View File

@ -80,7 +80,7 @@ function showSichuInfo() {
//정보보기 누를 때, 사업별 시추공 상세정보가 나타나도록 한다.
function showSichuInfoDetail() {
function showSichuInfoDetail(isShowPopup) {
var sichuInfo = getSelectAreaInfo2();
if (sichuInfo == null || sichuInfo == undefined) {
@ -99,7 +99,6 @@ function showSichuInfoDetail() {
}
const arrSichuInfoComma = String(sichuInfo).split(',');
const regex = /([a-zA-Z]+\d+).*/;
let foundProjectCode = null;
@ -117,7 +116,7 @@ function showSichuInfoDetail() {
if( isMultipleProject ) {
alert('가장 마지막에 선택된 하나의 프로젝트만 조회됩니다.');
}
popupDataOpen(foundProjectCode);
popupDataOpen(foundProjectCode, null, isShowPopup);
}
return;
}

View File

@ -186364,6 +186364,128 @@ var 부산광역시 = [
[400175.744178534,312101.356864329]
];
//커스텀 DragPopup 컨트롤 정의
OpenLayers.Control.DragPopup = OpenLayers.Class(OpenLayers.Control, {
popup: null,
isDragging: false,
startPixel: null,
popupStartPos: null,
// document에 등록/해제할 이벤트 핸들러를 저장하기 위한 속성
boundMouseMove: null,
boundMouseUp: null,
initialize: function(popup, options) {
OpenLayers.Control.prototype.initialize.apply(this, [options]);
this.popup = popup;
},
// 컨트롤을 완전히 제거할 때 호출되어 안전하게 정리합니다.
destroy: function() {
this.deactivate(); // 이벤트 리스너 등을 먼저 비활성화합니다.
OpenLayers.Control.prototype.destroy.apply(this, arguments); // 부모 클래스의 destroy를 호출합니다.
this.popup = null; // 팝업 참조를 제거합니다.
},
// 컨트롤이 활성화될 때 팝업 div에 mousedown 이벤트를 연결합니다.
activate: function() {
if (OpenLayers.Control.prototype.activate.apply(this, arguments) && this.popup && this.popup.div) {
this.events = new OpenLayers.Events(this, this.popup.div, null, true);
this.events.on({
"mousedown": this.onMouseDown,
scope: this
});
return true;
}
return false;
},
// 컨트롤이 비활성화될 때 이벤트를 제거합니다.
deactivate: function() {
if (this.isDragging) {
this.onMouseUp(null);
}
if (this.events) {
this.events.destroy();
this.events = null;
}
if( 0 < OpenLayers.Control.prototype.deactivate.length ) {
return OpenLayers.Control.prototype.deactivate.apply(this, arguments);
}
return false;
},
onMouseDown: function(evt) {
var target = evt.target || evt.srcElement;
// 닫기 버튼 또는 팝업 내부의 상호작용 가능한 요소(input, button 등)를 클릭한 경우는 드래그를 시작하지 않습니다.
if (target.className.indexOf('olPopupCloseBox') > -1 || ['INPUT', 'BUTTON', 'A', 'TEXTAREA', 'SELECT'].indexOf(target.tagName) !== -1) {
return;
}
this.isDragging = true;
// 표준 clientX/Y를 사용하여 시작 좌표를 기록합니다.
this.startPixel = { x: evt.clientX, y: evt.clientY };
this.popupStartPos = {
x: parseInt(this.popup.div.style.left) || 0,
y: parseInt(this.popup.div.style.top) || 0
};
// document에 이벤트 리스너를 등록합니다.
// 변경점: useCapture 인자를 true로 설정하여 '캡처링' 단계에서 이벤트를 감지합니다.
// 이렇게 하면 팝업 내부의 다른 요소(예: <a> 태그)가 mouseup 이벤트의 전파를 중단(stopPropagation)시켜도
// document 레벨에서 이벤트를 먼저 감지하여 드래그를 정상적으로 종료할 수 있습니다.
this.boundMouseMove = this.onMouseMove.bind(this);
this.boundMouseUp = this.onMouseUp.bind(this);
OpenLayers.Event.observe(document, "mousemove", this.boundMouseMove, true);
OpenLayers.Event.observe(document, "mouseup", this.boundMouseUp, true);
this.map.div.style.cursor = "move";
OpenLayers.Event.stop(evt); // 이벤트 전파 중단으로 텍스트 선택 등 부수 효과 방지
},
// 마우스를 움직일 때
onMouseMove: function(evt) {
if (this.isDragging) {
// 표준 clientX/Y를 사용하여 현재 좌표를 가져옵니다.
var currentPixel = { x: evt.clientX, y: evt.clientY };
var deltaX = currentPixel.x - this.startPixel.x;
var deltaY = currentPixel.y - this.startPixel.y;
this.popup.div.style.left = (this.popupStartPos.x + deltaX) + "px";
this.popup.div.style.top = (this.popupStartPos.y + deltaY) + "px";
OpenLayers.Event.stop(evt);
}
},
// 마우스 버튼을 뗐을 때
onMouseUp: function(evt) {
if (this.isDragging) {
this.isDragging = false;
// 변경점: document에 '캡처링' 단계로 등록했던 이벤트 리스너를 제거합니다.
OpenLayers.Event.stopObserving(document, "mousemove", this.boundMouseMove, true);
OpenLayers.Event.stopObserving(document, "mouseup", this.boundMouseUp, true);
this.boundMouseMove = null;
this.boundMouseUp = null;
this.map.div.style.cursor = "";
if (evt) {
OpenLayers.Event.stop(evt);
}
}
},
CLASS_NAME: "OpenLayers.Control.DragPopup"
});
//---------여기 시작 코드
@ -186569,6 +186691,7 @@ var CTL_INFO;
var CTL_TOOLTIP;
var POPUP_TOOLTIP;
var TEXT_LABEL_LAYER;
var POLYGON_TYPE;
@ -186912,6 +187035,29 @@ function initApp(param){
}*/
BASE_MAP.addLayer(HOLE_LAYER);
var textStyle = new OpenLayers.Style({
// feature의 'attributes' 객체에 있는 속성들을 참조하여 스타일을 동적으로 적용합니다.
label: "${label}",
fontColor: "${fontColor}",
fontSize: "${fontSize}",
fontWeight: "${fontWeight}",
fontFamily: "${fontFamily}",
labelAlign: "${labelAlign}",
labelYOffset: "${labelYOffset}",
labelOutlineColor: "${labelOutlineColor}",
labelOutlineWidth: "${labelOutlineWidth}",
// 점 아이콘은 표시하지 않습니다.
pointRadius: 0,
fillOpacity: 0
});
TEXT_LABEL_LAYER = new OpenLayers.Layer.Vector("Text Labels", {
styleMap: new OpenLayers.StyleMap({'default': textStyle})
});
BASE_MAP.addLayer(TEXT_LABEL_LAYER);
// ---------------------
// 컨트롤 생성
// ---------------------
@ -187297,6 +187443,62 @@ function initApp(param){
});
BASE_MAP.addControl(CTL_INFO);
CTL_INFO.deactivate();
// 도움말
CTL_HELP = new OpenLayers.Control();
OpenLayers.Util.extend(CTL_HELP, {
id : "CTL_HELP",
infoDiv: null,
getText: function(){
return this.infoDiv.innerHTML;
},
setText: function(txt){
this.infoDiv.innerHTML = txt;
},
draw: function () {
OpenLayers.Control.prototype.draw.apply(this, arguments);
this.infoDiv = document.createElement('div');
this.infoDiv.style.border = 'thin solid #333333';
this.infoDiv.style.position = 'absolute';
this.infoDiv.style.overflow = 'hidden';
this.infoDiv.style.left = 170 + "px";
this.infoDiv.style.top = String(10) + "px";
this.infoDiv.style.width = 680 + "px";
this.infoDiv.style.height = 35*1 + "px";
this.infoDiv.style.padding = 5 + "px";
this.infoDiv.style.backgroundColor = "rgba(0,0,0,0.6)";
this.infoDiv.style.fontWeight = "100";
this.infoDiv.style.color = "#ffffff";
this.infoDiv.style.textAlign = "center";
this.infoDiv.style.display = "block";
this.div.appendChild(this.infoDiv);
return this.div;
},
activate : function() {
this.infoDiv.style.display = "block";
return OpenLayers.Control.prototype.activate.apply(this,arguments);
},
deactivate: function() {
this.infoDiv.style.display = "none";
return OpenLayers.Control.prototype.deactivate.apply(this,arguments);
}
});
BASE_MAP.addControl(CTL_HELP);
CTL_HELP.setText("Shift키를 누른 상태로 영역 드래그 시 확대됨 | 마우스 왼쪽 더블클릭 확대 / 오른쪽 더블클릭 축소");
CTL_HELP.activate();
$("#CTL_HELP").css("bottom","65px");
$("#CTL_HELP").css("left","20px");
// ---------------------
@ -187654,6 +187856,22 @@ function initApp(param){
});
// 지도의 줌 액션이 끝날 때마다 이 함수가 실행됩니다.
BASE_MAP.events.register("zoomend", BASE_MAP, function() {
// 1. 현재 지도의 줌 레벨을 가져옵니다.
var currentZoom = BASE_MAP.getZoom();
// 2. 줌 레벨이 특정값 이상인지 확인합니다.
if (currentZoom >= 14) {
// 특정값 이상이면 TEXT_LABEL_LAYER를 보이게 합니다.
TEXT_LABEL_LAYER.setVisibility(true);
} else {
// 특정값 미만이면 TEXT_LABEL_LAYER를 숨깁니다.
TEXT_LABEL_LAYER.setVisibility(false);
}
});
/*CTL_AREA_CIRCLE2.drawFeature2(evt);*/
/*console.log(BASE_MAP.getScale);*/
@ -188680,12 +188898,59 @@ function addTooltip(feature) {
}
function removeTooltip() {
if(POPUP_TOOLTIP) {
BASE_MAP.removePopup(POPUP_TOOLTIP);
// 드래그 컨트롤이 존재하면 먼저 destroy 합니다.
if (dragControl) {
dragControl.destroy();
        dragControl = null;
    }
// 팝업이 존재하면 destroy 합니다.
if(POPUP_TOOLTIP) {
POPUP_TOOLTIP.destroy();
POPUP_TOOLTIP = null;
}
}
// 사용자에 의해 입력된 시추공 명 텍스트 라벨을 모두 지우는 함수 ---
function clearTextLabels() {
if (TEXT_LABEL_LAYER) {
TEXT_LABEL_LAYER.removeAllFeatures();
}
}
function addHoleNames(feature) {
$.get("/map/hole-name-by-user.do", feature.attributes).done(function(response) {
if (response && response.data && response.data.length > 0) {
var lon = feature.geometry.x;
var lat = feature.geometry.y;
var point = new OpenLayers.Geometry.Point(lon, lat);
// 이 속성들은 레이어의 StyleMap에서 참조하여 사용됩니다.
var featureAttributes = {
label: response.data[0].holeName, // 표시할 텍스트
fontColor: "#b1cf42", // 글자색
fontSize: "20px", // 글자 크기
fontWeight: "bold", // 글자 굵기
labelAlign: "cb", // 라벨 정렬 (cm = center-middle)
labelOutlineColor: "#52770a", // 테두리 색상
labelOutlineWidth: 3, // 테두리 두께
labelYOffset: 25, // 포인트로부터 10px 위로 더 밀어냅니다.
// pointSymbolizer를 'none'으로 설정하여 점 아이콘은 숨깁니다.
pointRadius: 0,
fillOpacity: 0
};
// ----------------------------------------------------------------
// --- 변경점: 피처 생성 시 geometry와 attributes를 전달합니다. ---
var textFeature = new OpenLayers.Feature.Vector(point, featureAttributes);
// 미리 생성된 단일 텍스트 레이어에 피처를 추가합니다.
TEXT_LABEL_LAYER.addFeatures([textFeature]);
}
});
}
//----------------------------
//함수 : 영역 선택 기능 관리
//----------------------------
@ -188733,6 +188998,7 @@ function getSelectAreaInfo2(){
if (HOLE_AREA.features.length == 0 && (CTL_AREA_CIRCLE2.handler.feature == undefined || CTL_AREA_CIRCLE2.handler.feature == null )){
return;
}
var bounds = null;
if(($('input[name=areaRadio]:checked').val() == '1' && HOLE_AREA.features[0] !=undefined)||$('input[name=areaRadio]:checked').val() == '2' ){
CTL_AREA_CIRCLE2.handler.feature = HOLE_AREA.features[0];
@ -188740,6 +189006,9 @@ function getSelectAreaInfo2(){
}else if($('input[name=areaRadio]:checked').val() == '1' && HOLE_AREA.features[0] == undefined){
bounds = CTL_AREA_CIRCLE2.handler.feature.geometry.getBounds().transform("EPSG:3857", "EPSG:5186");
}
if( bounds == null ) {
initControl();
}
var strArray = bounds.toString().split( "," );
var circleX = (parseFloat(strArray[0],10)+parseFloat(strArray[2],10))/2;
var circleY = (parseFloat(strArray[1],10)+parseFloat(strArray[3],10))/2;
@ -188801,6 +189070,7 @@ function onSelectHole(){
function offSelectHole(){
HOLE_SELECT.removeAllFeatures();
HOLE_SELECT2.removeAllFeatures();
clearTextLabels();
initControl();
}
@ -188820,7 +189090,6 @@ function getSelectHoleInfo(){
function addHole(evt){
if (evt.text.length > 50) {
var values = JSON.parse(evt.text);
@ -188837,6 +189106,8 @@ function addHole(evt){
);
HOLE_SELECT.addFeatures([hole]);
hole.attributes.holeCode = hole.attributes.CODE;
addHoleNames(hole);
}
}
@ -188905,6 +189176,9 @@ function addProject(evt) {
function addProjectHoles(projectCode) {
HOLE_SELECT.removeAllFeatures();
HOLE_SELECT2.removeAllFeatures();
removeTooltip(); // 기존 메인 팝업 제거
clearTextLabels();
console.log("addProjectHoles projectCode ::: " + projectCode);
$.get("/map/searchHoleByProjectCode.do", { projectCode : projectCode }).done(function(response) {
console.log("get projectCode ::: " + projectCode);
@ -188916,7 +189190,11 @@ function addProjectHoles(projectCode) {
var feature = format.read(row.wkt);
feature.attributes.CODE = row.code;
feature.geometry.transform('EPSG:5186', 'EPSG:3857');
features.push(feature);
features.push(feature);
feature.attributes.holeCode = feature.attributes.CODE;
addHoleNames(feature);
}
if(features.length > 0) {
@ -189783,7 +190061,8 @@ function initControl(){
CTL_MODIFY.deactivate();
CTL_MODIFY.activate();
CTL_INFO.deactivate();
clearTextLabels();
for(var i = 0; i < parent.BASE_MAP.layers.length; i ++){
if(parent.BASE_MAP.layers[i].name == 'Jihaanjeon'){
//parent.BASE_MAP.layers[i].setVisibility(false);
@ -190637,6 +190916,7 @@ function selectHjdCde(feature){
}
}
var dragControl; // 드래그 컨트롤을 담을 변수 추가
function selectOneSich(hcode){
//HOLE_SELECT.features
@ -190657,208 +190937,280 @@ function selectOneSich(hcode){
var result =data;
var tagStr = "";
tagStr +=  '<div style="overflow:auto;height:280px;">';
tagStr +=  '<div style="background-color: #004e99;color: white;font-size: 18px;font-weight: bold;margin-bottom: 10px;"> 시추공 정보 </div>'
tagStr +=  '<table class="table table-bordered" width="100%" border="0" cellpadding="4" cellspacing="1">';
tagStr +=  '<colgroup>';
tagStr +=  '<col style="width:100px;">';
tagStr +=  '<col style="width:180px;">';
tagStr +=  '<col style="width:100px;">';
tagStr +=  '<col style="width:180px;">';
tagStr +=  '</colgroup>';
tagStr +=  '<tbody>';
tagStr +=  '<tr>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>프로젝트정보</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF" colspan="3">'+data.project.projectName+'</td>';
tagStr +=  '</tr>';
tagStr +=  '<tr>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>시추공명</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF">'+data.mapHeader.holeName+'</td>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>시추공코드</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF">'+data.mapHeader.holeCode+'</td>';
tagStr +=  '</tr>';
tagStr += '<div style="overflow:auto;height:280px;">';
tagStr += '<div style="background-color: #004e99;color: white;font-size: 18px;font-weight: bold;margin-bottom: 10px;"> 시추공 정보 </div>'
tagStr += '<table class="table table-bordered" width="100%" border="0" cellpadding="4" cellspacing="1">';
tagStr += '<colgroup>';
tagStr += '<col style="width:100px;">';
tagStr += '<col style="width:180px;">';
tagStr += '<col style="width:100px;">';
tagStr += '<col style="width:180px;">';
tagStr += '</colgroup>';
tagStr += '<tbody>';
tagStr +=  '<tr>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>시추공종류</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF">Boring</td>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>굴진심도</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF">'+data.mapHeader.holeTotalDepth+'</td>';
tagStr +=  '</tr>';
tagStr += '<tr>';
tagStr += '<td bgcolor="F7F7F7"><strong>프로젝트정보</strong></td>';
tagStr += '<td bgcolor="#FFFFFF" colspan="3">'+data.project.projectName+'</td>';
tagStr += '</tr>';
tagStr +=  '<tr>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>표고</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF">'+data.mapHeader.holeEl+'</td>';
tagStr +=  '<td bgcolor="F7F7F7"><strong>지하수위</strong></td>';
tagStr +=  '<td bgcolor="#FFFFFF">'+data.mapHeader.holeWl+'</td>';
tagStr +=  '</tr>';
tagStr += '<tr>';
tagStr += '<td bgcolor="F7F7F7"><strong>시추공명</strong></td>';
tagStr += '<td bgcolor="#FFFFFF">'+data.mapHeader.holeName+'</td>';
tagStr += '<td bgcolor="F7F7F7"><strong>시추공코드</strong></td>';
tagStr += '<td bgcolor="#FFFFFF">'+data.mapHeader.holeCode+'</td>';
tagStr += '</tr>';
tagStr += '<tr>';
tagStr += '<td bgcolor="F7F7F7"><strong>시추공종류</strong></td>';
tagStr += '<td bgcolor="#FFFFFF">Boring</td>';
tagStr += '<td bgcolor="F7F7F7"><strong>굴진심도</strong></td>';
tagStr += '<td bgcolor="#FFFFFF">'+data.mapHeader.holeTotalDepth+'</td>';
tagStr += '</tr>';
tagStr += '<tr>';
tagStr += '<td bgcolor="F7F7F7"><strong>표고</strong></td>';
tagStr += '<td bgcolor="#FFFFFF">'+data.mapHeader.holeEl+'</td>';
tagStr += '<td bgcolor="F7F7F7"><strong>지하수위</strong></td>';
tagStr += '<td bgcolor="#FFFFFF">'+data.mapHeader.holeWl+'</td>';
tagStr += '</tr>';
/* tagStr += '<tr>';
tagStr += '<td class="td-head">시추공종류</td>';
tagStr += '<td class="t-center">Boring</td>';
tagStr += '</tr>';
tagStr += '<tr>';
tagStr += '<td class="td-head">굴진심도</td>';
tagStr += '<td class="t-center"> -'+ data.mapHeader.holeEl +'</td>';
tagStr += '</tr>';*/
tagStr += '</tbody>';
tagStr += '</table>';
tagStr += '<div style="background-color: #004e99;color: white;font-size: 18px;font-weight: bold;margin-top: 10px;margin-bottom: 10px;"> 등록된 시험 정보 </div>'
tagStr +=  '</tbody>';
tagStr +=  '</table>';
tagStr +=  '<div style="background-color: #004e99;color: white;font-size: 18px;font-weight: bold;margin-top: 10px;margin-bottom: 10px;"> 등록된 시험 정보 </div>'
tagStr += '<table class="table table-bordered" width="100%" border="0" cellpadding="3" cellspacing="1">';
tagStr += '<colgroup>';
tagStr += '<col style="width:200px;">';
tagStr += '<col style="width:200px;">';
tagStr += '<col style="width:160px;">';
tagStr += '</colgroup>';
tagStr += '<tbody>';
tagStr +=  '<colgroup>';
tagStr +=  '<col style="width:200px;">';
tagStr +=  '<col style="width:200px;">';
tagStr +=  '<col style="width:160px;">';
tagStr +=  '</colgroup>';
tagStr +=  '<tbody>';
//기본
var rowspan = 0;
rowspan = data.projectYn.waterpressure == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.permeability == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.conePenetration == 'Y' ? rowspan +1 : rowspan;
var textCount = 0;
if( data.projectYn.waterpressure == 'Y'){
tagStr += tableRowOneSich("기본현장시험","현장수압시험","TBL_FIELD_WATERPRESSURE2",data.project.projectCode,data.hCode,rowspan,textCount)
// 3. 시료 정보
rowspan = 1;
textCount = 0;
tagStr += tableRowOneSich("시료 정보","시료 정보","TBL_SAMPLE_INFO",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sampleInfo) ? 'Y' : 'N')
textCount ++;
// 4. 실내토사시험
rowspan = 6; //시험이 총 6개
textCount = 0;
tagStr += tableRowOneSich("실내토사시험","토사 입도분석시험","TBL_CLASSIFICATION2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandClassification) ? 'Y' : 'N')
textCount ++;
tagStr += tableRowOneSich("실내토사시험","토사 CBR 시험","TBL_CBR2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandCbr) ? 'Y' : 'N')
textCount ++;
tagStr += tableRowOneSich("실내토사시험","토사 압밀시험 ","TBL_CONSOLIDATION2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandConsolidation) ? 'Y' : 'N')
textCount ++;
tagStr += tableRowOneSich("실내토사시험","토사 일축압축시험","TBL_UNCONFINED2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandUnconfinedUsual) ? 'Y' : 'N')
textCount ++;
tagStr += tableRowOneSich("실내토사시험","토사 삼축압축시험 UU","TBL_TRIUU2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandTriaxialUu) ? 'Y' : 'N')
textCount ++;
tagStr += tableRowOneSich("실내토사시험","토사 삼축압축시험 CU","TBL_TRICU2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandTriaxialCu) ? 'Y' : 'N')
textCount ++;
// 5. 실내암석시험
rowspan = 4;
textCount = 0;
tagStr += tableRowOneSich("실내암석시험","암석 일축압축시험","TBL_ROCK_UNIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.rockUniaxial) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("실내암석시험","암석 삼축압축시험 ","TBL_ROCK_TRIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.rockTriaxial) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("실내암석시험","암석 점하중강도시험","TBL_ROCK_POINTLOAD2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.rockPointload) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("실내암석시험","암석 절리면전단시험","TBL_ROCK_JOINTSHEAR2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.rockJointshear) ? 'Y' : 'N');
textCount ++;
// 6. 현장시험
rowspan = 4;
textCount = 0;
tagStr += tableRowOneSich("현장시험","공내재하시험","TBL_FIELD_PRESSUREMETER",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.fieldPressuremeter) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("현장시험","현장투수시험","TBL_FIELD_PERMEABILITY2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.fieldPermeablity) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("현장시험","수압시험","TBL_FIELD_WATERPRESSURE2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.fieldWaterpressure) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("현장시험","콘관입시험","TBL_FIELD_CONE_PENETRATION2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.fieldConePenetration) ? 'Y' : 'N');
textCount ++;
// 7. 동적시험
rowspan = 4;
textCount = 0;
tagStr += tableRowOneSich("동적시험","토사 공진주시험","TBL_RESONANT2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandResonant) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("동적시험","암석 공진주시험","TBL_ROCK_RESONANT_USUAL2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.rockResonant) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("동적시험","토사 반복삼축압축시험","TBL_REPEATED_TRIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.sandRepeatedTriaxial) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("동적시험","암석 반복삼축압축시험","TBL_ROCK_REPEATED_TRIAXIAL_USUAL2",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.rockRepeatedTriaxial) ? 'Y' : 'N');
textCount ++;
// 8. 물리탐사
rowspan = 3;
textCount = 0;
tagStr += tableRowOneSich("물리탐사","PS 검층 정보","TBL_BOREHOLE_WAVE",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.boreholeWave) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("물리탐사","하향식 탄성파","TBL_DOWNHOLE",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.downhole) ? 'Y' : 'N');
textCount ++;
tagStr += tableRowOneSich("물리탐사","밀도검층정보","TBL_DENSITY",data.project.projectCode,data.hCode,rowspan,textCount, 0 < Number(data.data.density) ? 'Y' : 'N');
textCount ++;
/*
//기본
rowspan = 0;
rowspan = true || data.projectYn.waterpressure == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.permeability == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.pressuremeter == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.conePenetration == 'Y' ? rowspan +1 : rowspan;
textCount = 0;
if( true || data.projectYn.waterpressure == 'Y'){
tagStr += tableRowOneSich("기본현장시험","현장수압시험","TBL_FIELD_WATERPRESSURE2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.waterpressure)
textCount ++;
}
if( data.projectYn.permeability == 'Y'){
tagStr += tableRowOneSich("기본현장시험","현장투수시험","TBL_FIELD_PERMEABILITY2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.permeability == 'Y'){
tagStr += tableRowOneSich("기본현장시험","현장투수시험","TBL_FIELD_PERMEABILITY2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.permeability)
textCount ++;
}
if( data.projectYn.conePenetration == 'Y'){
tagStr += tableRowOneSich("기본현장시험","콘관입시험","TBL_FIELD_CONE_PENETRATION2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.pressuremeter == 'Y'){
tagStr += tableRowOneSich("기본현장시험","공내재하시험","TBL_FIELD_PRESSUREMETER",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.pressuremeter)
textCount ++;
}
if( true || data.projectYn.conePenetration == 'Y'){
tagStr += tableRowOneSich("기본현장시험","콘관입시험","TBL_FIELD_CONE_PENETRATION2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.conePenetration)
textCount ++;
}
//물성
rowspan = 0;
textCount = 0;
rowspan = data.projectYn.sampleInfo == 'Y' ? rowspan +1 : rowspan;
if( data.projectYn.conePenetration == 'Y'){
tagStr += tableRowOneSich("기본물성시험","기본물성시험","TBL_SAMPLE_INFO",data.project.projectCode,data.hCode,rowspan,textCount)
rowspan = true || data.projectYn.sampleInfo == 'Y' ? rowspan +1 : rowspan;
if( true || data.projectYn.sampleInfo == 'Y'){
tagStr += tableRowOneSich("기본물성시험","기본물성시험","TBL_SAMPLE_INFO",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.sampleInfo)
textCount ++;
}
//토사
rowspan = 0;
textCount = 0;
rowspan = data.projectYn.classification == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.cbrCompac == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.consolidation == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.unconfinedUsual == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.triaxialUsualCu == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.triaxialUsualUu == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.rockResonant == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.rockRepeated == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.classification == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.cbrCompac == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.consolidation == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.unconfinedUsual == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.triaxialUsualCu == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.triaxialUsualUu == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.rockResonant == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.rockRepeated == 'Y' ? rowspan +1 : rowspan;
if( data.projectYn.classification == 'Y'){
tagStr += tableRowOneSich("토사시험","입도분석","TBL_CLASSIFICATION2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.classification == 'Y'){
tagStr += tableRowOneSich("토사시험","입도분석","TBL_CLASSIFICATION2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.classification)
textCount ++;
}
if( data.projectYn.cbrCompac == 'Y'){
tagStr += tableRowOneSich("토사시험","CBR","TBL_CBR2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.cbrCompac == 'Y'){
tagStr += tableRowOneSich("토사시험","CBR","TBL_CBR2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.cbrCompac)
textCount ++;
}
if( data.projectYn.consolidation == 'Y'){
tagStr += tableRowOneSich("토사시험","압밀시험","TBL_CONSOLIDATION2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.consolidation == 'Y'){
tagStr += tableRowOneSich("토사시험","압밀시험","TBL_CONSOLIDATION2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.consolidation)
textCount ++;
}
if( data.projectYn.unconfinedUsual == 'Y'){
tagStr += tableRowOneSich("토사시험","일축압축","TBL_UNCONFINED2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.unconfinedUsual == 'Y'){
tagStr += tableRowOneSich("토사시험","일축압축","TBL_UNCONFINED2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.unconfinedUsual)
textCount ++;
}
if( data.projectYn.triaxialUsualCu == 'Y'){
tagStr += tableRowOneSich("토사시험","삼축압축_CU","TBL_TRICU2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.triaxialUsualCu == 'Y'){
tagStr += tableRowOneSich("토사시험","삼축압축_CU","TBL_TRICU2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.triaxialUsualCu)
textCount ++;
}
if( data.projectYn.triaxialUsualUu == 'Y'){
tagStr += tableRowOneSich("토사시험","삼축압축_UU","TBL_TRIUU2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.triaxialUsualUu == 'Y'){
tagStr += tableRowOneSich("토사시험","삼축압축_UU","TBL_TRIUU2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.triaxialUsualUu)
textCount ++;
}
if( data.projectYn.rockResonant == 'Y'){
tagStr += tableRowOneSich("토사시험","공진주","TBL_RESONANT2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.rockResonant == 'Y'){
tagStr += tableRowOneSich("토사시험","공진주","TBL_RESONANT2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.rockResonant)
textCount ++;
}
if( data.projectYn.rockRepeated == 'Y'){
tagStr += tableRowOneSich("토사시험","반복삼축","TBL_REPEATED_TRIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.rockRepeated == 'Y'){
tagStr += tableRowOneSich("토사시험","반복삼축","TBL_REPEATED_TRIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.rockRepeated)
textCount ++;
}
//암석
rowspan = 0;
textCount = 0;
rowspan = data.projectYn.rockUniaxial == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.rockTriaxial == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.rockPointload == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.rockJointshear == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.resonant == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.repeated == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.rockUniaxial == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.rockTriaxial == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.rockPointload == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.rockJointshear == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.resonant == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.repeated == 'Y' ? rowspan +1 : rowspan;
if( data.projectYn.rockUniaxial == 'Y'){
tagStr += tableRowOneSich("암석시험","일축압축","TBL_ROCK_UNIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.rockUniaxial == 'Y'){
tagStr += tableRowOneSich("암석시험","일축압축","TBL_ROCK_UNIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.rockUniaxial)
textCount ++;
}
if( data.projectYn.rockTriaxial == 'Y'){
tagStr += tableRowOneSich("암석시험","삼축압축","TBL_ROCK_TRIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.rockTriaxial == 'Y'){
tagStr += tableRowOneSich("암석시험","삼축압축","TBL_ROCK_TRIAXIAL2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.rockTriaxial)
textCount ++;
}
if( data.projectYn.rockPointload == 'Y'){
tagStr += tableRowOneSich("암석시험","점하중","TBL_ROCK_POINTLOAD2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.rockPointload == 'Y'){
tagStr += tableRowOneSich("암석시험","점하중","TBL_ROCK_POINTLOAD2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.rockPointload)
textCount ++;
}
if( data.projectYn.rockJointshear == 'Y'){
tagStr += tableRowOneSich("암석시험","절리면전단","TBL_ROCK_JOINTSHEAR2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.rockJointshear == 'Y'){
tagStr += tableRowOneSich("암석시험","절리면전단","TBL_ROCK_JOINTSHEAR2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.rockJointshear)
textCount ++;
}
if( data.projectYn.resonant == 'Y'){
tagStr += tableRowOneSich("암석시험","공진주","TBL_ROCK_RESONANT_USUAL2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.resonant == 'Y'){
tagStr += tableRowOneSich("암석시험","공진주","TBL_ROCK_RESONANT_USUAL2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.resonant)
textCount ++;
}
if( data.projectYn.repeated == 'Y'){
tagStr += tableRowOneSich("암석시험","반복삼축","TBL_ROCK_REPEATED_TRIAXIAL_USUAL2",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.repeated == 'Y'){
tagStr += tableRowOneSich("암석시험","반복삼축","TBL_ROCK_REPEATED_TRIAXIAL_USUAL2",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.repeated)
textCount ++;
}
//물리
rowspan = 0;
textCount = 0;
rowspan = data.projectYn.boreholeWave == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.downhole == 'Y' ? rowspan +1 : rowspan;
rowspan = data.projectYn.density == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.boreholeWave == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.downhole == 'Y' ? rowspan +1 : rowspan;
rowspan = true || data.projectYn.density == 'Y' ? rowspan +1 : rowspan;
if( data.projectYn.boreholeWave == 'Y'){
tagStr += tableRowOneSich("물리검층","PS검층","TBL_BOREHOLE_WAVE",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.boreholeWave == 'Y'){
tagStr += tableRowOneSich("물리검층","PS검층","TBL_BOREHOLE_WAVE",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.boreholeWave)
textCount ++;
}
if( data.projectYn.downhole == 'Y'){
tagStr += tableRowOneSich("물리검층","하향식탄성파","TBL_DOWNHOLE",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.downhole == 'Y'){
tagStr += tableRowOneSich("물리검층","하향식탄성파","TBL_DOWNHOLE",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.downhole)
textCount ++;
}
if( data.projectYn.density == 'Y'){
tagStr += tableRowOneSich("물리검층","밀도검층","TBL_DENSITY",data.project.projectCode,data.hCode,rowspan,textCount)
if( true || data.projectYn.density == 'Y'){
tagStr += tableRowOneSich("물리검층","밀도검층","TBL_DENSITY",data.project.projectCode,data.hCode,rowspan,textCount, data.projectYn.density)
textCount ++;
}
*/
tagStr += '</tbody>';
tagStr += '</table>';
tagStr += '</div>';
tagStr +=  '</div>';
POPUP_TOOLTIP = new OpenLayers.Popup.FramedCloud("JibanTooltip", feature.geometry.getBounds().getCenterLonLat(),
null, tagStr, null, true, removeTooltip);
            null, tagStr, null, true, removeTooltip);
// 2. 위에서 정의한 DragPopup 컨트롤을 생성합니다.
    dragControl = new OpenLayers.Control.DragPopup(POPUP_TOOLTIP);
    
    BASE_MAP.addControl(dragControl);
    dragControl.activate();
   
BASE_MAP.addPopup(POPUP_TOOLTIP);
$("#JibanTooltip_close").css("top",$("#JibanTooltip_FrameDecorationDiv_0").css("top"));
$("#JibanTooltip_close").css("right","28px");
@ -190879,13 +191231,16 @@ function selectOneSich(hcode){
}
function tableRowOneSich(rowText,tdText,exam,projectCode,hCode,rowspan,textCount){
function tableRowOneSich(rowText,tdText,exam,projectCode,hCode,rowspan,textCount, projectYn) {
var text = "";
text +='<tr align="center" bgcolor="#FFFFFF">';
text += textCount == 0 ? '<td align="center" bgcolor="F7F7F7" rowspan='+rowspan+'><strong>'+rowText+'</strong></td>' : '';
text += '<td align="center" bgcolor="F7F7F7">'+tdText+'</td>';
text += '<td align="center" bgcolor="#FFFFFF"><a href=# onclick="previewClipReport(\''+exam+'\',\''+projectCode+'\',\''+hCode+'\')">미리보기</a></td>';
text += projectYn !== 'Y' ?
'<td align="center" bgcolor="#FFFFFF" style="color: #ababab;">없음</td>'
:
'<td align="center" bgcolor="#FFFFFF"><a href=# onclick="previewClipReport(\''+exam+'\',\''+projectCode+'\',\''+hCode+'\')">보기' + '</a></td>';
text +="</tr>";
return text;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB