Compare commits

..

No commits in common. "2856b4a95683649c12346862a088a35596dad04b" and "19dc7dd29e4b001d882325acd077ade9efd76bca" have entirely different histories.

6 changed files with 217 additions and 357 deletions

View File

@ -46,7 +46,6 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
import geoinfo.com.WebConfirm; import geoinfo.com.WebConfirm;
import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.map.mapControl.service.MapControlService; import geoinfo.map.mapControl.service.MapControlService;
import geoinfo.regi.projectList.ProjectListController;
import geoinfo.regi.selectClassInfo.service.SelectClassService; import geoinfo.regi.selectClassInfo.service.SelectClassService;
import geoinfo.regi.status.service.RegiPageService; import geoinfo.regi.status.service.RegiPageService;
import geoinfo.regi.util.exportGeotechnicalPointShp2; import geoinfo.regi.util.exportGeotechnicalPointShp2;
@ -68,7 +67,6 @@ public class DrillingInputController {
@Autowired @Autowired
DrillingInputService drillingInputService; DrillingInputService drillingInputService;
@RequestMapping(value = "/drilling/input.do") @RequestMapping(value = "/drilling/input.do")
@ -421,5 +419,4 @@ public class DrillingInputController {
return jSONOResponse; return jSONOResponse;
} }
} }

View File

