diff --git a/list.txt b/list.txt
index 5dec3e9..fea6fc9 100644
--- a/list.txt
+++ b/list.txt
@@ -1,10 +1,2 @@
-src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createSurvey.jsp
-src\main\webapp\WEB-INF\jsp\tiles\attribute\adm.top.jsp
-src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createQuestion.jsp
-src\main\resources\egovframework\mapper\sgis\surveysystem\SurveyMapper.xml
-src\main\resources\egovframework\mapper\sgis\surveysystem\QuestionMapper.xml
-src\main\webapp\WEB-INF\jsp\sgis\surveysystem\createQuestionOption.jsp
-src\main\webapp\WEB-INF\jsp\sgis\map\mapMain.jsp
-src\main\webapp\WEB-INF\jsp\tiles\attribute\portal.top.jsp
-src\main\webapp\WEB-INF\jsp\sgis\portal\portalMain.jsp
-src\main\webapp\com\img\common\main\temp_dummy_main.png
\ No newline at end of file
+src\main\resources\egovframework\mapper\sgis\app\AppMainMapper.xml
+src\main\webapp\WEB-INF\jsp\sgis\popup\cordinateSaupMap.jsp
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0a2441e..1c651fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,40 +25,46 @@
-
- mvn2s
- https://repo1.maven.org/maven2/
-
- true
-
-
- true
-
-
-
- egovframe
- https://maven.egovframe.go.kr/maven/
-
- true
-
-
- false
-
-
-
- osgeo
- OSGeo Release Repository
- https://repo.osgeo.org/repository/release/
- false
- true
-
-
- osgeo-snapshot
- OSGeo Snapshot Repository
- https://repo.osgeo.org/repository/snapshot/
- true
- false
-
+
+ mvn2s
+ https://repo1.maven.org/maven2/
+
+ true
+
+
+ true
+
+
+
+ egovframe
+ https://maven.egovframe.go.kr/maven/
+
+ true
+
+
+ false
+
+
+
+ osgeo
+ OSGeo Release Repository
+ https://repo.osgeo.org/repository/release/
+ false
+ true
+
+
+
+ geosolutions
+ geosolutions repository
+ https://maven.geosolutions.it/
+
+
+ osgeo-snapshot
+ OSGeo Snapshot Repository
+ https://repo.osgeo.org/repository/snapshot/
+ true
+ false
+
@@ -107,11 +113,11 @@
1.4
-
- commons-codec
- commons-codec
- 1.9
-
+
+ commons-codec
+ commons-codec
+ 1.9
+
taglibs
@@ -152,33 +158,33 @@
- org.mariadb.jdbc
- mariadb-java-client
- 2.2.5
+ org.mariadb.jdbc
+ mariadb-java-client
+ 2.2.5
- org.postgresql
- postgresql
- 42.2.5
+ org.postgresql
+ postgresql
+ 42.2.5
- org.lazyluke
- log4jdbc-remix
- 0.2.7
+ org.lazyluke
+ log4jdbc-remix
+ 0.2.7
+
+ mysql
+ mysql-connector-java
+ 5.1.31
+
+ -->
+
+ -->
-
+
commons-fileupload
@@ -302,9 +309,9 @@
2.12.4
- com.fasterxml.jackson.datatype
- jackson-datatype-jsr310
- 2.12.4
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.12.4
com.googlecode.json-simple
@@ -314,22 +321,22 @@
- org.apache.poi
- poi
- 4.0.1
+ org.apache.poi
+ poi
+ 4.0.1
org.apache.poi
- poi-ooxml
- 4.0.1
+ poi-ooxml
+ 4.0.1
- commons-io
- commons-io
- 2.4
+ commons-io
+ commons-io
+ 2.4
@@ -348,29 +355,56 @@
junit
4.13.2
test
-
-
- org.geotools
- gt-shapefile
- ${geotools.version}
-
+
+
+ org.geotools
+ gt-epsg-hsql
+ ${geotools.version}
+
+
+ org.geotools.jdbc
+ gt-jdbc-postgis
+ ${geotools.version}
+
- org.geotools
- gt-epsg-hsql
- ${geotools.version}
-
-
- org.geotools.jdbc
- gt-jdbc-postgis
- ${geotools.version}
-
-
org.geotools
gt-swing
${geotools.version}
-
+
-
+
+
+ it.geosolutions.jaiext.lookup
+ jt-lookup
+ 1.1.24
+
+
+ it.geosolutions.jaiext.bandcombine
+ jt-bandcombine
+ 1.1.24
+
+
+ it.geosolutions.jaiext.format
+ jt-format
+ 1.1.24
+
+
+ it.geosolutions.jaiext.utilities
+ jt-utilities
+ 1.1.24
+
+
+ it.geosolutions.jaiext.shadedrelief
+ jt-shadedrelief
+ 1.1.24
+
+
+ it.geosolutions.jaiext.imagefunction
+ jt-imagefunction
+ 1.1.24
+
+
+
org.projectlombok
lombok
1.18.24
@@ -378,9 +412,9 @@
- com.google.code.gson
- gson
- 2.9.0
+ com.google.code.gson
+ gson
+ 2.9.0
@@ -465,163 +499,189 @@
jython-standalone
2.7.1
+
+
+
+ org.python
+ jython-standalone
+ 2.7.1
+
+
+
+ org.geotools
+ gt-shapefile
+ ${geotools.version}
+ system
+ ${project.basedir}/src/main/webapp/WEB-INF/lib/gt-shapefile-28-SNAPSHOT.jar
+
+
+
+ org.geotools
+ gt-main
+ ${geotools.version}
+ system
+ ${project.basedir}/src/main/webapp/WEB-INF/lib/gt-main-28-SNAPSHOT.jar
+
+
+
+
-
- install
- ${basedir}/target
- smart_ground
-
-
-
- org.apache.tomcat.maven
- tomcat7-maven-plugin
- 2.2
-
- 80
- /
-
- -Xms256m -Xmx768m -XX:MaxPermSize=256m
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 1.8
- 1.8
- UTF-8
-
-
-
- org.codehaus.mojo
- hibernate3-maven-plugin
- 2.1
-
-
-
- hbm2ddl
- annotationconfiguration
-
-
-
-
-
- org.hsqldb
- hsqldb
- 2.3.2
-
-
-
-
-
- org.codehaus.mojo
- emma-maven-plugin
- 1.0-alpha-3
-
-
-
- org.apache.maven.plugins
- maven-pmd-plugin
- 3.1
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- true
- once
- xml
-
- **/Abstract*.java
- **/*Suite.java
-
-
- **/*Test.java
-
-
-
-
- org.codehaus.mojo
- emma-maven-plugin
- true
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.9.1
-
-
-
-
- ${basedir}/target/site
-
-
- org.apache.maven.plugins
- maven-project-info-reports-plugin
- 2.7
-
-
- sunlink
-
- javadoc
-
- true
-
-
- http://docs.oracle.com/javase/6/docs/api/
-
-
-
-
-
-
-
- org.codehaus.mojo
- emma-maven-plugin
- true
-
-
- org.codehaus.mojo
- surefire-report-maven-plugin
- true
-
-
-
- report-only
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
-
- 128m
- 512m
- ${encoding}
- ${encoding}
- ${encoding}
-
-
-
-
- org.apache.maven.plugins
- maven-jxr-plugin
-
- ${encoding}
- ${encoding}
- true
- apidocs
-
-
-
-
+
+ install
+ ${basedir}/target
+ smart_ground
+
+
+
+ org.apache.tomcat.maven
+ tomcat7-maven-plugin
+ 2.2
+
+ 80
+ /
+
+ -Xms256m -Xmx768m -XX:MaxPermSize=256m
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+ org.codehaus.mojo
+ hibernate3-maven-plugin
+ 2.1
+
+
+
+ hbm2ddl
+ annotationconfiguration
+
+
+
+
+
+ org.hsqldb
+ hsqldb
+ 2.3.2
+
+
+
+
+
+ org.codehaus.mojo
+ emma-maven-plugin
+ 1.0-alpha-3
+
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.1
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+ once
+ xml
+
+ **/Abstract*.java
+ **/*Suite.java
+
+
+ **/*Test.java
+
+
+
+
+ org.codehaus.mojo
+ emma-maven-plugin
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.9.1
+
+
+
+
+ ${basedir}/target/site
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 2.7
+
+
+ sunlink
+
+ javadoc
+
+ true
+
+
+ http://docs.oracle.com/javase/6/docs/api/
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ emma-maven-plugin
+ true
+
+
+ org.codehaus.mojo
+ surefire-report-maven-plugin
+ true
+
+
+
+ report-only
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+ 128m
+ 512m
+ ${encoding}
+ ${encoding}
+ ${encoding}
+
+
+
+
+ org.apache.maven.plugins
+ maven-jxr-plugin
+
+ ${encoding}
+ ${encoding}
+ true
+ apidocs
+
+
+
+
diff --git a/src/main/java/sgis/adm/mapper/AdmMainMapper.java b/src/main/java/sgis/adm/mapper/AdmMainMapper.java
index 8c9b754..d554245 100644
--- a/src/main/java/sgis/adm/mapper/AdmMainMapper.java
+++ b/src/main/java/sgis/adm/mapper/AdmMainMapper.java
@@ -5,7 +5,7 @@ import java.util.List;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
-@Mapper("admMainMapper")
+@Mapper("AdmMainMapper")
public interface AdmMainMapper {
List> selectUserList(HashMap params) throws Exception;
diff --git a/src/main/java/sgis/adm/service/impl/AdmMainServiceImpl.java b/src/main/java/sgis/adm/service/impl/AdmMainServiceImpl.java
index 295406a..d00cc03 100644
--- a/src/main/java/sgis/adm/service/impl/AdmMainServiceImpl.java
+++ b/src/main/java/sgis/adm/service/impl/AdmMainServiceImpl.java
@@ -13,11 +13,11 @@ import sgis.adm.service.AdmMainService;
public class AdmMainServiceImpl implements AdmMainService {
@Autowired
- private AdmMainMapper AdmMainMapper;
+ private AdmMainMapper admMainMapper;
@Override
public List> selectUserList(HashMap params) throws Exception {
- return AdmMainMapper.selectUserList(params);
+ return admMainMapper.selectUserList(params);
}
}
diff --git a/src/main/java/sgis/app/web/AppMainController.java b/src/main/java/sgis/app/web/AppMainController.java
index c0afcbc..f5221a1 100644
--- a/src/main/java/sgis/app/web/AppMainController.java
+++ b/src/main/java/sgis/app/web/AppMainController.java
@@ -120,23 +120,23 @@ public class AppMainController extends BaseController {
return "sgis/app/proj/projList";
};
- //프로젝트 데이터 호출
- @SuppressWarnings("unchecked")
- @RequestMapping(value = "/app/proj/projList_jsondata.do", method = {RequestMethod.POST, RequestMethod.GET})
- public void projList_jsondata(@RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
- request.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;charset=UTF-8");
+//프로젝트 데이터 호출
+@SuppressWarnings("unchecked")
+@RequestMapping(value = "/app/proj/projList_jsondata.do", method = {RequestMethod.POST, RequestMethod.GET})
+public void projList_jsondata(@RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ request.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html;charset=UTF-8");
- //data정보
- List> result = AppMainService.selectAppProjList(params);
+ //data정보
+ List> result = AppMainService.selectAppProjList(params);
- HashMap> resultMap = new HashMap>();
- resultMap.put("dataList1", result);
+ HashMap> resultMap = new HashMap>();
+ resultMap.put("dataList1", result);
- JSONObject json = new JSONObject();
- json.putAll( resultMap );
- response.getWriter().print(json);
- };
+ JSONObject json = new JSONObject();
+ json.putAll( resultMap );
+ response.getWriter().print(json);
+};
//프로젝트 생성 방법 선택 화면
@RequestMapping(value="/app/proj/projForm.do")
@@ -175,7 +175,7 @@ public class AppMainController extends BaseController {
//프로젝트 생성 (직접입력 저장)
@RequestMapping(value = "/app/proj/insertProjectInfo.do")
@ResponseBody
- public String insertProjectInfo(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
+ public JSONObject insertProjectInfo(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
String retStr = "";
try {
@@ -245,7 +245,10 @@ public class AppMainController extends BaseController {
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//프로젝트 상세조회
@@ -272,7 +275,7 @@ public class AppMainController extends BaseController {
//프로젝트 지역파일 삭제 (직접입력 저장)
@RequestMapping(value = "/app/proj/deleteProjectInfoFile.do")
@ResponseBody
- public String deleteProjectInfoFile(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
+ public JSONObject deleteProjectInfoFile(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
String retStr = "";
try {
@@ -300,13 +303,15 @@ public class AppMainController extends BaseController {
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//프로젝트 삭제
@RequestMapping(value = "/app/proj/deleteProj.do")
@ResponseBody
- public String deleteProj(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
+ public JSONObject deleteProj(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
String retStr = "";
try {
@@ -328,15 +333,18 @@ public class AppMainController extends BaseController {
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//지역 검증
@RequestMapping(value="/app/proj/areaValidation.do")
@ResponseBody
- public String areaValidation(@RequestParam HashMap dataParam, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ public JSONObject areaValidation(@RequestParam HashMap dataParam, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
ShapefileReader r = null;
- String retStr = "";
+ String retStr = "";
+ String message = "";
try {
//shapefileLoader
@@ -356,6 +364,7 @@ public class AppMainController extends BaseController {
if (!decompressZip.unZip(filePath, zipFile, filePath, type, projectCode)) {
System.out.println("압축 해제 실패");
+ message += "압축 해제 실패" + "\n";
}
ShpFiles shpFile = new ShpFiles(shpFilePath+projectCode+".shp");
@@ -380,8 +389,10 @@ public class AppMainController extends BaseController {
} catch (Exception e) { System.out.println("ERROR:"+e);
retStr = "fail";
}
-
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ json.put("message", retStr);
+ return json;
};
//사업 생성 (직접입력)
@@ -410,7 +421,7 @@ public class AppMainController extends BaseController {
//사업 생성 저장
@RequestMapping(value = "/app/saup/insertSaupInfo.do")
@ResponseBody
- public String insertSaupInfo(@RequestParam HashMap params, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception{
+ public JSONObject insertSaupInfo(@RequestParam HashMap params, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception{
String retStr = "";
try {
@@ -502,7 +513,10 @@ public class AppMainController extends BaseController {
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//사업목록 검색
@@ -575,7 +589,7 @@ public class AppMainController extends BaseController {
//사업 지역파일 삭제 (직접입력 저장)
@RequestMapping(value = "/app/saup/deleteSaupInfoFile.do")
@ResponseBody
- public String deleteSaupInfoFile(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
+ public JSONObject deleteSaupInfoFile(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
String retStr = "";
try {
@@ -602,25 +616,29 @@ public class AppMainController extends BaseController {
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//사업지역 검증
@RequestMapping(value="/app/saup/areaValidation.do")
@ResponseBody
- public String saupAreaValidation(@RequestParam HashMap dataParam, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ public JSONObject saupAreaValidation(@RequestParam HashMap dataParam, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
String retStr = "";
try {
- AppMainService.updateSaupArea(dataParam);
-
-
+ AppMainService.updateSaupArea(dataParam);
+ retStr = "success";
} catch (Exception e) { System.out.println("ERROR:"+e);
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
};
//사업 시추공정보(직접입력)
@@ -695,7 +713,7 @@ public class AppMainController extends BaseController {
//시추공정보 저장
@RequestMapping(value = "/app/saup/insertHoleInfo.do")
@ResponseBody
- public String insertHoleInfo(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
+ public JSONObject insertHoleInfo(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
String retStr = "";
try {
ComCodeVO codeVO = new ComCodeVO();
@@ -812,7 +830,10 @@ public class AppMainController extends BaseController {
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//사업 지형지질정보(직접입력)
@@ -1018,7 +1039,7 @@ public class AppMainController extends BaseController {
//지층정보 저장
@RequestMapping(value="/app/saup/insertLayerInfo.do", method=RequestMethod.POST)
- public @ResponseBody String insertLayerInfo(@RequestParam String CustomerInformationList, @RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ public @ResponseBody JSONObject insertLayerInfo(@RequestParam String CustomerInformationList, @RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
String retStr = "";
@@ -1072,7 +1093,9 @@ public class AppMainController extends BaseController {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
};
@@ -1111,7 +1134,7 @@ public class AppMainController extends BaseController {
//기본물성시험정보 저장
@RequestMapping(value="/app/saup/insertSampleInfo.do", method=RequestMethod.POST)
@ResponseBody
- public String insertSampleInfo(@RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ public JSONObject insertSampleInfo(@RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
String retStr = "";
@@ -1199,13 +1222,15 @@ public class AppMainController extends BaseController {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
};
// 부정보 입력 전 주정보 저장여부
@RequestMapping(value="/app/com/confirmInfo.do", method=RequestMethod.POST)
@ResponseBody
- public String confirmInfo(@RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ public JSONObject confirmInfo(@RequestParam HashMap params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
String retStr = "";
boolean testInfoYn = false;
@@ -1232,20 +1257,25 @@ public class AppMainController extends BaseController {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
};
//엑셀업로드 내용 체크
@RequestMapping(value="/app/saup/excelValidation.do")
@ResponseBody
- public String excelValidation(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
+ public JSONObject excelValidation(@RequestParam HashMap params, HttpServletRequest request, ModelMap model) throws Exception{
String retStr = "";
try {
retStr = "success";
}catch(Exception e) {
retStr = "fail";
}
- return "{\"result\":\""+retStr+"\"}";
+
+ JSONObject json = new JSONObject();
+ json.put("result", retStr);
+ return json;
}
//사업 시험항목정보(직접입력)
diff --git a/src/main/java/sgis/com/web/BaseController.java b/src/main/java/sgis/com/web/BaseController.java
index 989d92c..c64ce25 100644
--- a/src/main/java/sgis/com/web/BaseController.java
+++ b/src/main/java/sgis/com/web/BaseController.java
@@ -193,6 +193,16 @@ public class BaseController {
String uri = request.getRequestURI();
String businessProcessCode = "";
+ String businessCode = null;
+ if( params.get("businessCode") != null ) {
+ businessCode = String.valueOf(params.get("businessCode"));
+
+ if( businessCode.trim().isEmpty() ) {
+ businessCode = null;
+ }
+ }
+
+
model.put("selectedUrl", uri);
if(!"new".equals(params.get("mode"))) {
if(uri.contains("proj")) {
@@ -200,15 +210,18 @@ public class BaseController {
model.put("projectCode", params.get("projectCode"));
}else {
model.put("submenuGbn", "saup");
+ EgovMap saupDetailInfo = null;
+ if( businessCode != null ) {
+ saupDetailInfo = AppMainService.selectAppSaupDetail(params);
+ businessProcessCode = (String) saupDetailInfo.get("businessProcessCode");
+ businessProcessCode = StringUtil.nullToBlank(businessProcessCode);
- EgovMap saupDetailInfo = AppMainService.selectAppSaupDetail(params);
- businessProcessCode = (String) saupDetailInfo.get("businessProcessCode");
- businessProcessCode = StringUtil.nullToBlank(businessProcessCode);
- //시공정보
- if(!businessProcessCode.isEmpty() && "2".equals((businessProcessCode).substring(0, 1)) ) {
- EgovMap constItemsInfo = AppMainService.selectConstItemsInfo(params);
- model.put("constItemsInfo", constItemsInfo);
+ //시공정보
+ if(!businessProcessCode.isEmpty() && "2".equals((businessProcessCode).substring(0, 1)) ) {
+ EgovMap constItemsInfo = AppMainService.selectConstItemsInfo(params);
+ model.put("constItemsInfo", constItemsInfo);
+ }
}
//TODO : 폴더 class에 필수값 데이터가있으면 check 붙이기
diff --git a/src/main/java/sgis/com/web/DecompressZip.java b/src/main/java/sgis/com/web/DecompressZip.java
index 59ff9c2..83dfc1c 100644
--- a/src/main/java/sgis/com/web/DecompressZip.java
+++ b/src/main/java/sgis/com/web/DecompressZip.java
@@ -1,196 +1,154 @@
package sgis.com.web;
+import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
+
+// Apache Commons Compress 라이브러리 임포트
+import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
+import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
/**
- * @FileName : DecompressZip.java
- * @Date : 2022. 5. 18.
- * @Creator : ICTWAY KIM YOON SU
- * @Discription :
- */
+ * @FileName : DecompressZip.java
+ * @Date : 2022. 5. 18.
+ * @Creator : ICTWAY KIM YOON SU
+ * @Discription : Apache Commons Compress를 이용한 압축 해제 (호환성 강화)
+ */
public class DecompressZip {
- /**
- * 압축 해제 진행 == GOGO ==!
- * @param zipPath
- * @param zipFileName
- * @param zipUnzipPath
- * @return 파일 압축 해제 성공 여부
- * @throws Exception
- */
- public boolean unZip(String zipPath, String zipFileName, String zipUnzipPath, String type , String projectCode) throws Exception {
- System.out.println(" unZip() - zipPath : "+zipPath); //압축 파일 위치
- System.out.println(" unZip() - zipFileName : "+zipFileName); //압축파일 이름
- System.out.println(" unZip() - zipUnzipPath : "+zipUnzipPath); //압축이 해제될 위치
+ /**
+ * 압축 해제 진행
+ * @return 파일 압축 해제 성공 여부
+ */
+ public boolean unZip(String zipPath, String zipFileName, String zipUnzipPath, String type , String projectCode) throws Exception {
- //파일 압축 해제 성공 여부
- boolean isChk = false;
+ System.out.println(" unZip() - zipPath : "+zipPath);
+ System.out.println(" unZip() - zipFileName : "+zipFileName);
+ System.out.println(" unZip() - zipUnzipPath : "+zipUnzipPath);
- //압축 해재할 파일의 type(.zip or .tar) 제거
- zipUnzipPath = zipUnzipPath + zipFileName.replace(type, "");
+ boolean isChk = false;
- //zip 파일
- File zipFile = new File(zipPath + zipFileName);
- FileInputStream fis = null;
- ZipInputStream zis = null;
- ZipEntry zipentry = null;
+ //압축 해제할 폴더 경로 설정
+ zipUnzipPath = zipUnzipPath + zipFileName.replace(type, "");
- try {
+ File zipFile = new File(zipPath + zipFileName);
+ FileInputStream fis = null;
+ ZipArchiveInputStream zis = null;
- //zipFileName을 통해서 폴더 생성
- if (makeFolder(zipUnzipPath)) {
- System.out.println(" --- 폴더를 생성 프로세스 완료 ");
- }
+ try {
+ // 폴더 생성
+ if (makeFolder(zipUnzipPath)) {
+ System.out.println(" --- 폴더 생성 프로세스 완료 ");
+ }
- fis = new FileInputStream(zipFile); //파일 스트림
- zis = new ZipInputStream(fis, Charset.forName("EUC-KR")); //Zip 파일 스트림
+ fis = new FileInputStream(zipFile);
- //압축되어 있는 ZIP 파일의 목록 조회
- while ((zipentry = zis.getNextEntry()) != null) {
- String fileName = zipentry.getName();
- String ext = fileName.substring(fileName.lastIndexOf(".") + 1);
+ // ZipArchiveInputStream 생성
+ // 파라미터: (InputStream, 인코딩, useUnicodeExtraFields, allowStoredEntriesWithDataDescriptor)
+ // allowStoredEntriesWithDataDescriptor = true : 첫 번째 발생했던 에러(invalid entry size)를 해결하는 핵심 옵션입니다.
+ zis = new ZipArchiveInputStream(new BufferedInputStream(fis), "EUC-KR", true, true);
- fileName = projectCode + "." + ext;
- System.out.println("filename(zipentry.getName()) => " + fileName);
+ ZipArchiveEntry zipentry = null;
- File file = new File(zipUnzipPath, fileName);
+ // 스트림 방식으로 압축 파일 순차 조회 (CEN 헤더 오류 회피)
+ while ((zipentry = zis.getNextZipEntry()) != null) {
+ String fileName = zipentry.getName();
- //entry가 디렉토리인지 파일인지 검색
- if (zipentry.isDirectory()) {
+ // 파일명 및 확장자 처리
+ String ext = "";
+ if(fileName.lastIndexOf(".") != -1) {
+ ext = fileName.substring(fileName.lastIndexOf(".") + 1);
+ fileName = projectCode + "." + ext;
+ } else {
+ fileName = projectCode;
+ }
- //entry가 디렉토리일 경우 폴더 생성
- System.out.println(" --- zipentry가 디렉토리입니다.");
- file.mkdirs();
+ System.out.println("filename(zipentry.getName()) => " + fileName);
- } else {
+ File file = new File(zipUnzipPath, fileName);
- //entry가 파일일 경우 파일 생성
- System.out.println(" --- zipentry가 파일입니다.");
+ if (zipentry.isDirectory()) {
+ System.out.println(" --- zipentry가 디렉토리입니다.");
+ file.mkdirs();
+ } else {
+ System.out.println(" --- zipentry가 파일입니다.");
+ try {
+ createFile(file, zis);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ }
- try {
- createFile(file, zis);
+ isChk = true;
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- }
+ } catch (Exception e) {
+ e.printStackTrace();
+ isChk = false;
+ } finally {
+ if (zis != null) {
+ try {
+ zis.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ }
- isChk = true;
+ return isChk;
+ }
- } catch (Exception e) {
- isChk = false;
+ private boolean makeFolder(String folder) throws Exception {
+ if (folder == null || folder.length() == 0) return false;
+ File file = new File(folder);
+ if (!file.exists()) {
+ file.mkdirs();
+ } else {
+ // 필요 시 기존 폴더 삭제 로직 추가 (재귀 삭제 필요)
+ // 여기서는 기존 로직 유지
+ file.delete();
+ file.mkdirs();
+ }
+ return true;
+ }
- } finally {
- if (zis != null) {
- try {
- zis.close();
- } catch (IOException e) {
- throw e;
- }
- }
- if (fis != null) {
- try {
- fis.close();
- } catch (IOException e) {
- throw e;
- }
- }
- }
+ // ZipArchiveInputStream을 그대로 받아서 처리
+ private void createFile(File file, ZipArchiveInputStream zis) throws Exception {
+ File parentDir = new File(file.getParent());
+ if (!parentDir.exists()) {
+ parentDir.mkdirs();
+ }
- return isChk;
-
- }
-
-
- /**
- * 폴더 디렉토리 체크 및 생성
- * @param folder
- * @return
- * @throws Exception
- */
- private boolean makeFolder(String folder) throws Exception {
- System.out.println(" makeFolder() - folder : "+folder);
-
- boolean result = false;
-
- if (folder.length() < 0) {
- result = false;
- }
-
- File file = new File(folder);
-
- //해당 디렉토리가 없을경우 디렉토리 생성
- try {
-
- //디렉토리 폴더 경로 체크
- if (!file.exists()) {
- file.mkdirs(); //폴더 생성
- System.out.println(" makeFolder() --------- 폴더 생성 완료 ---------");
- } else {
- System.out.println(" makeFolder() --------- 이미 폴더가 존재함 ---------");
- file.delete(); //폴더 삭제
- System.out.println(" makeFolder() --------- 기존 폴더를 삭제함 ---------");
- file.mkdirs(); //폴더 생성
- System.out.println(" makeFolder() --------- 폴더 생성 완료 ---------");
- }
- result = true;
-
- } catch (Exception e) {
- throw e;
- }
-
- return result;
- }
-
-
- /**
- * 파일 체크 및 생성
- * @param file
- * @param zis
- * @throws Exception
- */
- private void createFile(File file, ZipInputStream zis) throws Exception {
- System.out.println(" createFile() - file : "+file);
- //디렉토리 확인
- File parentDir = new File(file.getParent());
-
- //디렉토리 폴더 경로 체크
- if (!parentDir.exists()) {
- parentDir.mkdirs();
- }
-
- FileOutputStream fos = null; //출력 스트림
-
- //파일 스트림 선언
- try {
- fos = new FileOutputStream(file);
- byte[] buffer = new byte[256];
- int size = 0;
-
- //zip스트림으로부터 byte뽑아내기
- while ((size = zis.read(buffer)) > 0) {
- fos.write(buffer, 0, size); //스트림 작성
- }
-
- } catch (Exception e) {
- throw e;
-
- } finally {
- if (fos != null) {
- try {
- fos.close();
- } catch (IOException e) {
- throw e;
- }
- }
- }
- }
-}
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(file);
+ byte[] buffer = new byte[2048];
+ int size = 0;
+ // ZipArchiveInputStream은 ZipInputStream처럼 read()로 현재 엔트리의 데이터를 읽습니다.
+ while ((size = zis.read(buffer)) > 0) {
+ fos.write(buffer, 0, size);
+ }
+ } catch (Exception e) {
+ throw e;
+ } finally {
+ if (fos != null) {
+ try {
+ fos.close();
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml b/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml
index 107bdf8..2a6d92b 100644
--- a/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml
+++ b/src/main/resources/egovframework/mapper/sgis/app/AppMainMapper.xml
@@ -103,10 +103,10 @@
A.PROJECT_CODE
, A.PROJECT_NAME
, A.PROJECT_DESC
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_harbor_code' AND A.PROJECT_HARBOR_CODE = B.code_val ) as PROJECT_HARBOR_NAME
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_ordering_code' AND A.PROJECt_ORDERING_CODE = B.code_val ) as PROJECT_ORDERING_NAME
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_affiliated_code' AND A.PROJECT_AFFILIATED_CODE = B.code_val ) as PROJECT_AFFILIATED_NAME
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_epsg_code' AND A.PROJECT_EPSG_CODE = B.code_val ) as PROJECT_EPSG_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_harbor_code' AND A.PROJECT_HARBOR_CODE = B.code_val LIMIT 1 ) as PROJECT_HARBOR_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_ordering_code' AND A.PROJECt_ORDERING_CODE = B.code_val LIMIT 1 ) as PROJECT_ORDERING_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_affiliated_code' AND A.PROJECT_AFFILIATED_CODE = B.code_val LIMIT 1 ) as PROJECT_AFFILIATED_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_epsg_code' AND A.PROJECT_EPSG_CODE = B.code_val LIMIT 1 ) as PROJECT_EPSG_NAME
, TO_CHAR(A.PROJECT_START_DATE,'YYYY-MM-DD') AS PROJECT_START_DATE
, TO_CHAR(A.PROJECT_END_DATE,'YYYY-MM-DD') AS PROJECT_END_DATE
, (SELECT USER_NM FROM COMTB_USER01 B WHERE B.USER_ID = A.PROJECT_INPUT_ID) AS USER_NM
@@ -141,7 +141,6 @@
@@ -265,10 +264,10 @@
A.PROJECT_CODE
, A.PROJECT_NAME
, A.PROJECT_DESC
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_harbor_code' AND A.PROJECT_HARBOR_CODE = B.code_val ) as PROJECT_HARBOR_NAME
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_ordering_code' AND A.PROJECt_ORDERING_CODE = B.code_val ) as PROJECT_ORDERING_NAME
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_affiliated_code' AND A.PROJECT_AFFILIATED_CODE = B.code_val ) as PROJECT_AFFILIATED_NAME
- , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_epsg_code' AND A.PROJECT_EPSG_CODE = B.code_val ) as PROJECT_EPSG_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_harbor_code' AND A.PROJECT_HARBOR_CODE = B.code_val LIMIT 1) as PROJECT_HARBOR_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_ordering_code' AND A.PROJECt_ORDERING_CODE = B.code_val LIMIT 1) as PROJECT_ORDERING_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_affiliated_code' AND A.PROJECT_AFFILIATED_CODE = B.code_val LIMIT 1) as PROJECT_AFFILIATED_NAME
+ , (select B.code_txt from comtb_code02 B where B.cd_grp = 'project_epsg_code' AND A.PROJECT_EPSG_CODE = B.code_val LIMIT 1) as PROJECT_EPSG_NAME
, A.PROJECT_HARBOR_CODE
, A.PROJECT_ORDERING_CODE
, A.PROJECT_AFFILIATED_CODE
@@ -276,13 +275,13 @@
, A.PROJECT_AREA_FILE
, TO_CHAR(A.PROJECT_START_DATE,'YYYY-MM-DD') AS PROJECT_START_DATE
, TO_CHAR(A.PROJECT_END_DATE,'YYYY-MM-DD') AS PROJECT_END_DATE
- , (select user_nm from comtb_user01 B where B.user_id = A.project_input_id) as USER_NM
+ , (select user_nm from comtb_user01 B where B.user_id = A.project_input_id LIMIT 1) as USER_NM
, A.PROJECT_AREA_FILE
, A.PROJECT_AREA_YN
, ST_ASTEXT(ST_TRANSFORM(ST_SetSRID(A.PROJECT_AREA_GEOM, A.PROJECT_EPSG_CODE :: INTEGER),4326)) as PROJECT_AREA_GEOM
- , (select file_nm from comtb_file01 B where cast(B.file_no as varchar) = A.project_area_file) as file_nm
- , (select file_strg_nm from comtb_file01 B where cast(B.file_no as varchar) = A.project_area_file) as file_strg_nm
- , (select count(*) from APPTB_SAUP01 C where A.project_code = C.project_code) as saup_cnt
+ , (select file_nm from comtb_file01 B where cast(B.file_no as varchar) = A.project_area_file LIMIT 1) as file_nm
+ , (select file_strg_nm from comtb_file01 B where cast(B.file_no as varchar) = A.project_area_file LIMIT 1) as file_strg_nm
+ , (select count(*) from APPTB_SAUP01 C where A.project_code = C.project_code LIMIT 1) as saup_cnt
FROM APPTB_PROJ01 A
WHERE 1=1
]]>
@@ -579,11 +578,11 @@
SELECT
A.PROJECT_CODE
, B.PROJECT_NAME
- , (select code_txt from comtb_code02 where cd_grp = 'project_harbor_code' AND B.PROJECT_HARBOR_CODE = code_val ) as PROJECT_HARBOR_NAME
+ , (select code_txt from comtb_code02 where cd_grp = 'project_harbor_code' AND B.PROJECT_HARBOR_CODE = code_val LIMIT 1) as PROJECT_HARBOR_NAME
, A.BUSINESS_CODE
, A.BUSINESS_NAME
- , (select code_txt from comtb_code02 where cd_grp = 'business_process_code' AND A.BUSINESS_PROCESS_CODE = code_val ) as BUSINESS_PROCESS_NAME
- , (select user_nm from comtb_user01 where user_id = A.business_input_id) as INPUT_NAME
+ , (select code_txt from comtb_code02 where cd_grp = 'business_process_code' AND A.BUSINESS_PROCESS_CODE = code_val LIMIT 1) as BUSINESS_PROCESS_NAME
+ , (select user_nm from comtb_user01 where user_id = A.business_input_id LIMIT 1) as INPUT_NAME
, to_char(A.SYS_REG_DT::DATE, 'yyyy-mm-dd') as INPUT_DATE
FROM APPTB_SAUP01 A LEFT OUTER JOIN APPTB_PROJ01 B ON A.PROJECT_CODE = B.PROJECT_CODE
WHERE 1=1
@@ -619,19 +618,19 @@
SELECT
A.PROJECT_CODE
, B.PROJECT_NAME
- , (select code_txt from comtb_code02 where cd_grp = 'project_harbor_code' AND B.PROJECT_HARBOR_CODE = code_val ) as PROJECT_HARBOR_NAME
+ , (select code_txt from comtb_code02 where cd_grp = 'project_harbor_code' AND B.PROJECT_HARBOR_CODE = code_val LIMIT 1) as PROJECT_HARBOR_NAME
, A.BUSINESS_NAME
, A.BUSINESS_CODE
, A.BUSINESS_PROCESS_CODE
- , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_process_code' AND A.BUSINESS_PROCESS_CODE = C.code_val ) as BUSINESS_PROCESS_NAME
+ , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_process_code' AND A.BUSINESS_PROCESS_CODE = C.code_val LIMIT 1) as BUSINESS_PROCESS_NAME
, A.BUSINESS_CLASS_CODE
- , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_class_code' AND A.BUSINESS_CLASS_CODE = C.code_val ) as BUSINESS_CLASS_NAME
+ , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_class_code' AND A.BUSINESS_CLASS_CODE = C.code_val LIMIT 1) as BUSINESS_CLASS_NAME
, A.BUSINESS_CLASS_DETAIL_CODE
- , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_class_detail_code' AND A.BUSINESS_CLASS_DETAIL_CODE = C.code_val ) as BUSINESS_CLASS_DETAIL_NAME
+ , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_class_detail_code' AND A.BUSINESS_CLASS_DETAIL_CODE = C.code_val LIMIT 1) as BUSINESS_CLASS_DETAIL_NAME
, A.BUSINESS_FACILITIES_FORM_CODE
- , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_facilities_form_code' AND A.BUSINESS_FACILITIES_FORM_CODE = C.code_val ) as BUSINESS_FACILITIES_FORM_NAME
+ , (select C.code_txt from comtb_code02 C where C.cd_grp = 'business_facilities_form_code' AND A.BUSINESS_FACILITIES_FORM_CODE = C.code_val LIMIT 1) as BUSINESS_FACILITIES_FORM_NAME
, A.PROJECT_ORDERING_CODE
- , (select C.code_txt from comtb_code02 C where C.cd_grp = 'project_ordering_code' AND A.PROJECT_ORDERING_CODE = C.code_val ) as PROJECT_ORDERING_NAME
+ , (select C.code_txt from comtb_code02 C where C.cd_grp = 'project_ordering_code' AND A.PROJECT_ORDERING_CODE = C.code_val LIMIT 1) as PROJECT_ORDERING_NAME
, TO_CHAR(A.BUSINESS_START_DATE,'YYYY-MM-DD') AS BUSINESS_START_DATE
, TO_CHAR(A.BUSINESS_END_DATE,'YYYY-MM-DD') AS BUSINESS_END_DATE
, A.BUSINESS_SECTION_EXTENSION
@@ -652,7 +651,7 @@
, A.BUSINESS_REPORT_SOURCE
, A.BUSINESS_REPORT_FILE
, A.BUSINESS_CONSTRUCTION_FILE
- , (select user_nm from comtb_user01 where user_id = A.BUSINESS_INPUT_ID) as USER_NM
+ , (select user_nm from comtb_user01 where user_id = A.BUSINESS_INPUT_ID LIMIT 1) as USER_NM
, A.BUSINESS_ZIP_NO
, A.BUSINESS_ADDRESS
, A.BUSINESS_ADDRESS_DETAIL
@@ -662,12 +661,12 @@
, A.BUSINESS_AREA_SD_CODE
, A.BUSINESS_AREA_SGG_CODE
, A.BUSINESS_AREA_EMD_CODE
- , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sido_code' AND A.BUSINESS_AREA_SD_CODE = CODE_VAL) SD_NAME
- , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sgg_code' AND A.BUSINESS_AREA_SGG_CODE = CODE_VAL) SGG_NAME
- , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'emd_code' AND A.BUSINESS_AREA_EMD_CODE = CODE_VAL) EMD_NAME
+ , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sido_code' AND A.BUSINESS_AREA_SD_CODE = CODE_VAL LIMIT 1) SD_NAME
+ , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sgg_code' AND A.BUSINESS_AREA_SGG_CODE = CODE_VAL LIMIT 1) SGG_NAME
+ , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'emd_code' AND A.BUSINESS_AREA_EMD_CODE = CODE_VAL LIMIT 1) EMD_NAME
, A.BUSINESS_AREA_FILE
- , (SELECT FILE_NM FROM COMTB_FILE01 WHERE CAST(FILE_NO AS VARCHAR) = A.BUSINESS_AREA_FILE) AS FILE_NM
- , (SELECT FILE_STRG_NM FROM COMTB_FILE01 WHERE CAST(FILE_NO AS VARCHAR) = A.BUSINESS_AREA_FILE) AS FILE_STRG_NM
+ , (SELECT FILE_NM FROM COMTB_FILE01 WHERE CAST(FILE_NO AS VARCHAR) = A.BUSINESS_AREA_FILE LIMIT 1) AS FILE_NM
+ , (SELECT FILE_STRG_NM FROM COMTB_FILE01 WHERE CAST(FILE_NO AS VARCHAR) = A.BUSINESS_AREA_FILE LIMIT 1) AS FILE_STRG_NM
, A.BUSINESS_AREA_YN
FROM APPTB_SAUP01 A LEFT OUTER JOIN APPTB_PROJ01 B ON A.PROJECT_CODE = B.PROJECT_CODE
WHERE 1=1
@@ -689,15 +688,15 @@
B.PROJECT_CODE
, B.BUSINESS_NAME
, A.BUSINESS_CODE
- , (SELECT C.CODE_TXT FROM COMTB_CODE02 C WHERE C.CD_GRP = 'business_process_code' AND B.BUSINESS_PROCESS_CODE = C.CODE_VAL ) AS BUSINESS_PROCESS_NAME
+ , (SELECT C.CODE_TXT FROM COMTB_CODE02 C WHERE C.CD_GRP = 'business_process_code' AND B.BUSINESS_PROCESS_CODE = C.CODE_VAL LIMIT 1) AS BUSINESS_PROCESS_NAME
, A.HOLE_CODE
, A.HOLE_NAME
, A.HOLE_COORDINATE
, A.HOLE_X
, A.HOLE_Y
- , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sido_code' AND B.BUSINESS_AREA_SD_CODE = CODE_VAL) SD_NAME
- , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sgg_code' AND B.BUSINESS_AREA_SGG_CODE = CODE_VAL) SGG_NAME
- , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'emd_code' AND B.BUSINESS_AREA_EMD_CODE = CODE_VAL) EMD_NAME
+ , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sido_code' AND B.BUSINESS_AREA_SD_CODE = CODE_VAL LIMIT 1) SD_NAME
+ , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'sgg_code' AND B.BUSINESS_AREA_SGG_CODE = CODE_VAL LIMIT 1) SGG_NAME
+ , (SELECT CODE_TXT FROM COMTB_CODE02 WHERE CD_GRP = 'emd_code' AND B.BUSINESS_AREA_EMD_CODE = CODE_VAL LIMIT 1) EMD_NAME
, B.BUSINESS_ADDRESS_DETAIL
, A.HOLE_BORING_NAME
, A.HOLE_PROSPECTER_NAME
@@ -712,7 +711,7 @@
, A.HOLE_BORING_MACHINE
, A.HOLE_BORING_METHOD
, A.HOLE_BORING_DIRECTION
- , (SELECT USER_NM FROM COMTB_USER01 B WHERE B.USER_ID = A.SYS_REG_ID) AS USER_NM
+ , (SELECT USER_NM FROM COMTB_USER01 B WHERE B.USER_ID = A.SYS_REG_ID LIMIT 1) AS USER_NM
, TO_CHAR(A.SYS_REG_DT,'YYYY-MM-DD') AS SYS_REG_DT
, A.HOLE_REMARK
, ST_AsText(A.HOLE_POINT) AS HOLE_POINT
@@ -744,7 +743,7 @@