From 7e1e71a1792fe4f06217fe4ec5e5242d89f0a5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EC=A7=80=EC=9D=B8?= Date: Fri, 6 Feb 2026 09:17:10 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=9C=EC=A3=BC=EA=B8=B0=EA=B4=80=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=EC=8B=9C=20=EA=B1=B4=EC=84=A4=EC=82=AC=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=88=98=EC=A0=95=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20->=20=EC=86=8D=EB=8F=84=EA=B0=9C=EC=84=A0?= =?UTF-8?q?=20=ED=95=84=EC=9A=94(=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=A3=BC?= =?UTF-8?q?=EC=86=8C=20=EA=B2=80=EC=83=89=EC=9C=BC=EB=A1=9C=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=EC=8B=9C=20=EC=B2=98=EB=A6=AC=EC=8B=9C=EA=B0=84=20?= =?UTF-8?q?=EA=B8=B8=EC=96=B4=EC=A7=90)=20-=20=EC=95=84=EC=9D=B4=EB=94=94/?= =?UTF-8?q?=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=A0=84=EC=B2=B4=20=EB=85=B8?= =?UTF-8?q?=EC=B6=9C=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20-?= =?UTF-8?q?=20=EC=95=84=EC=9D=B4=EB=94=94(=EB=B6=80=EC=84=9C)/=20=EC=9D=B4?= =?UTF-8?q?=EB=A9=94=EC=9D=BC=20=EC=99=B8=20=EC=A0=95=EB=B3=B4=20=EC=95=88?= =?UTF-8?q?=20=EB=B3=B4=EC=9D=B4=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?-=20=EC=97=85=EC=B2=B4=EB=AA=85=20=EC=99=B8=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EB=94=94/=20=EC=9D=B4=EB=A9=94=EC=9D=BC=EB=A1=9C=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=9A=94=EC=B2=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../input/DrillingInputController.java | 5 +- .../impl/DrillingInputServiceImpl.java | 58 ++++++------------- .../impl/DrillingInquiryServiceImpl.java | 5 -- .../drilling/input/DrillingInputMapper.xml | 43 +++++++++++++- .../views/drilling/input/drilling_input.jsp | 32 ++++++---- 5 files changed, 81 insertions(+), 62 deletions(-) diff --git a/src/main/java/geoinfo/drilling/input/DrillingInputController.java b/src/main/java/geoinfo/drilling/input/DrillingInputController.java index 1d4f1bf2..9284c921 100644 --- a/src/main/java/geoinfo/drilling/input/DrillingInputController.java +++ b/src/main/java/geoinfo/drilling/input/DrillingInputController.java @@ -189,7 +189,10 @@ public class DrillingInputController { jsonObject.put("result", new JSONObject().put("list", jsonListObject)); } else { JSONObject result = new JSONObject(); + long start = System.currentTimeMillis(); result.put("list", drillingInputService.selectConstructCompanyList(params)); + long end = System.currentTimeMillis(); + LOGGER.info("(CONTROLLER) selectConstructCompanyList 실행시간: {} ms", (end - start)); jsonObject.put("resultMessage", "OK"); jsonObject.put("resultCode", 200); @@ -214,7 +217,7 @@ public class DrillingInputController { JSONObject jsonObject = new JSONObject(); strUtil sUtil = new strUtil(); - String userid = sUtil.checkNull((String)params.get("encUserid")); + String userid = sUtil.checkNull((String)params.get("userid")); JSONArray jsonListObject = new JSONArray(); diff --git a/src/main/java/geoinfo/drilling/input/service/impl/DrillingInputServiceImpl.java b/src/main/java/geoinfo/drilling/input/service/impl/DrillingInputServiceImpl.java index d4340583..913bc47b 100644 --- a/src/main/java/geoinfo/drilling/input/service/impl/DrillingInputServiceImpl.java +++ b/src/main/java/geoinfo/drilling/input/service/impl/DrillingInputServiceImpl.java @@ -10,6 +10,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.json.simple.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import egovframework.rte.psl.dataaccess.util.EgovMap; -import geoinfo.com.CryptoUtil; +import geoinfo.drilling.input.DrillingInputController; import geoinfo.drilling.input.service.DrillingInputMapper; import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.drilling.inquiry.service.DrillingInquiryService; @@ -29,6 +31,7 @@ import ictway.comm.util.strUtil; @Service("drillingInputService") public class DrillingInputServiceImpl implements DrillingInputService { + private static final Logger LOGGER = LoggerFactory.getLogger(DrillingInputServiceImpl.class); @Resource(name="drillingInputMapper") private DrillingInputMapper drillingInputMapper; @@ -79,6 +82,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { public HashMap drillingInputAdd(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception { String userId = (String)request.getSession().getAttribute("USERID"); + String addConstUserid = MyUtil.getStringFromObject( params.get("constUserid") ); HashMap spGetMasterCompanyDistrictParams = getOrganizationUserGlGmGsGfCodes(userId); @@ -89,12 +93,6 @@ public class DrillingInputServiceImpl implements DrillingInputService { params.put("masterCompanyThCode", MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") )); params.put("masterCompanyName", MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gf") )); - // 건설사 계정 연결(암호화된 userid 복호화) - String encryptId = MyUtil.getStringFromObject( params.get("encUserid") ); - String decryptId = CryptoUtil.decryptQuickAES(encryptId); - - params.put("constUserid", decryptId); - try { Long constCompanyCode = drillingInputMapper.findConstCompanyCodeByConstCompanyName(params); @@ -106,9 +104,8 @@ public class DrillingInputServiceImpl implements DrillingInputService { * @constUserId 복호화된 기업 사용자 아이디 * @holeNumber 시추공 수(기업사용자 프로젝트 등록시 필수입력값으로, 신규생성임을 표시하기 위해 -999 입력) */ - if (!"".equals(encryptId)) { - String constUserId = decryptId; - params.put("constUserId", constUserId); + if (!"".equals(addConstUserid)) { + params.put("constUserId", addConstUserid); params.put("holeNumber", -999); saveAndInsertMeta(params, request, response); } @@ -146,26 +143,11 @@ public class DrillingInputServiceImpl implements DrillingInputService { @Override public List selectConstructCompanyList(HashMap params) throws Exception { + long start = System.currentTimeMillis(); List list = new ArrayList(); list = drillingInputMapper.selectConstructCompanyList(params); - - for (EgovMap map : list) { - - String userid = (String) map.get("userid"); - if (userid == null) continue; - - // 암호화 -// String encryptId = CryptoUtil.encryptAES256(userid, secret_key); - String encryptId = CryptoUtil.encryptQuickAES(userid); - // userid 제거 - map.remove("userid"); - - // 복호화 (검증 or 필요 시) -// String decryptId = CryptoUtil.decryptAES256(encryptId, secret_key); - - map.put("encryptId", encryptId); -// map.put("decryptId", decryptId); - } + long end = System.currentTimeMillis(); + LOGGER.info("( SERVICE ) selectConstructCompanyList 실행시간: {} ms", (end - start)); return list; } @@ -173,10 +155,6 @@ public class DrillingInputServiceImpl implements DrillingInputService { @Override public Map selectConstructUserInfo(HashMap params) throws Exception { Map result = new HashMap(); - // 건설사 계정 연결(암호화된 userid 복호화) - String encryptId = MyUtil.getStringFromObject( params.get("encUserid") ); - String decryptId = CryptoUtil.decryptQuickAES(encryptId); - params.put("userid", decryptId); Map infoData = loginMapper.selectWebMemberIn(params); @@ -360,10 +338,8 @@ public class DrillingInputServiceImpl implements DrillingInputService { findConstCompanyCodeByConstCompanyNameParams.put("masterCompanyName", MyUtil.getStringFromObject( findConstCompanyCodeByConstCompanyNameParams.get("v_gf") )); // 건설사 계정 연결(암호화된 userid 복호화) - String encryptId = MyUtil.getStringFromObject( params.get("encUserid") ); - String decryptId = CryptoUtil.decryptQuickAES(encryptId); - - params.put("constUserid", decryptId); + String addConstUserid = MyUtil.getStringFromObject( params.get("constUserid") ); + params.put("constUserid", addConstUserid); try { @@ -411,7 +387,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { if (oldTempConstructSiteInfo.get("constUserid") != null && !"".equals(oldTempConstructSiteInfo.get("constUserid"))) { orgConstUserid = sUtil.checkNull((String) oldTempConstructSiteInfo.get("constUserid")); } - /** encryptId 값 여부: 수정하면서 건설사 지정 처리 여부 + /** addConstUserid 값 여부: 수정하면서 건설사 지정 처리 여부 * 1) encryptId == "" && orgConstUserid == "" : 기지정 하지 않았고 새로 지정하지 않음 -> spUdtTblCsi 호출 * 2) encryptId == "" && orgConstUserid != "" : 기지정했는데 미선정으로 수정 -> TEMP_META_~, TEMP_PROJECT_~ 삭제 그리고 TEMP_CONSTRUCT_~ UPDATE 완료 후 spUdtTblCsi 호출 * 3) encryptId != "" && orgConstUserid == "" : 기지정 하지 않았는데 새로 지정함 -> SaveAndInsertMeta 호출. (기존에 생성된 PROJECT_CODE 없음, TEMP_META~, TEMP_PROJECT~에 추가) 그리고 spUdtTblCsi 호출 @@ -421,7 +397,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { * 5-2) orgConstUser가 입력을 전임 -> 기지정계정 삭제하고 SaveAndInsertMeta 호출. (기존에 생성된 PROJECT_CODE 없음, TEMP_META~, TEMP_PROJECT~에 추가) 그리고 spUdtTblCsi 호출 */ - if ("".equals(encryptId)) { + if ("".equals(addConstUserid)) { if ("".equals(orgConstUserid)) { // 1) // drillingInputMapper.spUdtTblCsi(spUdtTblCsiParams); } else { // 2) @@ -433,7 +409,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { } else { // !"".equals(encryptId) if (orgConstUserid != null && "".equals(orgConstUserid)) { // 3) EgovMap tbl = null; // cid로 발주기관 등록 건설현장 정보 조회(PROJECT_CODE 취득) - String constUserId = decryptId; + String constUserId = addConstUserid; params.put("constUserId", constUserId); tbl = drillingInputMapper.getItemByCid( params ); if (tbl.get("projectCode") != null && !"".equals(tbl.get("projectCode"))) { // PROJECT_CODE가 존재하면 입력중인 프로젝트. @@ -446,7 +422,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { saveAndInsertMeta(params, request, response); drillingInputMapper.spUdtTblCsi(spUdtTblCsiParams); } else { // !"".equals(orgConstUserId) - if (encryptId.equals(orgConstUserid)) { // 4) + if (addConstUserid.equals(orgConstUserid)) { // 4) } else { // !encryptId.equals(orgConstUserid) 5) // 기업사용자 입력 진행 여부: !NULL -> 입력 전, NULL -> 입력 중(삭제불가) EgovMap constCompanyProjectWriting = drillingInputMapper.selectConstructCompanyProjectWriting(oldTempConstructSiteInfo); @@ -459,7 +435,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { deleteTempProjectInfo(oldTempConstructSiteInfo); params.put("holeNumber", -999); params.put("constProjectCode", oldTempConstructSiteInfo.get("projectCode")); // 기존에 부여된 PROJECT_CODE 유지 - params.put("constUserId", decryptId); // 새로 선정한 건설사계정 + params.put("constUserId", addConstUserid); // 새로 선정한 건설사계정 saveAndInsertMeta(params, request, response); } } diff --git a/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java b/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java index f835f238..daa7c781 100644 --- a/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java +++ b/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java @@ -290,11 +290,6 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { data.put("orgConstUserId", orgConstUserId); } - String encryptId = ""; - if (data.get("constUserid")!= null /*&& !"".equals(data.get("constUserid"))*/) { - encryptId = CryptoUtil.encryptQuickAES((String) data.get("constUserid")); - data.put("constUserid", encryptId); - } Long nConstCompanyCodeKey = MyUtil.getLongFromObject(data.get("constCompanyCode")); if( nConstCompanyCodeKey != null ) { params.put("constCompanyCode", nConstCompanyCodeKey); diff --git a/src/main/resources/egovframework/sqlmap/mapper/drilling/input/DrillingInputMapper.xml b/src/main/resources/egovframework/sqlmap/mapper/drilling/input/DrillingInputMapper.xml index 6626eb40..f2c18bf1 100644 --- a/src/main/resources/egovframework/sqlmap/mapper/drilling/input/DrillingInputMapper.xml +++ b/src/main/resources/egovframework/sqlmap/mapper/drilling/input/DrillingInputMapper.xml @@ -74,10 +74,8 @@ SELECT TRIM(wmi.COMPANY_NAME) AS COMPANY_NAME, wmi.USERID, - SUBSTR(wmi.USERID, 1, 2) || '****' || SUBSTR(wmi.USERID, LENGTH(wmi.USERID)-1, 2) AS MaskedID, - TRIM(wmi.NEW_ADDRESS) AS NEW_ADDRESS, TRIM(wmi.PART_NAME) AS PART_NAME, - wmi.COMPANY_REGIST_NO + wmi.EMAIL FROM web_member_in wmi WHERE @@ -85,6 +83,45 @@ and wmi.COMPANY_NAME NOT IN ('111', 'a') and wmi.COMPANY_NAME is not NULL and wmi.COMPANY_NAME LIKE '%' || #{companyName} || '%' + UNION + SELECT + TRIM(wmi.COMPANY_NAME) AS COMPANY_NAME, + wmi.USERID, + TRIM(wmi.PART_NAME) AS PART_NAME, + wmi.EMAIL + FROM + web_member_in wmi + WHERE + wmi.CLS = 1 + and wmi.COMPANY_NAME NOT IN ('111', 'a') + and wmi.COMPANY_NAME is not NULL + and wmi.USER_NAME like '%' || #{companyName} || '%' + UNION + SELECT + TRIM(wmi.COMPANY_NAME) AS COMPANY_NAME, + wmi.USERID, + TRIM(wmi.PART_NAME) AS PART_NAME, + wmi.EMAIL + FROM + web_member_in wmi + WHERE + wmi.CLS = 1 + and wmi.COMPANY_NAME NOT IN ('111', 'a') + and wmi.COMPANY_NAME is not NULL + and wmi.USERID like '%' || #{companyName} || '%' + UNION + SELECT + TRIM(wmi.COMPANY_NAME) AS COMPANY_NAME, + wmi.USERID, + TRIM(wmi.PART_NAME) AS PART_NAME, + wmi.EMAIL + FROM + web_member_in wmi + WHERE + wmi.CLS = 1 + and wmi.COMPANY_NAME NOT IN ('111', 'a') + and wmi.COMPANY_NAME is not NULL + and wmi.EMAIL like '%' || #{companyName} || '%' - +