@ -6,7 +6,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@ -15,13 +14,13 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
public interface DrillingInputService { public interface DrillingInputService {
HashMap<String, Object> getOrganizationUserGlGmGsGfCodes(String userId) throws Exception; HashMap<String, Object> getOrganizationUserGlGmGsGfCodes(String userId) throws Exception;
HashMap<String, Object> drillingInputAdd(HttpServletRequest request, HttpServletResponse response, HashMap<String, Object> params) throws Exception; HashMap<String, Object> drillingInputAdd(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
List<EgovMap> selectConstructCompanyList(HashMap<String, Object> params) throws Exception; List<EgovMap> selectConstructCompanyList(HashMap<String, Object> params) throws Exception;
Map<String, Object> selectConstructUserInfo(HashMap<String, Object> params) throws Exception; Map<String, Object> selectConstructUserInfo(HashMap<String, Object> params) throws Exception;
void getDepartments(HttpServletRequest request, HashMap<String, Object> params, JSONObject jsonResponse) throws Exception; void getDepartments(HttpServletRequest request, HashMap<String, Object> params, JSONObject jsonResponse) throws Exception;
HashMap<String, Object> updateProjectCodeAndProjectStateCodeByCid(HttpServletRequest request, HashMap<String, Object> params) throws Exception; HashMap<String, Object> updateProjectCodeAndProjectStateCodeByCid(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> updateProjectCodeAndProjectStateCodeByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception; HashMap<String, Object> updateProjectCodeAndProjectStateCodeByProjectCode(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
HashMap<String, Object> drillingInputModify(HttpServletRequest request, HttpServletResponse response, HashMap<String, Object> params) throws Exception; HashMap<String, Object> drillingInputModify(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
} }

View File

@ -1,13 +1,5 @@
package geoinfo.drilling.input.service.impl; package geoinfo.drilling.input.service.impl;
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.regi.projectList.service.ProjectListService;
import geoinfo.util.MyUtil;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -16,16 +8,19 @@ import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.psl.dataaccess.util.EgovMap;
import geoinfo.com.CryptoUtil; import geoinfo.com.CryptoUtil;
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.util.MyUtil;
@Service("drillingInputService") @Service("drillingInputService")
public class DrillingInputServiceImpl implements DrillingInputService { public class DrillingInputServiceImpl implements DrillingInputService {
@ -38,15 +33,6 @@ public class DrillingInputServiceImpl implements DrillingInputService {
@Autowired @Autowired
DrillingInquiryService drillingInquiryService; DrillingInquiryService drillingInquiryService;
@Resource(name ="commonService")
private CommonService commonService;
@Resource(name = "projectListService")
private ProjectListService projectListService;
/** /**
* Gl Gm Gs Gf Codes * Gl Gm Gs Gf Codes
@ -76,11 +62,12 @@ public class DrillingInputServiceImpl implements DrillingInputService {
@Override @Override
public HashMap<String, Object> drillingInputAdd(HttpServletRequest request, HttpServletResponse response, HashMap<String, Object> params) throws Exception { public HashMap<String, Object> drillingInputAdd(HttpServletRequest request, HashMap<String, Object> params) throws Exception {
String userId = (String)request.getSession().getAttribute("USERID"); String userId = (String)request.getSession().getAttribute("USERID");
HashMap<String, Object> spGetMasterCompanyDistrictParams = getOrganizationUserGlGmGsGfCodes(userId); HashMap<String, Object> spGetMasterCompanyDistrictParams = getOrganizationUserGlGmGsGfCodes(userId);
params.put("userId", userId); params.put("userId", userId);
@ -100,12 +87,6 @@ public class DrillingInputServiceImpl implements DrillingInputService {
Long constCompanyCode = drillingInputMapper.findConstCompanyCodeByConstCompanyName(params); Long constCompanyCode = drillingInputMapper.findConstCompanyCodeByConstCompanyName(params);
params.put("constCompanyCode", constCompanyCode); params.put("constCompanyCode", constCompanyCode);
drillingInputMapper.spAddTblCsi(params); 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; return params;
} catch (SQLException e) { } catch (SQLException e) {
throw new Exception( e.getMessage() ); throw new Exception( e.getMessage() );
@ -297,7 +278,7 @@ public class DrillingInputServiceImpl implements DrillingInputService {
@Override @Override
public HashMap<String, Object> drillingInputModify(HttpServletRequest request, HttpServletResponse response, HashMap<String, Object> params) public HashMap<String, Object> drillingInputModify(HttpServletRequest request, HashMap<String, Object> params)
throws Exception { throws Exception {
// TODO Auto-generated method stub // TODO Auto-generated method stub
String userId = (String)request.getSession().getAttribute("USERID"); String userId = (String)request.getSession().getAttribute("USERID");
@ -342,30 +323,6 @@ public class DrillingInputServiceImpl implements DrillingInputService {
spUdtTblCsiParams.put("modUserid", userId); spUdtTblCsiParams.put("modUserid", userId);
spUdtTblCsiParams.put("userId", userId); spUdtTblCsiParams.put("userId", userId);
drillingInputMapper.spUdtTblCsi(spUdtTblCsiParams); 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; return spUdtTblCsiParams;
} catch (SQLException e) { } catch (SQLException e) {
throw new Exception( e.getMessage() ); throw new Exception( e.getMessage() );
@ -390,65 +347,4 @@ public class DrillingInputServiceImpl implements DrillingInputService {
} }
/**
* , () ,
*/
public ModelAndView saveAndInsertMeta(@RequestParam HashMap<String, Object> params, HttpServletRequest request, HttpServletResponse response) throws Exception {
HashMap<String,Object> getProviderInfoParams = new HashMap<String, Object>();
getProviderInfoParams.put("userid", params.get("constUserId"));
EgovMap constUserInfo = commonService.getProviderInfo(getProviderInfoParams); // 기업사용자 회원정보
// 1. 전달받은 파라미터 설정
HashMap<String, Object> metaParams = new HashMap<String, Object>();
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 = projectListService.insertMeta(metaParams, model, request, response); // insertMeta 호출 시 발생되는 오류는 조치하기.
return model;
}
/**
* ,
*/
public ModelAndView deleteProject(@RequestParam HashMap<String, Object> params, HttpServletRequest request, HttpServletResponse response) throws Exception {
// 1. 전달받은 파라미터 설정
HashMap<String, Object> deleteParams = new HashMap<String, Object>();
deleteParams.put("REPORT_TYPE", "CH");
deleteParams.put("PROJECT_CODE", params.get("constProjectCode")); // 프로젝트코드
// 2. ProjectListController의 deleteAll 호출
ModelAndView model = new ModelAndView();
model = projectListService.deleteAll(deleteParams, model, request, response); // deleteAll 호출 시 발생되는 오류는 조치하기.
return model;
}
} }

View File

@ -3,6 +3,7 @@ package geoinfo.regi.projectList;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -11,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -118,14 +120,215 @@ public class ProjectListController {
// 지반정보등록 // 지반정보등록
@RequestMapping(value = "/insertMeta.do") @RequestMapping(value = "/insertMeta.do")
public ModelAndView insertMeta(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception{ public ModelAndView insertMeta(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception{
masterService.insertMeta(params, model, request, response); UrlPathHelper urlPathHelper = new UrlPathHelper();
String topPath = urlPathHelper.getOriginatingRequestUri(request);
//변수선언
WebUtil wUtil = new WebUtil();
strUtil sUtil = new strUtil();
int affectRow = 0;
String rUrl = sUtil.checkNull(String.valueOf(params.get("rUrl")));
//request
String oPROJECT_CODE = sUtil.checkNull(String.valueOf(params.get("PROJECT_CODE")));
String oINPUT_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("INPUT_COMPANY")));
String oDEPT = sUtil.checkNull(String.valueOf(request.getParameter("DEPT")));
String oADMIN_NAME = sUtil.checkNull(String.valueOf(request.getParameter("ADMIN_NAME")));
String oEMAIL = sUtil.checkNull(String.valueOf(request.getParameter("EMAIL")));
String oTEL = sUtil.checkNull(String.valueOf(params.get("TEL")));
String oPHONE = sUtil.checkNull(String.valueOf(params.get("PHONE")));
String oSEARCHDATE = sUtil.checkNull(String.valueOf(params.get("SEARCHDATE")));
String oINPUTDATE = wUtil.getToday();
String oPROJECT_NAME = sUtil.checkNull(String.valueOf(request.getParameter("PROJECT_NAME")));
String oHOLE_NUMBER = sUtil.checkNull(String.valueOf(params.get("HOLE_NUMBER")));
String oHOLE_ADMIN_NAME = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_ADMIN_NAME")));
String oHOLE_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_COMPANY")));
String oHOLE_TYPE = "Boring";
String oHOLE_SPOT_SD = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SD")));
String oHOLE_SPOT_SGG = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SGG")));
String oHOLE_SPOT = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_SPOT")));
String oREMARK = sUtil.checkNull(String.valueOf(request.getParameter("REMARK")));
String oREPORT_TYPE =sUtil.checkNull(String.valueOf(params.get("REPORT_TYPE")));
String oTEMP_CONSTRUCT_SITE_INFO_CID =sUtil.checkNull(String.valueOf(params.get("TEMP_CONSTRUCT_SITE_INFO-CID"))); // 발주기관에서 생성한 프로젝트 식별 번호. TEMP_CONSTRUCT_SITE_INFO 테이블의 cid 컬럼 값.
if("".equals(oPROJECT_CODE)){
HashMap prjCd = new HashMap();
prjCd=masterService.getProjectCd(params);
oPROJECT_CODE=(String)prjCd.get("P_CODE")+prjCd.get("P_NUM");
//System.out.println(oREPORT_TYPE);
params.put("PROJECT_CODE", oPROJECT_CODE);
params.put("PROJECT_NAME", oPROJECT_NAME);
params.put("INPUT_COMPANY", oINPUT_COMPANY);
params.put("DEPT", oDEPT);
params.put("ADMIN_NAME", oADMIN_NAME);
params.put("EMAIL", oEMAIL);
params.put("TEL", oTEL);
params.put("PHONE", oPHONE);
params.put("SEARCHDATE", oSEARCHDATE);
params.put("INPUTDATE", oINPUTDATE);
params.put("HOLE_NUMBER", oHOLE_NUMBER);
params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME);
params.put("HOLE_COMPANY", oHOLE_COMPANY);
params.put("HOLE_TYPE", oHOLE_TYPE);
params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD);
params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("HOLE_SPOT", oHOLE_SPOT);
params.put("REMARK", oREMARK);
params.put("REPORT_TYPE", oREPORT_TYPE);
params.put("USERID",request.getSession().getAttribute("USERID"));
params.put("MODUSERID",request.getSession().getAttribute("USERID"));
//System.out.println("!!!!!!!!!!!params!!!!!!!!!!!!!!!+"+oPROJECT_NAME);
//TEMP_PROJECT_INFO
params.put("PROJECT_START_SPOT_SD", oHOLE_SPOT_SD);
params.put("PROJECT_START_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("PROJECT_START_SPOT", oHOLE_SPOT);
params.put("PROJECT_END_SPOT_SD", oHOLE_SPOT_SD);
params.put("PROJECT_END_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("PROJECT_WORK_COMPANY", oHOLE_COMPANY);
params.put("PROJECT_HOLE_NUMBER", oHOLE_NUMBER);
params.put("STATE", "4");
params.put("REPORT_TYPE", "CH");
// 사업명(프로젝트 명) 중복 검사를 수행한다.
ArrayList<HashMap<String, Object>> arrProjectCodeAndProjectName = masterService.getProjectCodeAndProjectNameByProjectName(params);
if( 0 < arrProjectCodeAndProjectName.size() ) {
//여기에서 프로젝트 중복되어서 다른 이름으로 지정해야한다는 메시지를 사용자에게 보여줘야 함.
model.addObject("result", "false");
model.addObject("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요.");
model.setViewName("redirect:/index_db.do");
return model;
}
affectRow = masterService.insertMeta(params);
masterService.insertProject(params);
if("/insertMeta.do".equals(topPath)){
rUrl = "/meta_info.do?REPORT_TYPE="+oREPORT_TYPE+"&PROJECT_CODE="+oPROJECT_CODE;
}
}else{
params.put("PROJECT_CODE", oPROJECT_CODE);
params.put("PROJECT_NAME", oPROJECT_NAME);
params.put("INPUT_COMPANY", oINPUT_COMPANY);
params.put("DEPT", oDEPT);
params.put("ADMIN_NAME", oADMIN_NAME);
params.put("EMAIL", oEMAIL);
params.put("TEL", oTEL);
params.put("PHONE", oPHONE);
params.put("SEARCHDATE", oSEARCHDATE);
params.put("INPUTDATE", oINPUTDATE);
params.put("HOLE_NUMBER", oHOLE_NUMBER);
params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME);
params.put("HOLE_COMPANY", oHOLE_COMPANY);
params.put("HOLE_TYPE", oHOLE_TYPE);
params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD);
params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("HOLE_SPOT", oHOLE_SPOT);
params.put("REMARK", oREMARK);
params.put("REPORT_TYPE", oREPORT_TYPE);
params.put("USERID",request.getSession().getAttribute("USERID"));
affectRow =masterService.updateMeta(params);
}
if( oTEMP_CONSTRUCT_SITE_INFO_CID != null ) {
params.put("PROJECT_CODE", oPROJECT_CODE);
params.put("CID", oTEMP_CONSTRUCT_SITE_INFO_CID);
params.put("PROJECT_STATE_CODE", 1); // 입력상태 1 = 입력 중 하드코딩되어있음. src\main\java\geoinfo\drilling\inquiry\service\impl\DrillingInquiryServiceImpl.java의 drillingInquiryList 메소드 참고.
drillingInputService.updateProjectCodeAndProjectStateCodeByCid(request, params);
// TEMP_CONSTRUCT_SITE_INFO 테이블의 cid 해당하는 record의 PROJECT_CODE를 update한다.
}
model.addObject("result", "true");
model.addObject("oREPORT_TYPE", oREPORT_TYPE);
model.addObject("affectRow", affectRow);
model.addObject("oPROJECT_CODE", oPROJECT_CODE);
model.setViewName("redirect:/index_db.do");
model.addObject("rUrl",rUrl);
return model; return model;
} }
// 지반정보등록 (관리자) // 지반정보등록 (관리자)
@RequestMapping(value = "/deleteAll.do") @RequestMapping(value = "/deleteAll.do")
public ModelAndView deleteAll(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception{ public ModelAndView deleteAll(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception{
masterService.deleteAll(params, model, request, response); strUtil sUtil = new strUtil();
int affectRow = 0;
UrlPathHelper urlPathHelper = new UrlPathHelper();
String topPath = urlPathHelper.getOriginatingRequestUri(request);
String PROJECT_CODE = sUtil.checkNull(String.valueOf(params.get("PROJECT_CODE")));
// 2018-11-07 모의해킹 조치. 조현석 차장.
// 1. 프로젝트 코드 검사 유무
if ( null != PROJECT_CODE && ! "".equals(PROJECT_CODE)) {
// 2. 관리자인지.
boolean ischk = false;
if ( request.getSession().getAttribute("CLS") != null && "9".equals(request.getSession().getAttribute("CLS") ) ) {
ischk = true;
}
if ( request.getSession().getAttribute("CLS") != null && "1".equals(request.getSession().getAttribute("CLS") ) ) {
// 기업회원일 경우 본인 프로젝트인지 확인.
String userId = (String) request.getSession().getAttribute("USERID");
if ( userId != null && ! "".equals(userId)) {
HashMap projectMap = masterService.getInfo(params);
if ( projectMap != null && ! projectMap.isEmpty() ) {
String tmpID = (String) projectMap.get("USERID");
System.out.println("userId - " + userId + " , tmpID = " + tmpID );
// 프로젝트 생성 아이디가 같다면 삭제 권한 가능..
if ( userId.equals( tmpID ) ) {
ischk = true;
}
}
}
//getInfo
}
//3. 권한이 있는 경우에만 삭제가 가능하다.
if ( ischk ) {
String tableTemp[] = {"TEMP_META_INFO", "TEMP_PROJECT_INFO", "TEMP_TOPO_GEOLOGY", "TEMP_HEADER", "TEMP_HEADER_CORE",
"TEMP_SELECTCLASS_INFO", "TEMP_REFERENCE", "TEMP_LAYER_INFO", "TEMP_SPT", "TEMP_RQD", "TEMP_DSF",
"TEMP_FIELD_PRESSUREMETER", "TEMP_SLICKENSIDE_INFO", "TEMP_Q", "TEMP_RMR", "TEMP_FIELD_WATERPRESSURE",
"TEMP_WP_TEST", "TEMP_FIELD_PERMEABILITY", "TEMP_FIELDPER_SUB", "TEMP_FIELD_CONE_PENETRATION",
"TEMP_CONE_PENETRATION_IMAGES", "TEMP_SAMPLE_INFO", "TEMP_CLASSIFICATION", "TEMP_CONSOLIDATION_USUAL",
"TEMP_CONSOLIDATION", "TEMP_CBR_COMPAC", "TEMP_UNCONFINED_USUAL", "TEMP_TRIAXIAL_USUAL", "TEMP_TRIAXIAL_CU",
"TEMP_TRIAXIAL_UU", "TEMP_RESONANT_USUAL", "TEMP_RESONANT", "TEMP_REPEATED_TRIAXIAL_USUAL",
"TEMP_REPEATED_TRIAXIAL", "TEMP_ROCK_POINTLOAD", "TEMP_ROCK_JOINTSHEAR", "TEMP_ROCK_UNIAXIAL",
"TEMP_ROCK_TRIAXIAL", "TEMP_ROCK_RESONANT_USUAL", "TEMP_ROCK_RESONANT", "TEMP_ROCK_REPEATED_TRIAXIAL_U",
"TEMP_ROCK_REPEATED_TRIAXIAL", "TEMP_EXPERT_OPINION", "TEMP_RESISTIVITY_SURVEY", "TEMP_RESISTIVITY_SURVEY_SUB",
"TEMP_RESISTIVITY_SURVEY_FILE", "TEMP_REFRACTION_SURVEY", "TEMP_REFRACTION_SURVEY_SUB",
"TEMP_REFRACTION_SURVEY_FILE", "TEMP_BOREHOLE_WAVE", "TEMP_BOREHOLE_WAVE_PS", "TEMP_DOWNHOLE",
"TEMP_DOWNHOLE_PS", "TEMP_DENSITY", "TEMP_DENSITY_SUB"};
params.put("PROJECT_CODE", PROJECT_CODE);
for(int i = 0; i<tableTemp.length;i++){
params.put("tableName", tableTemp[i]);
affectRow += masterService.deleteProject(params);
}
affectRow += masterService.deleteWebData(params);
//발주기관에서 등록한 프로젝트와 연결이 된 경우, 해당 내용을 초기화 한다.
params.put("PROJECT_CODE", null);
params.put("WHERE_PROJECT_CODE", PROJECT_CODE);
params.put("PROJECT_STATE_CODE", 0); // 입력상태 0 = 미입력. 하드코딩되어있음 -> src\main\java\geoinfo\drilling\inquiry\service\impl\DrillingInquiryServiceImpl.java의 drillingInquiryList 메소드 참고.
drillingInputService.updateProjectCodeAndProjectStateCodeByProjectCode(request, params);
model.addObject("MODE", "DEL");
model.addObject("affectRow", affectRow);
model.addObject("PROJECT_CODE", PROJECT_CODE);
model.setViewName("redirect:/index_db.do");
} else {
model.addObject("MODE", "DEL");
model.addObject("affectRow", -1);
model.addObject("PROJECT_CODE", PROJECT_CODE);
model.setViewName("redirect:/index_db.do");
}
} else {
model.addObject("MODE", "DEL");
model.addObject("affectRow", 0);
model.addObject("PROJECT_CODE", null);
model.setViewName("redirect:/index_db.do");
}
return model; return model;
} }

View File

@ -3,18 +3,11 @@ package geoinfo.regi.projectList.service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
public interface ProjectListService { public interface ProjectListService {
//170615 //170615
public int insertMeta(HashMap<String, Object> params) throws Exception; public int insertMeta(HashMap<String, Object> params) throws Exception;
public ModelAndView insertMeta(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception;
public int insertWebData(HashMap<String, Object> params) throws Exception; public int insertWebData(HashMap<String, Object> params) throws Exception;
public int insertProject(HashMap<String, Object> params) throws Exception; public int insertProject(HashMap<String, Object> params) throws Exception;
public int updateMeta(HashMap<String, Object> params) throws Exception; public int updateMeta(HashMap<String, Object> params) throws Exception;
@ -59,7 +52,4 @@ public interface ProjectListService {
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectName(HashMap<String, Object> params); public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectName(HashMap<String, Object> params);
public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(HashMap<String, Object> params); public ArrayList<HashMap<String, Object>> getProjectCodeAndProjectNameByProjectNameFromTempMetaInfo(HashMap<String, Object> params);
public ArrayList<HashMap<String, Object>> getConstNameByProjectNameFromTempConstructSiteInfo(HashMap<String, Object> params); public ArrayList<HashMap<String, Object>> getConstNameByProjectNameFromTempConstructSiteInfo(HashMap<String, Object> params);
public ModelAndView deleteAll(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception;
} }

View File

@ -1,23 +1,14 @@
package geoinfo.regi.projectList.service.impl; package geoinfo.regi.projectList.service.impl;
import geoinfo.drilling.input.service.DrillingInputService;
import geoinfo.regi.projectList.service.ProjectListMapper; import geoinfo.regi.projectList.service.ProjectListMapper;
import geoinfo.regi.projectList.service.ProjectListService; import geoinfo.regi.projectList.service.ProjectListService;
import ictway.comm.util.strUtil;
import ictway.comm.web.WebUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.util.UrlPathHelper;
@Service("projectListService") @Service("projectListService")
public class ProjectListServiceImpl implements ProjectListService { public class ProjectListServiceImpl implements ProjectListService {
@ -25,146 +16,11 @@ public class ProjectListServiceImpl implements ProjectListService {
@Resource(name = "projectListMapper") @Resource(name = "projectListMapper")
private ProjectListMapper projectListMapper; private ProjectListMapper projectListMapper;
@Autowired
private DrillingInputService drillingInputService;
//170615 //170615
@Override @Override
public int insertMeta(HashMap<String, Object> params) throws Exception { public int insertMeta(HashMap<String, Object> params) throws Exception {
return projectListMapper.insertMeta(params); return projectListMapper.insertMeta(params);
} }
@Override
public ModelAndView insertMeta(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception {
UrlPathHelper urlPathHelper = new UrlPathHelper();
String topPath = urlPathHelper.getOriginatingRequestUri(request);
//변수선언
WebUtil wUtil = new WebUtil();
strUtil sUtil = new strUtil();
int affectRow = 0;
String rUrl = sUtil.checkNull(String.valueOf(params.get("rUrl")));
//request
String oPROJECT_CODE = sUtil.checkNull(String.valueOf(params.get("PROJECT_CODE")));
String oINPUT_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("INPUT_COMPANY")));
String oDEPT = sUtil.checkNull(String.valueOf(request.getParameter("DEPT")));
String oADMIN_NAME = sUtil.checkNull(String.valueOf(request.getParameter("ADMIN_NAME")));
String oEMAIL = sUtil.checkNull(String.valueOf(request.getParameter("EMAIL")));
String oTEL = sUtil.checkNull(String.valueOf(params.get("TEL")));
String oPHONE = sUtil.checkNull(String.valueOf(params.get("PHONE")));
String oSEARCHDATE = sUtil.checkNull(String.valueOf(params.get("SEARCHDATE")));
String oINPUTDATE = wUtil.getToday();
String oPROJECT_NAME = sUtil.checkNull(String.valueOf(request.getParameter("PROJECT_NAME")));
String oHOLE_NUMBER = sUtil.checkNull(String.valueOf(params.get("HOLE_NUMBER")));
String oHOLE_ADMIN_NAME = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_ADMIN_NAME")));
String oHOLE_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_COMPANY")));
String oHOLE_TYPE = "Boring";
String oHOLE_SPOT_SD = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SD")));
String oHOLE_SPOT_SGG = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SGG")));
String oHOLE_SPOT = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_SPOT")));
String oREMARK = sUtil.checkNull(String.valueOf(request.getParameter("REMARK")));
String oREPORT_TYPE =sUtil.checkNull(String.valueOf(params.get("REPORT_TYPE")));
String oTEMP_CONSTRUCT_SITE_INFO_CID =sUtil.checkNull(String.valueOf(params.get("TEMP_CONSTRUCT_SITE_INFO-CID"))); // 발주기관에서 생성한 프로젝트 식별 번호. TEMP_CONSTRUCT_SITE_INFO 테이블의 cid 컬럼 값.
if("".equals(oPROJECT_CODE)){
HashMap prjCd = new HashMap();
prjCd = getProjectCd(params);
oPROJECT_CODE=(String)prjCd.get("P_CODE")+prjCd.get("P_NUM");
//System.out.println(oREPORT_TYPE);
params.put("PROJECT_CODE", oPROJECT_CODE);
params.put("PROJECT_NAME", oPROJECT_NAME);
params.put("INPUT_COMPANY", oINPUT_COMPANY);
params.put("DEPT", oDEPT);
params.put("ADMIN_NAME", oADMIN_NAME);
params.put("EMAIL", oEMAIL);
params.put("TEL", oTEL);
params.put("PHONE", oPHONE);
params.put("SEARCHDATE", oSEARCHDATE);
params.put("INPUTDATE", oINPUTDATE);
params.put("HOLE_NUMBER", oHOLE_NUMBER);
params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME);
params.put("HOLE_COMPANY", oHOLE_COMPANY);
params.put("HOLE_TYPE", oHOLE_TYPE);
params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD);
params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("HOLE_SPOT", oHOLE_SPOT);
params.put("REMARK", oREMARK);
params.put("REPORT_TYPE", oREPORT_TYPE);
params.put("USERID",request.getSession().getAttribute("USERID"));
params.put("MODUSERID",request.getSession().getAttribute("USERID"));
//System.out.println("!!!!!!!!!!!params!!!!!!!!!!!!!!!+"+oPROJECT_NAME);
//TEMP_PROJECT_INFO
params.put("PROJECT_START_SPOT_SD", oHOLE_SPOT_SD);
params.put("PROJECT_START_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("PROJECT_START_SPOT", oHOLE_SPOT);
params.put("PROJECT_END_SPOT_SD", oHOLE_SPOT_SD);
params.put("PROJECT_END_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("PROJECT_WORK_COMPANY", oHOLE_COMPANY);
params.put("PROJECT_HOLE_NUMBER", oHOLE_NUMBER);
params.put("STATE", "4");
params.put("REPORT_TYPE", "CH");
// 사업명(프로젝트 명) 중복 검사를 수행한다.
ArrayList<HashMap<String, Object>> arrProjectCodeAndProjectName = getProjectCodeAndProjectNameByProjectName(params);
if( 0 < arrProjectCodeAndProjectName.size() ) {
//여기에서 프로젝트 중복되어서 다른 이름으로 지정해야한다는 메시지를 사용자에게 보여줘야 함.
model.addObject("result", "false");
model.addObject("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요.");
model.setViewName("redirect:/index_db.do");
return model;
}
affectRow = insertMeta(params);
insertProject(params);
if("/insertMeta.do".equals(topPath)){
rUrl = "/meta_info.do?REPORT_TYPE="+oREPORT_TYPE+"&PROJECT_CODE="+oPROJECT_CODE;
}
}else{
params.put("PROJECT_CODE", oPROJECT_CODE);
params.put("PROJECT_NAME", oPROJECT_NAME);
params.put("INPUT_COMPANY", oINPUT_COMPANY);
params.put("DEPT", oDEPT);
params.put("ADMIN_NAME", oADMIN_NAME);
params.put("EMAIL", oEMAIL);
params.put("TEL", oTEL);
params.put("PHONE", oPHONE);
params.put("SEARCHDATE", oSEARCHDATE);
params.put("INPUTDATE", oINPUTDATE);
params.put("HOLE_NUMBER", oHOLE_NUMBER);
params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME);
params.put("HOLE_COMPANY", oHOLE_COMPANY);
params.put("HOLE_TYPE", oHOLE_TYPE);
params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD);
params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG);
params.put("HOLE_SPOT", oHOLE_SPOT);
params.put("REMARK", oREMARK);
params.put("REPORT_TYPE", oREPORT_TYPE);
params.put("USERID",request.getSession().getAttribute("USERID"));
affectRow = updateMeta(params);
}
if( oTEMP_CONSTRUCT_SITE_INFO_CID != null ) {
params.put("PROJECT_CODE", oPROJECT_CODE);
params.put("CID", oTEMP_CONSTRUCT_SITE_INFO_CID);
params.put("PROJECT_STATE_CODE", 1); // 입력상태 1 = 입력 중 하드코딩되어있음. src\main\java\geoinfo\drilling\inquiry\service\impl\DrillingInquiryServiceImpl.java의 drillingInquiryList 메소드 참고.
drillingInputService.updateProjectCodeAndProjectStateCodeByCid(request, params);
// TEMP_CONSTRUCT_SITE_INFO 테이블의 cid 해당하는 record의 PROJECT_CODE를 update한다.
}
model.addObject("result", "true");
model.addObject("oREPORT_TYPE", oREPORT_TYPE);
model.addObject("affectRow", affectRow);
model.addObject("oPROJECT_CODE", oPROJECT_CODE);
model.setViewName("redirect:/index_db.do");
model.addObject("rUrl",rUrl);
return model;
}
@Override @Override
public int insertWebData(HashMap<String, Object> params) throws Exception { public int insertWebData(HashMap<String, Object> params) throws Exception {
return projectListMapper.insertWebData(params); return projectListMapper.insertWebData(params);
@ -369,87 +225,6 @@ public class ProjectListServiceImpl implements ProjectListService {
return projectListMapper.getConstNameByProjectNameFromTempConstructSiteInfo(params); return projectListMapper.getConstNameByProjectNameFromTempConstructSiteInfo(params);
} }
@Override
public ModelAndView deleteAll(@RequestParam HashMap<String,Object> params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception {
strUtil sUtil = new strUtil();
int affectRow = 0;
UrlPathHelper urlPathHelper = new UrlPathHelper();
String topPath = urlPathHelper.getOriginatingRequestUri(request);
String PROJECT_CODE = sUtil.checkNull(String.valueOf(params.get("PROJECT_CODE")));
// 2018-11-07 모의해킹 조치. 조현석 차장.
// 1. 프로젝트 코드 검사 유무
if ( null != PROJECT_CODE && ! "".equals(PROJECT_CODE)) {
// 2. 관리자인지.
boolean ischk = false;
if ( request.getSession().getAttribute("CLS") != null && "9".equals(request.getSession().getAttribute("CLS") ) ) {
ischk = true;
}
if ( request.getSession().getAttribute("CLS") != null && "1".equals(request.getSession().getAttribute("CLS") ) ) {
// 기업회원일 경우 본인 프로젝트인지 확인.
String userId = (String) request.getSession().getAttribute("USERID");
if ( userId != null && ! "".equals(userId)) {
HashMap projectMap = getInfo(params);
if ( projectMap != null && ! projectMap.isEmpty() ) {
String tmpID = (String) projectMap.get("USERID");
System.out.println("userId - " + userId + " , tmpID = " + tmpID );
// 프로젝트 생성 아이디가 같다면 삭제 권한 가능..
if ( userId.equals( tmpID ) ) {
ischk = true;
}
}
}
//getInfo
}
//3. 권한이 있는 경우에만 삭제가 가능하다.
if ( ischk ) {
String tableTemp[] = {"TEMP_META_INFO", "TEMP_PROJECT_INFO", "TEMP_TOPO_GEOLOGY", "TEMP_HEADER", "TEMP_HEADER_CORE",
"TEMP_SELECTCLASS_INFO", "TEMP_REFERENCE", "TEMP_LAYER_INFO", "TEMP_SPT", "TEMP_RQD", "TEMP_DSF",
"TEMP_FIELD_PRESSUREMETER", "TEMP_SLICKENSIDE_INFO", "TEMP_Q", "TEMP_RMR", "TEMP_FIELD_WATERPRESSURE",
"TEMP_WP_TEST", "TEMP_FIELD_PERMEABILITY", "TEMP_FIELDPER_SUB", "TEMP_FIELD_CONE_PENETRATION",
"TEMP_CONE_PENETRATION_IMAGES", "TEMP_SAMPLE_INFO", "TEMP_CLASSIFICATION", "TEMP_CONSOLIDATION_USUAL",
"TEMP_CONSOLIDATION", "TEMP_CBR_COMPAC", "TEMP_UNCONFINED_USUAL", "TEMP_TRIAXIAL_USUAL", "TEMP_TRIAXIAL_CU",
"TEMP_TRIAXIAL_UU", "TEMP_RESONANT_USUAL", "TEMP_RESONANT", "TEMP_REPEATED_TRIAXIAL_USUAL",
"TEMP_REPEATED_TRIAXIAL", "TEMP_ROCK_POINTLOAD", "TEMP_ROCK_JOINTSHEAR", "TEMP_ROCK_UNIAXIAL",
"TEMP_ROCK_TRIAXIAL", "TEMP_ROCK_RESONANT_USUAL", "TEMP_ROCK_RESONANT", "TEMP_ROCK_REPEATED_TRIAXIAL_U",
"TEMP_ROCK_REPEATED_TRIAXIAL", "TEMP_EXPERT_OPINION", "TEMP_RESISTIVITY_SURVEY", "TEMP_RESISTIVITY_SURVEY_SUB",
"TEMP_RESISTIVITY_SURVEY_FILE", "TEMP_REFRACTION_SURVEY", "TEMP_REFRACTION_SURVEY_SUB",
"TEMP_REFRACTION_SURVEY_FILE", "TEMP_BOREHOLE_WAVE", "TEMP_BOREHOLE_WAVE_PS", "TEMP_DOWNHOLE",
"TEMP_DOWNHOLE_PS", "TEMP_DENSITY", "TEMP_DENSITY_SUB"};
params.put("PROJECT_CODE", PROJECT_CODE);
for(int i = 0; i<tableTemp.length;i++){
params.put("tableName", tableTemp[i]);
affectRow += deleteProject(params);
}
affectRow += deleteWebData(params);
//발주기관에서 등록한 프로젝트와 연결이 된 경우, 해당 내용을 초기화 한다.
params.put("PROJECT_CODE", null);
params.put("WHERE_PROJECT_CODE", PROJECT_CODE);
params.put("PROJECT_STATE_CODE", 0); // 입력상태 0 = 미입력. 하드코딩되어있음 -> src\main\java\geoinfo\drilling\inquiry\service\impl\DrillingInquiryServiceImpl.java의 drillingInquiryList 메소드 참고.
drillingInputService.updateProjectCodeAndProjectStateCodeByProjectCode(request, params);
model.addObject("MODE", "DEL");
model.addObject("affectRow", affectRow);
model.addObject("PROJECT_CODE", PROJECT_CODE);
model.setViewName("redirect:/index_db.do");
} else {
model.addObject("MODE", "DEL");
model.addObject("affectRow", -1);
model.addObject("PROJECT_CODE", PROJECT_CODE);
model.setViewName("redirect:/index_db.do");
}
} else {
model.addObject("MODE", "DEL");
model.addObject("affectRow", 0);
model.addObject("PROJECT_CODE", null);
model.setViewName("redirect:/index_db.do");
}
return model;
}