diff --git a/src/main/java/geoinfo/drilling/input/DrillingInputController.java b/src/main/java/geoinfo/drilling/input/DrillingInputController.java index bcb02cdf..9c4541ef 100644 --- a/src/main/java/geoinfo/drilling/input/DrillingInputController.java +++ b/src/main/java/geoinfo/drilling/input/DrillingInputController.java @@ -46,6 +46,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap; import geoinfo.com.WebConfirm; import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.map.mapControl.service.MapControlService; +import geoinfo.regi.projectList.ProjectListController; import geoinfo.regi.selectClassInfo.service.SelectClassService; import geoinfo.regi.status.service.RegiPageService; import geoinfo.regi.util.exportGeotechnicalPointShp2; @@ -67,6 +68,7 @@ public class DrillingInputController { @Autowired DrillingInputService drillingInputService; + @RequestMapping(value = "/drilling/input.do") @@ -349,4 +351,5 @@ public class DrillingInputController { return jSONOResponse; } + } diff --git a/src/main/java/geoinfo/drilling/input/service/DrillingInputService.java b/src/main/java/geoinfo/drilling/input/service/DrillingInputService.java index 29dab6dc..e0b9aa5b 100644 --- a/src/main/java/geoinfo/drilling/input/service/DrillingInputService.java +++ b/src/main/java/geoinfo/drilling/input/service/DrillingInputService.java @@ -3,17 +3,18 @@ package geoinfo.drilling.input.service; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONObject; public interface DrillingInputService { HashMap getOrganizationUserGlGmGsGfCodes(String userId) throws Exception; - HashMap drillingInputAdd(HttpServletRequest request, HashMap params) throws Exception; + HashMap drillingInputAdd(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception; void getDepartments(HttpServletRequest request, HashMap params, JSONObject jsonResponse) throws Exception; HashMap updateProjectCodeAndProjectStateCodeByCid(HttpServletRequest request, HashMap params) throws Exception; HashMap updateProjectCodeAndProjectStateCodeByProjectCode(HttpServletRequest request, HashMap params) throws Exception; - HashMap drillingInputModify(HttpServletRequest request, HashMap params) throws Exception; + HashMap drillingInputModify(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception; } 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 81690c5a..e82e36f4 100644 --- a/src/main/java/geoinfo/drilling/input/service/impl/DrillingInputServiceImpl.java +++ b/src/main/java/geoinfo/drilling/input/service/impl/DrillingInputServiceImpl.java @@ -4,6 +4,8 @@ import geoinfo.drilling.input.service.DrillingInputMapper; import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.drilling.inquiry.service.DrillingInquiryService; import geoinfo.main.login.service.LoginMapper; +import geoinfo.regi.common.service.CommonService; +import geoinfo.regi.projectList.ProjectListController; import geoinfo.util.MyUtil; import java.sql.SQLException; @@ -13,12 +15,16 @@ import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; import egovframework.rte.psl.dataaccess.util.EgovMap; @@ -33,6 +39,14 @@ public class DrillingInputServiceImpl implements DrillingInputService { @Autowired DrillingInquiryService drillingInquiryService; + + @Resource(name ="commonService") + private CommonService commonService; + + @Autowired + private ProjectListController projectListController; + + /** * 발주기관 사용자의 Gl Gm Gs Gf Codes 구한다 @@ -62,12 +76,11 @@ public class DrillingInputServiceImpl implements DrillingInputService { @Override - public HashMap drillingInputAdd(HttpServletRequest request, HashMap params) throws Exception { + public HashMap drillingInputAdd(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception { String userId = (String)request.getSession().getAttribute("USERID"); - HashMap spGetMasterCompanyDistrictParams = getOrganizationUserGlGmGsGfCodes(userId); - + HashMap spGetMasterCompanyDistrictParams = getOrganizationUserGlGmGsGfCodes(userId); params.put("userId", userId); @@ -82,6 +95,12 @@ public class DrillingInputServiceImpl implements DrillingInputService { Long constCompanyCode = drillingInputMapper.findConstCompanyCodeByConstCompanyName(params); params.put("constCompanyCode", constCompanyCode); drillingInputMapper.spAddTblCsi(params); + // if( 기업사용자를 지정했다면 ) { + // String constUserId = "복호화된 기업 사용자 아이디"; + // params.put("constUserId", constUserId); + // params.put("CID", params.get("cid")); //drillingInputMapper.spAddTblCsi(params); 호출 후 생성된 cid 값 + // saveAndInsertMeta(params, request, response); + // } return params; } catch (SQLException e) { throw new Exception( e.getMessage() ); @@ -230,7 +249,7 @@ public class DrillingInputServiceImpl implements DrillingInputService { @Override - public HashMap drillingInputModify(HttpServletRequest request, HashMap params) + public HashMap drillingInputModify(HttpServletRequest request, HttpServletResponse response, HashMap params) throws Exception { // TODO Auto-generated method stub String userId = (String)request.getSession().getAttribute("USERID"); @@ -270,6 +289,30 @@ public class DrillingInputServiceImpl implements DrillingInputService { spUdtTblCsiParams.put("modUserid", userId); spUdtTblCsiParams.put("userId", userId); drillingInputMapper.spUdtTblCsi(spUdtTblCsiParams); + + // 건설현장 입력 시, 기업사용자를 지정했다면 해당 건설현장을 해당 기업사용자의 프로젝트목록에 추가한다. 로직이 복잡해질까봐 필요한 큰 로직만 넣었습니다. + // if( 기업사용자를 지정했다면 ) { + // String constUserId = "복호화된 기업 사용자 아이디"; + // params.put("constUserId", constUserId); + // String constProjectCode = 수정할 건설현장에 해당하는 TEMP_CONITRUCT_SITE_INFO.PROJECT_CODE 값을 가져온다(); 'TEMP_CONITRUCT_SITE_INFO.PROJECT_CODE 값을 가져오는 쿼리' 참고 + // if( constProjectCode 값이 존재한다면 ) { + // params.put("constProjectCode", constProjectCode); + // String tmiUserId = 'TEMP_META_INFO.USERID 값을 가져오는 쿼리 수행(); + // if( tmiUserId != null && constUserId != tmiUserId ) + //boolean isGroundInfoInputStarted = 입력 기업 사용자 입력 진행 여부 판단 쿼리 수행() == null ? true : false; '기업사용자 지반정보 입력 여부 확인' 쿼리 참고. tpi.PROJECT_CODE 값이 조회되면 삭제해도 됨. 조회 안 되면 삭제 X + // if( isGroundInfoInputStarted ) { + // params.put("constUserId", tmiUserId); // 해당 건설현장(프로젝트)의 입력자를 변경하지 않는다. + // spUdtTblCsiParams.put("message", '기업사용자 수정 불가. 이전 기업사용자가 이미 입력을 시작한 프로젝트입니다'); // 발주기관 사용자에게 해당 메시지 보여주기 + // } else { + // deleteProject(params, request, response); + // } + // } + // } else { + // params.put("constProjectCode", ""); + // } + // + // saveAndInsertMeta(params, request, response); + //} return spUdtTblCsiParams; } catch (SQLException e) { throw new Exception( e.getMessage() ); @@ -294,4 +337,65 @@ public class DrillingInputServiceImpl implements DrillingInputService { } + /** + * 건설현장 입력 시, 기업사용자(수주기관)를 선택하고 저장 시, 입력된 프로젝트가 기업사용자 프로젝트 목록에 추가하는 메서드 + */ + public ModelAndView saveAndInsertMeta(@RequestParam HashMap params, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap getProviderInfoParams = new HashMap(); + getProviderInfoParams.put("userid", params.get("constUserId")); + EgovMap constUserInfo = commonService.getProviderInfo(getProviderInfoParams); // 기업사용자 회원정보 + + // 1. 전달받은 파라미터 설정 + HashMap metaParams = new HashMap(); + metaParams.put("REPORT_TYPE", "CH"); + metaParams.put("PROJECT_CODE", params.get("constProjectCode")); // 프로젝트코드 + metaParams.put("TEMP_CONSTRUCT_SITE_INFO-CID", params.get("CID")); + + metaParams.put("INPUT_COMPANY", params.get("constCompanyName")); // 입력기관. + metaParams.put("DEPT", constUserInfo.get("partName")); // 부서명. 해당 기업 사용자의 부서명 조회해서 넣기. + metaParams.put("ADMIN_NAME", params.get("constCompanyAdmin")); // 담당자 명 + metaParams.put("EMAIL", constUserInfo.get("email")); // Email. 해당 기업 사용자 정보 조회해서 넣기. + + + + metaParams.put("TEL", params.get("constCompanyTel")); // 전화번호 <- 건설현장 입력 시 사용된 전화번호를 넣는다. + metaParams.put("PHONE", params.get("constCompanyTel")); // 핸드폰 <- 건설현장 입력 시 사용된 전화번호를 넣는다. + metaParams.put("SEARCHDATE", null); // 시추 날짜 + metaParams.put("PROJECT_NAME", params.get("constName")); // 사업명 + metaParams.put("HOLE_NUMBER", null); // 총 시추공수 + metaParams.put("HOLE_ADMIN_NAME", null); // 시추담당자 + metaParams.put("HOLE_COMPANY", null); // 시추업체 + metaParams.put("HOLE_SPOT_SD", null); // 시추지역 - 시도 + metaParams.put("HOLE_SPOT_SGG", null); // 시추지역 - 시군구 + metaParams.put("HOLE_SPOT", null); // 시추지역 - 지역명 + metaParams.put("REMARK", null); // 비고 + metaParams.put("rUrl", ""); + + // 2. ProjectListController의 insertMeta 호출 + ModelAndView model = new ModelAndView(); + + + model = projectListController.insertMeta(metaParams, model, request, response); // insertMeta 호출 시 발생되는 오류는 조치하기. + return model; + } + + /** + * 건설현장 수정 시, 특정 기업사용자에서 다른 기업사용자로 변경하면 기존 기업사용자의 프로젝트제거하는 메서드 + */ + public ModelAndView deleteProject(@RequestParam HashMap params, HttpServletRequest request, HttpServletResponse response) throws Exception { + + // 1. 전달받은 파라미터 설정 + HashMap deleteParams = new HashMap(); + deleteParams.put("REPORT_TYPE", "CH"); + deleteParams.put("PROJECT_CODE", params.get("constProjectCode")); // 프로젝트코드 + + + // 2. ProjectListController의 deleteAll 호출 + ModelAndView model = new ModelAndView(); + + model = projectListController.deleteAll(deleteParams, model, request, response); // deleteAll 호출 시 발생되는 오류는 조치하기. + return model; + } + }