건설현장 관리 > 발주기관 계정 건설현장 목록 표시 처리

main
유지인 2025-11-17 14:50:38 +09:00
parent f00701dd51
commit c17b89c984
11 changed files with 500 additions and 238 deletions

View File

@ -1,6 +1,8 @@
package geoinfo.admins.constructionProjectManagement;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -12,6 +14,7 @@ import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
@ -610,42 +613,111 @@ public class ConstructionProjectManagementController {
}
// 발주기관 프로젝트목록 가져오기
@ResponseBody
@RequestMapping(value = "/drilling-project-list", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
public String getDrillingProjectList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String,Object> params) throws Exception {
// @ResponseBody
// @RequestMapping(value = "/drilling-project-list", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
// public String getDrillingProjectList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String,Object> params) throws Exception {
// if (!UserInfo.isValidSession(request, response, "admin")) {
// return "";
// }
// JSONObject jsonObject = new JSONObject();
// strUtil sUtil = new strUtil();
//
// String projectName = sUtil.checkNull((String)params.get("projectName"));
//
// JSONArray jsonListObject = new JSONArray();
//
//// if( projectName == ""){
//// jsonObject.put("resultMessage", "OK");
//// jsonObject.put("resultCode", 200);
//// jsonObject.put("result", new JSONObject().put("list", jsonListObject));
//// } else {
// JSONObject result = new JSONObject();
// result.put("list", drillingInquiryService.drillingInquiryAutocompleteList(request, params));
//
// jsonObject.put("resultMessage", "OK");
// jsonObject.put("resultCode", 200);
// jsonObject.put("result", result);
//// }
//
// response.setContentType("application/json; charset=UTF-8"); // 응답 헤더 설정
// response.setCharacterEncoding("UTF-8"); // 응답 데이터 인코딩 설정 (중요)
//
// try (OutputStream os = response.getOutputStream()) { // OutputStream 사용
// os.write(jsonObject.toString().getBytes("UTF-8")); // UTF-8 인코딩하여 출력
// }
//
// return null; // @ResponseBody이므로 반환 값은 필요 없습니다.
// }
@RequestMapping(value = "/drilling/inquiry/list.do", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" })
@ResponseBody
public ResponseEntity<JSONObject> drillingInquiryList (
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response
) throws IOException {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
return null;
}
JSONObject jsonObject = new JSONObject();
strUtil sUtil = new strUtil();
String projectName = sUtil.checkNull((String)params.get("projectName"));
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"params" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONArray jsonListObject = new JSONArray();
if( projectName == ""){
jsonObject.put("resultMessage", "OK");
jsonObject.put("resultCode", 200);
jsonObject.put("result", new JSONObject().put("list", jsonListObject));
} else {
JSONObject result = new JSONObject();
result.put("list", drillingInquiryService.drillingInquiryAutocompleteList(request, params));
jsonObject.put("resultMessage", "OK");
jsonObject.put("resultCode", 200);
jsonObject.put("result", result);
}
response.setContentType("application/json; charset=UTF-8"); // 응답 헤더 설정
response.setCharacterEncoding("UTF-8"); // 응답 데이터 인코딩 설정 (중요)
try (OutputStream os = response.getOutputStream()) { // OutputStream 사용
os.write(jsonObject.toString().getBytes("UTF-8")); // UTF-8 인코딩하여 출력
}
return null; // @ResponseBody이므로 반환 값은 필요 없습니다.
}
JSONObject jSONOResponse = null;
try {
jSONOResponse = drillingInquiryService.drillingInquiryList( request, params );
} catch (Exception e) {
// TODO Auto-generated catch block
jSONOResponse = new JSONObject();
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage());
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"
);
int contentLength = 0;
try {
contentLength = jSONOResponse.toJSONString().getBytes("UTF-8").length;
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response.setStatus(HttpServletResponse.SC_OK);
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/json; charset=utf-8");
response.setContentLength(contentLength); // Content-Length 설정
try {
response.getWriter().print(jSONOResponse);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* >
* @param params

View File

@ -10,8 +10,12 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
@Mapper("drillingInquiryMapper")
public interface DrillingInquiryMapper {
public List<EgovMap> drillingInquiryAutocompleteList(HashMap<String, Object> params) throws SQLException;
// public List<EgovMap> drillingInquiryAutocompleteList(HashMap<String, Object> params) throws SQLException;
public Long sPCntTblCsiByKeyword(HashMap<String, Object> params) throws SQLException;
public List<EgovMap> spGetTblCsiByKeyword(HashMap<String, Object> params) throws SQLException;
public String getComCodes(HashMap<String, Object> params) throws SQLException;
public String spGetConstCompanyName(Long constCompanyCode) throws SQLException;
}

View File

@ -12,5 +12,8 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
public interface DrillingInquiryService {
List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
// List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
public JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
}

View File

@ -11,7 +11,6 @@ import geoinfo.admins.user.service.DrillingInputMapper;
import geoinfo.admins.user.service.DrillingInputService;
import geoinfo.admins.user.service.DrillingInquiryService;
import geoinfo.admins.user.service.GeneralUserMngMapper;
import geoinfo.main.login.service.LoginMapper;
@Service("drillingInputService")
public class DrillingInputServiceImpl implements DrillingInputService {

View File

@ -1,6 +1,8 @@
package geoinfo.admins.user.service.impl;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -8,6 +10,7 @@ import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.json.simple.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -18,6 +21,7 @@ import geoinfo.admins.user.service.DrillingInquiryMapper;
import geoinfo.admins.user.service.DrillingInquiryService;
import geoinfo.admins.user.service.GeneralUserMngMapper;
import geoinfo.util.MyUtil;
import oracle.sql.TIMESTAMP;
@Service("drillingInquiryService")
public class DrillingInquiryServiceImpl implements DrillingInquiryService {
@ -34,47 +38,249 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
@Autowired
DrillingInputService drillingInputService;
@Override
public List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception {
HashMap<String, Object> map = new HashMap<String, Object>();
String userid = (String)params.get("userid");
map.put("userId", userid);
// @Override
// public List<EgovMap> drillingInquiryAutocompleteList(HttpServletRequest request, HashMap<String, Object> params) throws Exception {
// HashMap<String, Object> map = new HashMap<String, Object>();
// String userid = (String)params.get("userid");
// map.put("userId", userid);
//
// EgovMap result = userMapper.selectInfo(map);
//
// int cls = MyUtil.getIntegerFromObject(result.get("cls"));
//
// if( cls == 2 ) {
// // 발주기관 계정으로 조회한 경우, 본인의 영역에 해당하는 프로젝트만 조회한다.
// String masterCompanyCode = MyUtil.getStringFromObject( result.get("masterCompanyCode") );
//
// HashMap<String, Object> spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userid);
//
// String glDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") );
// String gmDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") );
// String gsDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") );
// params.put("glDistrict", glDistrict);
// params.put("gmDistrict", gmDistrict);
// params.put("gsDistrict", gsDistrict);
//
// }
//
//
//
//
// try {
// try {
// List<EgovMap> list = drillingInquiryMapper.drillingInquiryAutocompleteList(params);
// return list;
// } catch (SQLException e) {
// String strTxt =
// "---------- BUG REPORTING START ----------" + "\n" +
// "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
// "params:[\n" + params.toString() + "\n]\n" +
// "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
// "new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
// "---------- BUG REPORTING END ----------" + "\n" +
// "";
// System.out.println(strTxt);
// throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" );
// }
//
//
// } catch (org.json.simple.parser.ParseException e) {
// // TODO Auto-generated catch block
// throw new Exception( e.getMessage() );
// }
// }
// public HashMap<String, Object> getOrganizationUserGlGmGsGfCodes(String userId) throws Exception {
//
// String projectMasterCompanyName = userMapper.findProjectMasterCompanyNameByUserid(userId);
//
// if( projectMasterCompanyName == null ) {
// throw new Exception( "발주 기관 계정에 설정된 기관이 존재하지 않습니다" );
// }
//
// HashMap<String, Object> spGetMasterCompanyDistrictParams = new HashMap<String, Object>();
//
// //String[] words = projectMasterCompanyName.split(" ");
// //String lastWord = words[words.length - 1];
// //spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", lastWord);
// spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", projectMasterCompanyName);
//
//
// drillingInputMapper.spGetMasterCompanyDistrict(spGetMasterCompanyDistrictParams);
//
// return spGetMasterCompanyDistrictParams;
//
// }
@Override
public JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception {
JSONObject jsonResponse = new JSONObject();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String userId = MyUtil.getStringFromObject( params.get("userId") );
EgovMap result = userMapper.selectInfo(map);
int cls = MyUtil.getIntegerFromObject(result.get("cls"));
if( cls == 2 ) {
// 발주기관 계정으로 조회한 경우, 본인의 영역에 해당하는 프로젝트만 조회한다.
String masterCompanyCode = MyUtil.getStringFromObject( result.get("masterCompanyCode") );
HashMap<String, Object> spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userid);
String glDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") );
String gmDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") );
String gsDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") );
params.put("glDistrict", glDistrict);
params.put("gmDistrict", gmDistrict);
params.put("gsDistrict", gsDistrict);
}
// if( userId == null){
// throw new Exception( "로그인이 필요한 서비스입니다." );
// }
try {
HashMap<String, Object> spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userId);
String masterCompanyOCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") );
String masterCompanyTwCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") );
String masterCompanyThCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") );
String masterCompanyName = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gf") );
String sortfield = "C".equals(MyUtil.getStringFromObject(params.get("constTag"))) ? "0" : "2";
String sorttype = "2";
params.put("masterCompanyOCode", masterCompanyOCode);
params.put("masterCompanyTwCode", masterCompanyTwCode);
params.put("masterCompanyThCode", masterCompanyThCode);
params.put("masterCompanyName", masterCompanyName);
params.put("sortfield", sortfield);
params.put("sorttype", sorttype);
try {
try {
List<EgovMap> list = drillingInquiryMapper.drillingInquiryAutocompleteList(params);
return list;
String keyName = "constName";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constCompanyAdmin";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constCompanyTel";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constCompanyName";
params.put(keyName, MyUtil.removeBlank( params.get(keyName) ));
keyName = "constComCodes";
if( params.get("constCompanyName") != null && !MyUtil.getStringFromObject(params.get("constCompanyName")).trim().isEmpty() ) {
params.put(keyName, drillingInquiryMapper.getComCodes(params));
} else {
params.put(keyName, null);
}
Long count = drillingInquiryMapper.sPCntTblCsiByKeyword(params);
List<EgovMap> datas = drillingInquiryMapper.spGetTblCsiByKeyword(params);
String constStateCodeKey = "constStateCode";
String constCompanyCodeKey = "constCompanyCode";
String projectStateCodeKey = "projectStateCode";
String crtDtKey = "crtDt";
String modDtKey = "modDt";
for( EgovMap data : datas ) {
Integer nConstStateCodeKey = MyUtil.getIntegerFromObject(data.get(constStateCodeKey));
if( nConstStateCodeKey == null ) {
nConstStateCodeKey = -1;
}
String constStateCodeName = "";
switch(nConstStateCodeKey) {
case 1:
constStateCodeName = "타당성조사 및 계획검토";
break;
case 2:
constStateCodeName = "기본설계";
break;
case 3:
constStateCodeName = "실시설계";
break;
case 4:
constStateCodeName = "시공중";
break;
case 5:
constStateCodeName = "준공";
break;
case 6:
constStateCodeName = "유지보수";
break;
default:
constStateCodeName = "알 수 없음";
break;
}
data.put("constStateCodeName", constStateCodeName);
Long nConstCompanyCodeKey = MyUtil.getLongFromObject(data.get(constCompanyCodeKey));
if( nConstCompanyCodeKey != null ) {
params.put(constCompanyCodeKey, nConstCompanyCodeKey);
String coinstCompanyDept = drillingInquiryMapper.spGetConstCompanyName(nConstCompanyCodeKey);
data.put("coinstCompanyDept", coinstCompanyDept);
}
Integer nProjectStateCodeKey = MyUtil.getIntegerFromObject(data.get(projectStateCodeKey) );
if( nProjectStateCodeKey == null ) {
nProjectStateCodeKey = -1;
}
String projectStateCodeName = "";
switch(nProjectStateCodeKey) {
case 0:
projectStateCodeName = "미입력";
break;
case 1:
projectStateCodeName = "입력 중";
break;
case 2:
projectStateCodeName = "검수 준비 대기중";
break;
case 3:
projectStateCodeName = "검수 중";
break;
case 4:
projectStateCodeName = "수정 요청";
break;
case 5:
projectStateCodeName = "검수 완료";
break;
case 6:
projectStateCodeName = "등록 완료";
break;
default:
constStateCodeName = "알 수 없음";
break;
}
data.put("projectStateCodeName", projectStateCodeName);
TIMESTAMP oracleTimestamp = (TIMESTAMP)data.get(crtDtKey);
if( oracleTimestamp != null ) {
Timestamp javaTimestamp = oracleTimestamp.timestampValue();
String formattedDate = dateFormat.format(javaTimestamp);
data.put(crtDtKey, formattedDate);
}
oracleTimestamp = (TIMESTAMP)data.get(modDtKey);
if( oracleTimestamp != null ) {
Timestamp javaTimestamp = oracleTimestamp.timestampValue();
String formattedDate = dateFormat.format(javaTimestamp);
data.put(modDtKey, formattedDate);
}
}
jsonResponse.put("count", count);
jsonResponse.put("datas", datas);
return jsonResponse;
} catch (SQLException e) {
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" );
}
@ -85,26 +291,4 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
throw new Exception( e.getMessage() );
}
}
public HashMap<String, Object> getOrganizationUserGlGmGsGfCodes(String userId) throws Exception {
String projectMasterCompanyName = userMapper.findProjectMasterCompanyNameByUserid(userId);
if( projectMasterCompanyName == null ) {
throw new Exception( "발주 기관 계정에 설정된 기관이 존재하지 않습니다" );
}
HashMap<String, Object> spGetMasterCompanyDistrictParams = new HashMap<String, Object>();
//String[] words = projectMasterCompanyName.split(" ");
//String lastWord = words[words.length - 1];
//spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", lastWord);
spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", projectMasterCompanyName);
drillingInputMapper.spGetMasterCompanyDistrict(spGetMasterCompanyDistrictParams);
return spGetMasterCompanyDistrictParams;
}
}

View File

@ -811,4 +811,20 @@ public final class MyUtil {
return false;
}
/**
* return
* @param target
* @return
* @throws Exception
*/
public static String removeBlank( Object target ) throws Exception {
String str = getStringFromObject( target );
if( str != null ) {
str = str.replaceAll("\\s", "");
}
return str;
}
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="geoinfo.drilling.input.service.DrillingInputMapper">
<mapper namespace="geoinfo.admins.user.service.DrillingInputMapper">
<select id="spGetMasterCompanyDistrict" parameterType="map" statementType="CALLABLE" >
{ CALL SP_GET_MASTER_COMPANY_DISTRICT(

View File

@ -1,67 +1,122 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="geoinfo.drilling.inquiry.service.DrillingInquiryMapper">
<mapper namespace="geoinfo.admins.user.service.DrillingInquiryMapper">
<select id="drillingInquiryAutocompleteList" parameterType="map" resultType="egovMap">
SELECT
tgld.GL_DISTRICT,
tgmd.GM_DISTRICT,
tgsd.GS_DISTRICT,
tcsi.CID,
tcsi.CONST_NAME,
tcsi.CONST_START_DATE
FROM
TEMP_CONSTRUCT_SITE_INFO tcsi
LEFT JOIN (
SELECT
*
FROM
tbl_gl_district
WHERE
use_yn = 'Y'
ORDER BY
gl_code
) tgld ON tcsi.MASTER_COMPANY_O_CODE = tgld.GL_CODE
LEFT JOIN (
SELECT
*
FROM
tbl_gm_district
WHERE
use_yn = 'Y'
ORDER BY
gm_code
) tgmd ON tcsi.MASTER_COMPANY_O_CODE = tgmd.GL_CODE AND tcsi.MASTER_COMPANY_TW_CODE = tgmd.GM_CODE
LEFT JOIN (
SELECT
*
FROM
tbl_gs_district
WHERE
use_yn = 'Y'
ORDER BY
gs_code
) tgsd ON
tcsi.MASTER_COMPANY_O_CODE = tgsd.GL_CODE AND
tcsi.MASTER_COMPANY_TW_CODE = tgsd.GM_CODE AND
tcsi.MASTER_COMPANY_TH_CODE = tgsd.GS_CODE
WHERE
tcsi.PROJECT_CODE IS NULL AND
tcsi.CONST_NAME LIKE '%' || #{projectName} || '%'
<if test="glDistrict != null">
<![CDATA[ AND tgld.GL_CODE = #{glDistrict} ]]>
</if>
<if test="gmDistrict != null">
<![CDATA[ AND tgmd.GM_CODE = #{gmDistrict} ]]>
</if>
<if test="gsDistrict != null">
<![CDATA[ AND tgsd.GS_CODE = #{gsDistrict} ]]>
</if>
ORDER BY tcsi.CRT_DT DESC
<!-- <select id="drillingInquiryAutocompleteList" parameterType="map" resultType="egovMap"> -->
<!-- SELECT -->
<!-- tgld.GL_DISTRICT, -->
<!-- tgmd.GM_DISTRICT, -->
<!-- tgsd.GS_DISTRICT, -->
<!-- tcsi.CID, -->
<!-- tcsi.CONST_NAME, -->
<!-- tcsi.CONST_START_DATE -->
<!-- FROM -->
<!-- TEMP_CONSTRUCT_SITE_INFO tcsi -->
<!-- LEFT JOIN ( -->
<!-- SELECT -->
<!-- * -->
<!-- FROM -->
<!-- tbl_gl_district -->
<!-- WHERE -->
<!-- use_yn = 'Y' -->
<!-- ORDER BY -->
<!-- gl_code -->
<!-- ) tgld ON tcsi.MASTER_COMPANY_O_CODE = tgld.GL_CODE -->
<!-- LEFT JOIN ( -->
<!-- SELECT -->
<!-- * -->
<!-- FROM -->
<!-- tbl_gm_district -->
<!-- WHERE -->
<!-- use_yn = 'Y' -->
<!-- ORDER BY -->
<!-- gm_code -->
<!-- ) tgmd ON tcsi.MASTER_COMPANY_O_CODE = tgmd.GL_CODE AND tcsi.MASTER_COMPANY_TW_CODE = tgmd.GM_CODE -->
<!-- LEFT JOIN ( -->
<!-- SELECT -->
<!-- * -->
<!-- FROM -->
<!-- tbl_gs_district -->
<!-- WHERE -->
<!-- use_yn = 'Y' -->
<!-- ORDER BY -->
<!-- gs_code -->
<!-- ) tgsd ON -->
<!-- tcsi.MASTER_COMPANY_O_CODE = tgsd.GL_CODE AND -->
<!-- tcsi.MASTER_COMPANY_TW_CODE = tgsd.GM_CODE AND -->
<!-- tcsi.MASTER_COMPANY_TH_CODE = tgsd.GS_CODE -->
<!-- WHERE -->
<!-- tcsi.PROJECT_CODE IS NULL -->
<!-- <if test="projectName != null and projectName != ''"> -->
<!-- AND tcsi.CONST_NAME LIKE '%' || #{projectName} || '%' -->
<!-- </if> -->
<!-- <if test="glDistrict != null"> -->
<!-- <![CDATA[ AND tgld.GL_CODE = #{glDistrict} ]]> -->
<!-- </if> -->
<!-- <if test="gmDistrict != null"> -->
<!-- <![CDATA[ AND tgmd.GM_CODE = #{gmDistrict} ]]> -->
<!-- </if> -->
<!-- <if test="gsDistrict != null"> -->
<!-- <![CDATA[ AND tgsd.GS_CODE = #{gsDistrict} ]]> -->
<!-- </if> -->
<!-- ORDER BY tcsi.CRT_DT DESC -->
<!-- </select> -->
<select id="sPCntTblCsiByKeyword" parameterType="map" resultType="long">
SELECT SP_CNT_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},
#{constName, jdbcType=VARCHAR},
#{constStartDate, jdbcType=VARCHAR},
#{constEndDate, jdbcType=VARCHAR},
#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},
#{masterCompanyTwCode, jdbcType=VARCHAR},
#{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},
#{constComCodes, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR},
NULL
) FROM DUAL
</select>
<select id="spGetTblCsiByKeyword" parameterType="map" resultType="egovMap">
SELECT * FROM TABLE(SP_GET_TBL_CSI_BY_KEYWORD(
#{constTag, jdbcType=VARCHAR},
#{constName, jdbcType=VARCHAR},
#{constStartDate, jdbcType=VARCHAR},
#{constEndDate, jdbcType=VARCHAR},
#{constStateCode, jdbcType=VARCHAR},
#{masterCompanyOCode, jdbcType=VARCHAR},
#{masterCompanyTwCode, jdbcType=VARCHAR},
#{masterCompanyThCode, jdbcType=VARCHAR},
#{masterCompanyName, jdbcType=VARCHAR},
#{constCompanyName, jdbcType=VARCHAR},
#{constComCodes, jdbcType=VARCHAR},
#{constCompanyAdmin, jdbcType=VARCHAR},
#{constCompanyTel, jdbcType=VARCHAR},
NULL,
#{sortfield},
#{sorttype},
#{nCount},
#{nPage}))
</select>
<select id="getComCodes" parameterType="map" resultType="String">
SELECT
LISTAGG(COM_CODE, ',') WITHIN GROUP (
ORDER BY COM_CODE) AS COM_CODES
FROM
TBL_CONST_COMPANY
WHERE
REPLACE(COM_NAME, ' ', '') LIKE '%' || #{constCompanyName} || '%'
</select>
<select id="spGetConstCompanyName" parameterType="Long" resultType="String">
SELECT SP_GET_CONST_COMPANY_NAME(#{constCompanyCode}) FROM DUAL
</select>
</mapper>

View File

@ -11,12 +11,12 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
console.log("${params}")
const userId = "${params.userid}"
function backBtn() {
window.history.back();
// location.href = "${pageContext.request.contextPath}/admins/constructionProjectManagement/construction-user-mgmt-index.do";
}
function onClickBtnSearch() {
const pagingEle = document.getElementById('paging');
const activeLinks = pagingEle.querySelectorAll('li.is-active a');
@ -47,6 +47,7 @@
'&' +'constCompanyName='+ constCompanyName +
'&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel +
'&' +'userId='+ userId +
'&' +'nPage='+ nPage +
'&' +'nCount='+ nCount,
true);
@ -73,7 +74,7 @@
const constCompanyTel = obj.datas[idx].constCompanyTel == null ? '-' : obj.datas[idx].constCompanyTel;
// content += '<tr onclick="location.href=\'modify.do?CID=' + obj.datas[idx].cid + '\';" data-cid="' + obj.datas[idx].cid + '">';
content += '<tr onmousedown="handleMouseDown()" onmousemove="handleMouseMove()" onmouseup="handleRowClick(' + obj.datas[idx].cid + ')" data-cid="' + obj.datas[idx].cid + '">';
content += '<tr <%--onmousedown="handleMouseDown()" onmousemove="handleMouseMove()" --%> onmouseup="handleRowClick(' + obj.datas[idx].cid + ')" data-cid="' + obj.datas[idx].cid + '">';
content += '<td>' + (obj.count - idx - (nCount * (nPage - 1))) + '</td>';
content += '<td style="text-align: left; text-indent: 10px;">' + obj.datas[idx].constName + '</td>';
content += '<td>' + obj.datas[idx].projectStateCodeName + '</td>';
@ -161,7 +162,7 @@
});
//발주기관 프로젝트목록 가져오기
getConstructSiteList()
onClickBtnSearch();
// 초기 테이블 추가 트리거
@ -288,84 +289,6 @@
});
function getConstructSiteList() {
var projectName = String(this.value).trim();
if (projectName.length > 0) {
$.ajax({
type : "GET",
data : {
projectName : projectName,
isProjectNameChecking : "true",
userid: "${param.userid}"
},
url : "/drilling-project-list.json",
dataType : "json",
success : function( json ) {
suggestionListDiv.innerHTML = ""; // 이전 목록 비우기
suggestionListDiv.style.display = "none";
var list = json.result.list;
var matchingProjects = [];
for (var i = 0; i < list.length; i++) {
matchingProjects.push(list[i]);
}
if (matchingProjects.length > 0) {
for (var i = 0; i < matchingProjects.length; i++) {
var suggestionItem = document.createElement("div");
var organHierarchy = " " + matchingProjects[i].glDistrict !== null ? matchingProjects[i].glDistrict : "";
if( matchingProjects[i].gmDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gmDistrict;
}
if( matchingProjects[i].gsDistrict !== null ) {
organHierarchy = organHierarchy + " &gt; " + matchingProjects[i].gsDistrict;
}
suggestionItem.setAttribute('data-const-name', matchingProjects[i].constName);
suggestionItem.setAttribute('data-cid', matchingProjects[i].cid);
// 검색어를 굵게 표시
              var constName = matchingProjects[i].constName;
              var projectName = String(projectNameInput.value).trim();
              // 정규식으로 검색어를 찾고, 대소문자 구분 없이 처리
              var regex = new RegExp(projectName, "gi");
              var boldConstName = constName.replace(regex, '<b>' + projectName + '</b>');
suggestionItem.innerHTML = 
              '<span>' + boldConstName + '</span><br />\n' +
              '<span class="organizational-structure" data->' +
              "발주처: " + organHierarchy
              '</span>';
suggestionItem.onclick = function() {
projectNameInput.value = this.getAttribute('data-const-name');
suggestionListDiv.style.display = "none";
};
suggestionListDiv.appendChild(suggestionItem);
}
// suggestionListDiv 위치 설정
var rect = projectNameInput.getBoundingClientRect();
suggestionListDiv.style.position = 'absolute';
//suggestionListDiv.style.left = rect.left + 'px';
//suggestionListDiv.style.top = (rect.bottom + window.scrollY) + 'px';
//suggestionListDiv.style.float = 'left';
suggestionListDiv.style.width = rect.width + 'px';
suggestionListDiv.style.display = "block";
}
},
error: function(xhr, option, error){
alert(xhr.status); //오류코드
alert(error); //오류내용
}
});
}
};
/**
* 발주기관 목록화면 tr 드래그 시 상세화면 이동 방지처리
* 드래그 이벤트와 클릭이벤트를 구분하여 감지한다.
@ -380,6 +303,12 @@
return str.replace(/^\s+|\s+$/g, '');
}
</script><style>
.drilling .page-content-inner {
padding: 30px 0;
}
li {
list-style: none;
}
@keyframes shake {
0% { transform: translateX(0); }
10% { transform: translateX(-5px); }
@ -484,7 +413,6 @@
box-shadow: 0 2px 8px rgba(0,0,0,0.05);"><h3>> 건설현장 조회 ${ params.userid }</h3></div></td>
</tr>
<tr height=20 colspan=2><td class=btn_group><a href="javascript:void(0)" class="btn btn-sm btn-success" onclick="javascript:backBtn();">뒤로</a></td></tr>
<tr height=20 colspan=2><td>&nbsp;</td></tr>
<%-- <tr height=25>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td>
@ -539,7 +467,7 @@
</tbody>
</td>
</tr>--%>
<tr height=42>
<%-- <tr height=42> --%>
<!-- START : 네비게이션 ---------------------------------------------------------------------------->
<!-- <td align=center class="navi" colspan='2'> -->
<!-- <table width=100% > -->
@ -553,9 +481,10 @@
<!-- </table> -->
<!-- </td> -->
<!-- END : 네비게이션 ---------------------------------------------------------------------------->
</tr>
<%-- </tr> --%>
</table><!-- 페이지 컨테이너 시작 -->
<section class="drilling-page-container">
<input id="PROJECT_NAME" name="PROJECT_NAME" maxlength="2000" type="hidden" value="" valid="notnull" validNm="사업명" />
<div class="page-content-wrapper drilling inquiry">
<!-- 콘텐츠 시작 -->
<div class="page-content">

View File

@ -16,7 +16,7 @@ var waitWin;
727보다 크게 하는 경우는 문제 없습니다.
-->
<iframe src="${pageContext.request.contextPath}/admins/${menuId}/${pId}.do?isFirst=true" frameborder="0" height="650" width="1300" scrolling="yes" name="iframeMain" style="overflow-x: hidden;"></iframe>
<iframe src="${pageContext.request.contextPath}/admins/${menuId}/${pId}.do?isFirst=true" frameborder="0" height="650" width="100%" scrolling="yes" name="iframeMain" style="overflow-x: hidden;"></iframe>
</body>
</html>

View File

@ -130,7 +130,7 @@ document.addEventListener('keyup', function(e) {
<td width="10" valign="top">&nbsp;</td>
<td width="100%" valign="top">
<iframe height="650" width="1300" marginheight="0" src="${pageContext.request.contextPath}/admins/frame/mainframe.do?menuId=${menuId}&pId=${pId}&viewName=${viewName}&idx=${idx}" name="mainFrame" frameborder="0" scrolling="no"></iframe>
<iframe height="650" width="100%" marginheight="0" src="${pageContext.request.contextPath}/admins/frame/mainframe.do?menuId=${menuId}&pId=${pId}&viewName=${viewName}&idx=${idx}" name="mainFrame" frameborder="0" scrolling="no"></iframe>
</td>