feat: 발주기관 프로젝트 목록 가져오기 query 안정화
parent
82a20351cb
commit
d4117d5d09
|
|
@ -4,6 +4,8 @@ import java.sql.SQLException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
|
||||||
|
|
@ -11,7 +13,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
public interface DrillingHomeMapper {
|
public interface DrillingHomeMapper {
|
||||||
List<EgovMap> drillingMapSearchHole(String comCode);
|
List<EgovMap> drillingMapSearchHole(String comCode);
|
||||||
List<EgovMap> drillingMapSearchHoleWithMbr(HashMap<String, Object> params);
|
List<EgovMap> drillingMapSearchHoleWithMbr(HashMap<String, Object> params);
|
||||||
String projectCodesByProjectMasterCompanyCodeAsComma(HashMap<String, Object> params);
|
public List<String> projectCodesByProjectMasterCompanyCodeAsList(@Param("comCodeList") List<String> comCodeList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,5 @@ public interface DrillingHomeService {
|
||||||
public List<EgovMap> drillingMapSearchHole(String projectCode);
|
public List<EgovMap> drillingMapSearchHole(String projectCode);
|
||||||
public List<EgovMap> drillingMapSearchHoleWithMbr(HashMap<String, Object> params);
|
public List<EgovMap> drillingMapSearchHoleWithMbr(HashMap<String, Object> params);
|
||||||
|
|
||||||
public String projectCodesByProjectMasterCompanyCodeAsComma(HashMap<String, Object> params);
|
public String projectCodesByProjectMasterCompanyCodeAsList(HashMap<String, Object> params) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import geoinfo.util.MyUtil;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -44,8 +45,32 @@ public class DrillingHomeServiceImpl implements DrillingHomeService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String projectCodesByProjectMasterCompanyCodeAsComma(HashMap<String, Object> params) {
|
public String projectCodesByProjectMasterCompanyCodeAsList(HashMap<String, Object> params) throws Exception {
|
||||||
return drillingHomeMapper.projectCodesByProjectMasterCompanyCodeAsComma(params);
|
if( params.get("COM_CODE") == null ) {
|
||||||
|
throw new Exception("comCode 값은 필수입니다.");
|
||||||
|
}
|
||||||
|
String comCode = MyUtil.getStringFromObject( params.get("COM_CODE") );
|
||||||
|
List<String> comCodeList = new ArrayList<String>();
|
||||||
|
comCodeList.add(comCode);
|
||||||
|
|
||||||
|
// 1. Mapper에서 List<String>으로 결과를 받습니다.
|
||||||
|
List<String> projectCodes = drillingHomeMapper.projectCodesByProjectMasterCompanyCodeAsList(comCodeList);
|
||||||
|
|
||||||
|
if (projectCodes == null || projectCodes.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. StringBuilder를 사용해 쉼표(,)로 문자열을 조합합니다.
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 0; i < projectCodes.size(); i++) {
|
||||||
|
sb.append(projectCodes.get(i));
|
||||||
|
if (i < projectCodes.size() - 1) {
|
||||||
|
sb.append(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 조합된 문자열을 반환합니다.
|
||||||
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -334,7 +334,7 @@ public class MapLeftController {
|
||||||
|
|
||||||
HashMap<String, Object> paramsMasterCompanyCode = new HashMap<String, Object>();
|
HashMap<String, Object> paramsMasterCompanyCode = new HashMap<String, Object>();
|
||||||
paramsMasterCompanyCode.put("COM_CODE", masterCompanyCode);
|
paramsMasterCompanyCode.put("COM_CODE", masterCompanyCode);
|
||||||
masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsComma(paramsMasterCompanyCode);
|
masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsList(paramsMasterCompanyCode);
|
||||||
|
|
||||||
params.put("masterCompanyCode", masterCompanyCode);
|
params.put("masterCompanyCode", masterCompanyCode);
|
||||||
params.put("masterCompanyProjectCodes", masterCompanyProjectCodes);
|
params.put("masterCompanyProjectCodes", masterCompanyProjectCodes);
|
||||||
|
|
|
||||||
|
|
@ -67,29 +67,25 @@
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="projectCodesByProjectMasterCompanyCodeAsComma" parameterType="String" resultType="String">
|
<select id="projectCodesByProjectMasterCompanyCodeAsList" resultType="String">
|
||||||
<![CDATA[
|
SELECT
|
||||||
SELECT
|
'''' || tpi.PROJECT_CODE || '''' AS PROJECT_CODE
|
||||||
LISTAGG(PROJECT_CODE, ',') WITHIN GROUP (ORDER BY PROJECT_CODE) AS PROJECT_CODE
|
FROM
|
||||||
FROM (
|
TBL_PROJECT_INFO tpi
|
||||||
SELECT
|
WHERE
|
||||||
'''' || tpi.PROJECT_CODE || '''' AS PROJECT_CODE
|
tpi.PROJECT_MASTER_COMPANY_CODE IN
|
||||||
FROM
|
(
|
||||||
TBL_PROJECT_INFO tpi
|
SELECT
|
||||||
WHERE
|
tmc.COM_CODE
|
||||||
tpi.PROJECT_MASTER_COMPANY_CODE IN
|
FROM
|
||||||
(
|
TBL_MASTER_COMPANY tmc
|
||||||
SELECT
|
WHERE
|
||||||
tmc.COM_CODE
|
tmc.COM_CODE IN
|
||||||
FROM
|
<foreach collection="param1" item="code" open="(" separator="," close=")">
|
||||||
TBL_MASTER_COMPANY tmc
|
#{code}
|
||||||
WHERE
|
</foreach>
|
||||||
tmc.COM_CODE IN (
|
)
|
||||||
TRIM(#{COM_CODE})
|
ORDER BY tpi.PROJECT_CODE
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
]]>
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue