feat: 발주기관 프로젝트 목록 가져오기 query 안정화
parent
82a20351cb
commit
d4117d5d09
|
|
@ -4,6 +4,8 @@ import java.sql.SQLException;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
|
||||
|
|
@ -11,7 +13,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
|
|||
public interface DrillingHomeMapper {
|
||||
List<EgovMap> drillingMapSearchHole(String comCode);
|
||||
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> 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.Timestamp;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -44,8 +45,32 @@ public class DrillingHomeServiceImpl implements DrillingHomeService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String projectCodesByProjectMasterCompanyCodeAsComma(HashMap<String, Object> params) {
|
||||
return drillingHomeMapper.projectCodesByProjectMasterCompanyCodeAsComma(params);
|
||||
public String projectCodesByProjectMasterCompanyCodeAsList(HashMap<String, Object> params) throws Exception {
|
||||
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>();
|
||||
paramsMasterCompanyCode.put("COM_CODE", masterCompanyCode);
|
||||
masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsComma(paramsMasterCompanyCode);
|
||||
masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsList(paramsMasterCompanyCode);
|
||||
|
||||
params.put("masterCompanyCode", masterCompanyCode);
|
||||
params.put("masterCompanyProjectCodes", masterCompanyProjectCodes);
|
||||
|
|
|
|||
|
|
@ -67,29 +67,25 @@
|
|||
]]>
|
||||
</select>
|
||||
|
||||
<select id="projectCodesByProjectMasterCompanyCodeAsComma" parameterType="String" resultType="String">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
LISTAGG(PROJECT_CODE, ',') WITHIN GROUP (ORDER BY PROJECT_CODE) AS PROJECT_CODE
|
||||
FROM (
|
||||
SELECT
|
||||
'''' || tpi.PROJECT_CODE || '''' AS PROJECT_CODE
|
||||
FROM
|
||||
TBL_PROJECT_INFO tpi
|
||||
WHERE
|
||||
tpi.PROJECT_MASTER_COMPANY_CODE IN
|
||||
(
|
||||
SELECT
|
||||
tmc.COM_CODE
|
||||
FROM
|
||||
TBL_MASTER_COMPANY tmc
|
||||
WHERE
|
||||
tmc.COM_CODE IN (
|
||||
TRIM(#{COM_CODE})
|
||||
)
|
||||
)
|
||||
)
|
||||
]]>
|
||||
<select id="projectCodesByProjectMasterCompanyCodeAsList" resultType="String">
|
||||
SELECT
|
||||
'''' || tpi.PROJECT_CODE || '''' AS PROJECT_CODE
|
||||
FROM
|
||||
TBL_PROJECT_INFO tpi
|
||||
WHERE
|
||||
tpi.PROJECT_MASTER_COMPANY_CODE IN
|
||||
(
|
||||
SELECT
|
||||
tmc.COM_CODE
|
||||
FROM
|
||||
TBL_MASTER_COMPANY tmc
|
||||
WHERE
|
||||
tmc.COM_CODE IN
|
||||
<foreach collection="param1" item="code" open="(" separator="," close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
)
|
||||
ORDER BY tpi.PROJECT_CODE
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue