diff --git a/src/main/java/geoinfo/drilling/home/service/DrillingHomeMapper.java b/src/main/java/geoinfo/drilling/home/service/DrillingHomeMapper.java index ef816630..04da0ac0 100644 --- a/src/main/java/geoinfo/drilling/home/service/DrillingHomeMapper.java +++ b/src/main/java/geoinfo/drilling/home/service/DrillingHomeMapper.java @@ -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 drillingMapSearchHole(String comCode); List drillingMapSearchHoleWithMbr(HashMap params); - String projectCodesByProjectMasterCompanyCodeAsComma(HashMap params); + public List projectCodesByProjectMasterCompanyCodeAsList(@Param("comCodeList") List comCodeList); } diff --git a/src/main/java/geoinfo/drilling/home/service/DrillingHomeService.java b/src/main/java/geoinfo/drilling/home/service/DrillingHomeService.java index b3c9e75d..449118c9 100644 --- a/src/main/java/geoinfo/drilling/home/service/DrillingHomeService.java +++ b/src/main/java/geoinfo/drilling/home/service/DrillingHomeService.java @@ -10,5 +10,5 @@ public interface DrillingHomeService { public List drillingMapSearchHole(String projectCode); public List drillingMapSearchHoleWithMbr(HashMap params); - public String projectCodesByProjectMasterCompanyCodeAsComma(HashMap params); + public String projectCodesByProjectMasterCompanyCodeAsList(HashMap params) throws Exception; } diff --git a/src/main/java/geoinfo/drilling/home/service/impl/DrillingHomeServiceImpl.java b/src/main/java/geoinfo/drilling/home/service/impl/DrillingHomeServiceImpl.java index 3110aaf1..be247515 100644 --- a/src/main/java/geoinfo/drilling/home/service/impl/DrillingHomeServiceImpl.java +++ b/src/main/java/geoinfo/drilling/home/service/impl/DrillingHomeServiceImpl.java @@ -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 params) { - return drillingHomeMapper.projectCodesByProjectMasterCompanyCodeAsComma(params); + public String projectCodesByProjectMasterCompanyCodeAsList(HashMap params) throws Exception { + if( params.get("COM_CODE") == null ) { + throw new Exception("comCode 값은 필수입니다."); + } + String comCode = MyUtil.getStringFromObject( params.get("COM_CODE") ); + List comCodeList = new ArrayList(); + comCodeList.add(comCode); + + // 1. Mapper에서 List으로 결과를 받습니다. + List 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(); } diff --git a/src/main/java/geoinfo/map/left/MapLeftController.java b/src/main/java/geoinfo/map/left/MapLeftController.java index 699f8a53..080f1d31 100644 --- a/src/main/java/geoinfo/map/left/MapLeftController.java +++ b/src/main/java/geoinfo/map/left/MapLeftController.java @@ -334,7 +334,7 @@ public class MapLeftController { HashMap paramsMasterCompanyCode = new HashMap(); paramsMasterCompanyCode.put("COM_CODE", masterCompanyCode); - masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsComma(paramsMasterCompanyCode); + masterCompanyProjectCodes = drillingHomeService.projectCodesByProjectMasterCompanyCodeAsList(paramsMasterCompanyCode); params.put("masterCompanyCode", masterCompanyCode); params.put("masterCompanyProjectCodes", masterCompanyProjectCodes); diff --git a/src/main/resources/egovframework/sqlmap/mapper/drilling/home/DrillingHomeMapper.xml b/src/main/resources/egovframework/sqlmap/mapper/drilling/home/DrillingHomeMapper.xml index 0e503034..0b6e46fe 100644 --- a/src/main/resources/egovframework/sqlmap/mapper/drilling/home/DrillingHomeMapper.xml +++ b/src/main/resources/egovframework/sqlmap/mapper/drilling/home/DrillingHomeMapper.xml @@ -67,29 +67,25 @@ ]]> - + 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 + + #{code} + + ) + ORDER BY tpi.PROJECT_CODE diff --git a/src/main/webapp/js/map/main/map.js b/src/main/webapp/js/map/main/map.js index 5db036a1..5a39eeae 100644 --- a/src/main/webapp/js/map/main/map.js +++ b/src/main/webapp/js/map/main/map.js @@ -2300,7 +2300,7 @@ function initApp(param){ } else { console.error("HOLE_BOUNDARY[4] 레이어가 초기화되지 않았습니다. 경계 추가에 실패했습니다."); } - } else if( getQueryString("masterCompanyCode") === "025") { + } else if( getQueryString("masterCompanyCode") === "588") { var sourceProj = new OpenLayers.Projection("EPSG:5186"); // 원본 좌표계: GRS80 (5186) var destProj = new OpenLayers.Projection("EPSG:3857"); // 지도 투영 좌표계: Web Mercator (3857) @@ -3406,10 +3406,7 @@ function changeLegend(checkList) { } } - cql = cql.trim().substring(0, cql.length-4) - - //var drillingProjectCodes = "'F3975', 'F4257', 'F4674', 'F1675', 'F1170', 'F3245', 'F5260', 'X9721', 'F2745', 'X9673', 'F1475', 'X9719', 'F2456', 'X9712', 'F1228', 'X9214', 'F0919', 'X5150', 'F3283', 'X4169', 'X8724', 'F0942', 'X3869', 'W9846', 'F2829', 'X7378', 'F3038', 'W9900', 'X0163', 'W9599', 'W9487', 'W6674', 'X0144', 'X3039', 'W9597', 'X9754', 'X3410', 'X3408', 'X3138', 'X0093', 'W5765', 'W9512', 'F1139', 'W9533', 'W5018', 'W9836', 'W8498', 'X3213', 'X3428', 'W9583', 'W9500', 'W9746', 'W9745', 'W9795', 'X3709', 'X0168', 'W9684', 'W7132', 'W4820', 'W8561', 'W4784', 'X3805', 'X0137', 'X3262', 'X3276', 'X3259', 'X3254', 'X3248', 'X3301', 'X3287', 'X3280', 'X3279', 'W7129', 'W9764', 'W9750', 'W7168', 'W4786', 'W8113', 'N0001', 'W8109', 'W8103', 'W8114', 'W3460', 'W3195', 'W3071', 'W2774', 'W3131', 'W9917', 'W9875', 'B6474', 'B6467', 'B6568', 'B6466', 'B6309', 'B6301', 'B6379', 'W8236', 'B6296', 'W9330', 'B6436', 'B6371', 'W3174', 'W3684', 'W3693', 'B4311', 'B4405', 'B4374', 'F4853', 'B3945', 'B4150', 'B4561', 'B4278', 'B4185', 'B4430', 'B4865', 'B4227', 'X0070', 'B4422', 'F4778', 'F5044', 'B4232', 'W9297', 'B4256', 'B4306', 'B4211', 'W3812', 'W3819', 'W3811', 'B4343', 'B4577', 'B5260', 'B4196', 'B4375', 'B4229', 'B4223', 'B4197', 'B5542', 'B4203', 'B4188', 'B4202', 'B4393', 'W3144', 'W3142', 'W3156', 'W3145', 'W3125', 'B5664', 'W7418', 'B7361', 'B4118', 'B4424', 'B4418', 'B4192', 'B4186', 'W9347', 'W9417', 'B5211', 'B5155', 'B3446', 'B5387', 'B5146', 'B3429', 'B5171', 'B4957', 'B5009', 'B5573', 'B4298', 'B5345', 'B5344', 'B5323', 'B4565', 'W3459', 'W2771', 'W2767', 'W2763', 'B4443', 'B4389', 'B4427', 'B4207', 'B5049', 'B4380', 'B4189', 'B4517', 'B4209', 'B4272', 'B4371', 'B4503', 'B4142', 'B4334', 'B5168', 'B5328', 'B4387', 'B5311', 'B4379', 'F4879', 'B4158', 'W9143', 'W3211', 'W3244', 'W3151', 'B5312', 'W3148', 'B4529', 'W3963', 'B3327', 'B3328', 'B3033', 'B3756', 'B2500', 'B5285', 'B3298', 'W2875', 'W9648', 'B4394', 'W8118', 'B4238', 'B4441', 'B4226', 'W3096', 'W3095', 'W3103', 'B4507', 'W2832', 'B4557', 'B4594', 'B4254', 'W8037', 'B4584', 'B4623', 'B4626', 'B4592', 'B4578', 'B4607', 'B4247', 'B4486', 'B4488', 'B4487', 'B3513', 'B3658', 'B3337', 'B3501', 'B2971', 'B5148', 'B2992', 'B2380', 'B3314', 'B2405', 'B3336', 'B2983', 'B4961', 'B5831', 'B4398', 'B3859', 'B4135', 'B4385', 'B4119', 'B7293', 'B4255', 'B4060', 'B3963', 'W9463', 'W3192', 'W3220', 'B5891', 'W9877', 'W3223', 'B4556', 'B4410', 'B4324', 'B4412', 'B4413', 'B4613', 'B4429', 'B4533', 'B4301', 'B4404', 'B4219', 'B4265', 'B4449', 'B4472', 'B4321', 'B5663', 'X2682', 'B5411', 'B1316', 'B1317', 'B2742', 'X2438', 'B3391', 'B3720', 'B3755', 'B2985', 'X2587', 'B5169', 'B0849', 'W9947', 'W9852', 'B3860', 'B3746', 'X2673', 'B3725', 'B0333', 'B0316', 'B3201', 'B2190', 'B4345', 'W3159', 'B4268', 'B3908', 'W3242', 'B5087', 'B4292', 'B4408', 'B4399', 'B4406', 'B4377', 'B4222', 'F4790', 'B4198', 'B4220', 'B4335', 'B4365', 'B4288', 'B4576', 'B4574', 'B4575', 'B4572', 'B4872', 'B4528', 'B4524', 'B4416', 'B3959', 'B5662', 'B0265', 'B0314', 'B3112', 'B3624', 'B5147', 'B2189', 'B0297', 'B2888', 'B3097', 'B0262', 'B2637', 'B3150', 'B5890', 'B5022', 'F4333', 'W9243', 'B5561', 'B4308', 'B3957', 'B3870', 'B3885', 'B3873', 'B3909', 'B3896', 'B4369', 'B4498', 'B4339', 'B4378', 'B2619', 'B0255', 'B3376', 'B3753', 'B2816', 'B2910', 'B2994', 'P0536', 'B4274', 'B4275', 'B6796', 'B6797', 'W9230', 'B5487', 'B3871', 'W3173', 'F4994', 'W9352', 'F1493', 'P0606', 'B3722', 'B0315', 'P0602', 'P0603', 'B3338', 'B0321', 'B3770', 'B3154', 'P0538', 'P0537', 'P1000', 'P0945', 'B5320', 'B5094', 'W3175', 'W8171', 'B4212', 'B4984', 'B4253', 'B5687', 'B5510', 'B0293', 'P0362', 'P1002', 'P0366', 'P0365', 'P0364', 'B0873', 'P0516', 'P0438', 'X1249', 'P0456', 'P0323', 'B0261', 'B0309', 'B3485', 'B2661', 'P0309', 'P0445', 'B5362', 'P0352', 'B3739', 'P0327', 'P0363', 'P0444', 'B5543', 'F4605', 'B4395', 'W3118', 'B3433', 'P0361', 'P0375', 'P0371', 'P0370', 'P0369', 'P0368', 'P0367', 'B0300', 'P0340', 'P0331', 'P0399', 'P0985', 'B3750', 'P0442', 'B0070', 'P0325', 'X1980', 'P0437', 'P0604', 'P0359', 'P0322', 'P0441', 'P0440', 'P0318', 'P0548', 'P0434', 'X3255', 'B5887', 'B5889', 'B5936', 'B5665', 'F1566', 'B0294', 'B0307', 'P0324', 'P0374', 'P0948', 'B2874', 'P0353', 'P0984', 'P0528', 'P285', 'P290', 'P0841', 'P0835', 'P0312', 'X1102', 'P0360', 'P266', 'P317', 'P0405', 'P0803', 'P286', 'P501', 'P268', 'P0401', 'P0376', 'P0469', 'P0808', 'B0298', 'P0404', 'P267', 'P265', 'P287', 'B6785', 'B6754', 'P0435', 'P0983', 'P0988', 'P0377', 'P0347', 'P0735', 'P0739', 'P0317', 'R007', 'P237', 'P0433', 'P368', 'P367', 'P0713', 'R079', 'P0721', 'P292', 'P0944', 'P0704', 'P0705', 'P0706', 'R044', 'R061', 'P288', 'P318', 'P289', 'B0273', 'P0687', 'P396', 'P0439', 'P0686', 'P0695', 'P0681', 'P0680', 'P256', 'P0675', 'P391', 'P0660', 'P283', 'P412', 'W9281', 'B0319', 'P0625', 'P466', 'P0477', 'P0333', 'P0332', 'P490', 'P280', 'P305', 'R040', 'P0431', 'P306', 'P504', 'P465', 'P496', 'R019', 'B0479', 'P228', 'P0326', 'P0410', 'R033', 'B3506', 'P354', 'R036', 'P225', 'R080', 'P241', 'P262', 'P261', 'R090', 'P338', 'R073', 'R074', 'W9212', 'P0436', 'P316', 'P300', 'P0432', 'P0412', 'P236', 'P410', 'P418', 'R152', 'P307', 'P400', 'P249', 'P282', 'R069', 'R064', 'P269', 'P355', 'R016', 'P0345', 'P468', 'P320', 'P303', 'P273', 'P274', 'R095', 'R047', 'R070', 'P370', 'P499', 'P309', 'R018', 'P264', 'P409', 'B6843', 'B6872', 'B6786', 'B5122', 'P417', 'R041', 'P281', 'P0346', 'P296', 'R017', 'P275', 'P416', 'R042', 'P413', 'P243', 'X1255', 'P460', 'P270', 'P255', 'P284', 'P0459', 'P263', 'P271', 'P334', 'P235', 'P452', 'P414', 'P297', 'P315', 'P314', 'P251', 'P0642', 'P293', 'R067', 'P260', 'P257', 'P324', 'P278', 'P279', 'R021', 'R071', 'R026', 'R068', 'P304', 'P254', 'P381', 'R003', 'P258', 'P252', 'P498', 'R032', 'R028', 'P322', 'R091', 'P301', 'P408', 'R043', 'R005', 'R050', 'R038', 'R013', 'P0461', 'R053', 'P0449', 'R010', 'R094', 'P298', 'X1227', 'P310', 'B0206', 'P369', 'R072', 'B0264', 'P272', 'R029', 'R014', 'R035', 'R051', 'R059', 'R045', 'R009', 'P295', 'P0517', 'P325', 'P0917', 'P358', 'R024', 'R008', 'P277', 'P302', 'P221', 'P245', 'P229', 'P226', 'P331', 'P336', 'R012', 'P333', 'P362', 'R077', 'P239', 'R066', 'P240', 'P224', 'P308', 'P415', 'P248', 'P463', 'R151', 'R150', 'P0932', 'P299', 'R006', 'R027', 'R058', 'R030', 'X1203', 'P326', 'R037', 'R020', 'P313', 'P342', 'R025', 'X1188', 'P357', 'X1175', 'P406', 'R054', 'R060', 'P233', 'P234', 'P344', 'P345', 'P321', 'P339', 'P230', 'P0452', 'R022', 'P407', 'R052', 'P337', 'P291', 'P238', 'R087', 'P343', 'P0856', 'P352', 'R065', 'P347', 'P328', 'P327', 'P356', 'P330', 'X1143', 'P332', 'P0608', 'P350', 'P359', 'P405', 'P404', 'R063', 'P349', 'R001', 'X2910', 'P335', 'P351', 'P346', 'R055', 'P329', 'B4586', 'B4315', 'B4587'"; - //cql = " ( " + cql + " ) " + " AND PROJECT_CODE IN (" + drillingProjectCodes + ") "; + cql = cql.trim().substring(0, cql.length-4) cql = encodeURI(cql); if (countY == 33) {