thkim 2025-12-24 17:58:25 +09:00
commit 5efb7fe5fe
6 changed files with 353 additions and 13 deletions

View File

@ -601,10 +601,15 @@ public class ConstructionProjectManagementController {
@RequestMapping(value = "admins/constructionProjectManagement/construction-site-index.do") @RequestMapping(value = "admins/constructionProjectManagement/construction-site-index.do")
public String constructionSiteIndex(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { public String constructionSiteIndex(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
JSONObject jsonObj = new JSONObject();
if (!UserInfo.isValidSession(request, response, "admin")) { if (!UserInfo.isValidSession(request, response, "admin")) {
return ""; return "";
} }
List<EgovMap> gDis = drillingInquiryService.getGDisList(params);
jsonObj.put("gDis", gDis);
model.put("result", jsonObj);
model.addAttribute("params", params); model.addAttribute("params", params);
return "admins/constructionProjectManagement/construction-site-index"; return "admins/constructionProjectManagement/construction-site-index";
} }

View File

@ -16,6 +16,8 @@ public interface DrillingInquiryMapper {
public List<EgovMap> spGetTblCsiByKeyword(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 getComCodes(HashMap<String, Object> params) throws SQLException;
public String spGetConstCompanyName(Long constCompanyCode) throws SQLException; public String spGetConstCompanyName(Long constCompanyCode) throws SQLException;
List<EgovMap> getGDisList(HashMap<String, Object> params) throws Exception;
} }

View File

@ -16,4 +16,5 @@ public interface DrillingInquiryService {
public JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception; public JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception;
public List<EgovMap> getGDisList(HashMap<String, Object> params) throws Exception;
} }

View File

@ -120,10 +120,10 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
String userId = MyUtil.getStringFromObject( params.get("userId") ); String userId = MyUtil.getStringFromObject( params.get("userId") );
String excelDownload = MyUtil.getStringFromObject( params.get("excelDownload") ); String excelDownload = MyUtil.getStringFromObject( params.get("excelDownload") );
String masterCompanyOCode = ""; String masterCompanyOCode = MyUtil.getStringFromObject( params.get("projectMasterCompanyOCode") );
String masterCompanyTwCode = ""; String masterCompanyTwCode = MyUtil.getStringFromObject( params.get("projectMasterCompanyTwCode") );
String masterCompanyThCode = ""; String masterCompanyThCode = MyUtil.getStringFromObject( params.get("projectMasterCompanyThCode") );
String masterCompanyName = ""; String masterCompanyName = MyUtil.getStringFromObject( params.get("projectMasterCompanyFCode") );
String sortfield = "C".equals(MyUtil.getStringFromObject(params.get("constTag"))) ? "0" : "2"; String sortfield = "C".equals(MyUtil.getStringFromObject(params.get("constTag"))) ? "0" : "2";
String sorttype = "2"; String sorttype = "2";
@ -296,4 +296,9 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
throw new Exception( e.getMessage() ); throw new Exception( e.getMessage() );
} }
} }
@Override
public List<EgovMap> getGDisList(HashMap<String, Object> params) throws Exception {
return drillingInquiryMapper.getGDisList(params);
}
} }

View File

@ -171,4 +171,59 @@
SELECT SP_GET_CONST_COMPANY_NAME(#{constCompanyCode}) FROM DUAL SELECT SP_GET_CONST_COMPANY_NAME(#{constCompanyCode}) FROM DUAL
</select> </select>
<select id="getGDisList" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT 'GL_DIS' CODE,
GL_CODE AS CODE_VALUE,
DISTRICT AS CODE_TEXT,
'GL_DIS' PARENT_CODE,
GL_CODE AS PARENT_CODE_VALUE
FROM TBL_DISTRICT
WHERE (GM_CODE IS NULL OR (GL_CODE = '08' AND GM_CODE IN (SELECT MASTER_COMPANY_TW_CODE
FROM TEMP_CONSTRUCT_SITE_INFO
WHERE MASTER_COMPANY_O_CODE = '08')))
AND USE_YN = 'Y'
AND GL_CODE IN (SELECT MASTER_COMPANY_O_CODE
FROM TEMP_CONSTRUCT_SITE_INFO)
UNION
SELECT 'GM_DIS' CODE,
GM_CODE AS CODE_VALUE,
DISTRICT AS CODE_TEXT,
'GL_DIS' PARENT_CODE,
GL_CODE AS PARENT_CODE_VALUE
FROM TBL_DISTRICT
WHERE GS_CODE IS NULL
AND GM_CODE IN (SELECT MASTER_COMPANY_TW_CODE
FROM TEMP_CONSTRUCT_SITE_INFO)
AND GM_CODE IS NOT NULL
AND GL_CODE<>'00'
AND GM_CODE<>'00'
AND USE_YN = 'Y'
UNION
SELECT 'GS_DIS' CODE,
GS_CODE AS CODE_VALUE,
DISTRICT AS CODE_TEXT,
'GL_DIS'||'GM_DIS' PARENT_CODE,
GL_CODE||GM_CODE AS PARENT_CODE_VALUE
FROM TBL_DISTRICT
WHERE GF_CODE IS NULL
AND GL_CODE||GM_CODE||GS_CODE IN (SELECT MASTER_COMPANY_O_CODE||MASTER_COMPANY_TW_CODE||MASTER_COMPANY_TH_CODE
FROM TEMP_CONSTRUCT_SITE_INFO)
AND GL_CODE<>'00'
AND GM_CODE<>'00'
AND GS_CODE<>'000'
AND USE_YN = 'Y'
UNION
SELECT 'GF_DIS' CODE,
GF_CODE AS CODE_VALUE,
DISTRICT AS CODE_TEXT,
'GL_DIS'||'GM_DIS'||'GF_DIS' AS PARENT_CODE,
GL_CODE||GM_CODE||GS_CODE AS PARENT_CODE_VALUE
FROM TBL_DISTRICT
WHERE GF_CODE IS NOT NULL
AND USE_YN = 'Y'
AND GF_CODE <> '0000'
ORDER BY CODE_TEXT
]]>
</select>
</mapper> </mapper>

View File

@ -11,10 +11,266 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <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"> <link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script> <script>
// console.log("${result.gDis}")
// console.log("${result}")
const userId = "${params.userid}" const userId = "${params.userid}"
function backBtn() { function backBtn() {
window.history.back(); window.history.back();
// location.href = "${pageContext.request.contextPath}/admins/constructionProjectManagement/construction-user-mgmt-index.do"; }
//프로젝트 소분류
function fn_onSelChange(code, subcd, selFrm, frm) {
if(selFrm.selectedIndex != -1){
var subCode = selFrm.options[selFrm.selectedIndex].value;
var no = 0;
frm.options[no] = new Option('선택', '');
no++;
var dis = JSON.parse('${result.commCode}');
for (var i = 0; i < dis.length; i++) {
if (code == dis[i].parentCode && subcd == dis[i].code && subCode == dis[i].parentCodeValue) {
frm.options[no] = new Option(dis[i].codeText, dis[i].codeValue);
no++;
}
}
frm.length = no;
frm.selectedIndex = 0;
}else{
var subCode = -1;
var no = 0;
frm.options[no] = new Option('선택', '');
no++;
frm.length = no;
frm.selectedIndex = 0;
}
}
//발주처
function fn_onSelChangeGDis(code, subcd, selFrm, frm, depth) {
var subCode = "";
if(selFrm.selectedIndex > -1)
subCode = selFrm.options[selFrm.selectedIndex].value;
if (depth == "3") {
subCode = $("#PROJECT_MASTER_COMPANY_O_CODE option:selected").val() + $("#PROJECT_MASTER_COMPANY_TW_CODE option:selected").val();
}
if (depth == "4") {
subCode = $("#PROJECT_MASTER_COMPANY_O_CODE option:selected").val() + $("#PROJECT_MASTER_COMPANY_TW_CODE option:selected").val();
subCode = subCode + $("#PROJECT_MASTER_COMPANY_TH_CODE option:selected").val();
}
var no = 0;
frm.options[no] = new Option('-', '');
frm.disabled = true;
no++;
var gDis = JSON.parse('${result}');
gDis = gDis.gDis;
for (var i = 0; i < gDis.length; i++) {
if (code == gDis[i].parentCode && subcd == gDis[i].code && subCode == gDis[i].parentCodeValue) {
frm.options[no] = new Option(gDis[i].codeText, gDis[i].codeValue);
no++;
}
}
frm.length = no;
frm.selectedIndex = 0;
if ($("#PROJECT_MASTER_COMPANY_O_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_O_CODE").removeAttr("disabled");
}
if ($("#PROJECT_MASTER_COMPANY_TW_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_TW_CODE option:eq(0)").text("선택");
$("#PROJECT_MASTER_COMPANY_TW_CODE").removeAttr("disabled");
}
if ($("#PROJECT_MASTER_COMPANY_TH_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_TH_CODE option:eq(0)").text("선택");
$("#PROJECT_MASTER_COMPANY_TH_CODE").removeAttr("disabled");
}
if ($("#PROJECT_MASTER_COMPANY_F_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_F_CODE option:eq(0)").text("선택");
$("#PROJECT_MASTER_COMPANY_F_CODE").removeAttr("disabled");
}
}
//발주처 1depth 선택시
function fn_onSelChangeGDisInit(num) {
if (document.getElementById("PROJECT_MASTER_COMPANY_O_CODE").selectedIndex == 0) { //직접입력
$("select[id='PROJECT_MASTER_COMPANY_TW_CODE'] option").remove();
}
if (num == 1) {
$("select[id='PROJECT_MASTER_COMPANY_TH_CODE'] option").remove();
$("#PROJECT_MASTER_COMPANY_TH_CODE").attr("disabled", "true");
$("select[id='PROJECT_MASTER_COMPANY_F_CODE'] option").remove();
$("#PROJECT_MASTER_COMPANY_F_CODE option:eq(0)").text("-");
$("#PROJECT_MASTER_COMPANY_F_CODE").attr("disabled", "true");
} else if (num == 2) {
$("select[id='PROJECT_MASTER_COMPANY_F_CODE'] option").remove();
$("#PROJECT_MASTER_COMPANY_F_CODE option:eq(0)").text("-");
$("#PROJECT_MASTER_COMPANY_F_CODE").attr("disabled", "true");
}
}
//지자체 (행정구역)
//사용안하는걸로 추정됨 :: 윤기태
function fn_onSelChangeDis(code, subcd, selFrm, frm) {
var subCode = selFrm.options[selFrm.selectedIndex].value;
var no = 0;
frm.options[no] = new Option('선택', '');
no++;
var dis = JSON.parse('${result.dis}');
for (var i = 0; i < dis.length; i++) {
if (code == dis[i].parentCode && subcd == dis[i].code && subCode == dis[i].parentCodeValue) {
frm.options[no] = new Option(dis[i].codeText, dis[i].codeValue);
no++;
}
}
frm.length = no;
frm.selectedIndex = 0;
}
//지자체 (행정구역)
function fn_onSelChangeDisChg(code, subcd, selFrm, frm) {
var subCode = selFrm.options[selFrm.selectedIndex].value;
var no = 0;
frm.options[no] = new Option('선택', '');
no++;
var dis = JSON.parse('${result.dis}');
for (var i = 0; i < dis.length; i++) {
if (code == dis[i].parentCode && subcd == dis[i].code && subCode == dis[i].parentCodeValue) {
frm.options[no] = new Option(dis[i].codeText, dis[i].codeValue);
no++;
}
}
frm.length = no;
frm.selectedIndex = 0;
//종점위치 똑같이 SET
$("#PROJECT_END_SPOT_SD").val($("#PROJECT_START_SPOT_SD option:selected").val());
fn_onSelChangeDisSub('L_DIS', 'M_DIS', document.searchForm.PROJECT_END_SPOT_SD, document.searchForm.PROJECT_END_SPOT_SGG);
}
//지자체 (행정구역)
function fn_onSelChangeDisSub(code, subcd, selFrm, frm) {
var subCode = selFrm.options[selFrm.selectedIndex].value;
var no = 0;
frm.options[no] = new Option('선택', '');
no++;
var dis = JSON.parse('${result.dis}');
for (var i = 0; i < dis.length; i++) {
if (code == dis[i].parentCode && subcd == dis[i].code && subCode == dis[i].parentCodeValue) {
frm.options[no] = new Option(dis[i].codeText, dis[i].codeValue);
no++;
}
}
frm.length = no;
frm.selectedIndex = 0;
fn_onSelChangeSggStart();
}
//start 지자체 시군구 변경시 end도 같이 변경
function fn_onSelChangeSggStart(emdCode) {
var sggCode = $("#PROJECT_START_SPOT_SGG option:selected").val();
$("#PROJECT_END_SPOT_SGG").val(sggCode);
$("#PROJECT_END_SPOT_SGG").trigger("change");
var sdCode = $("#PROJECT_START_SPOT_SD option:selected").val();
var dis = JSON.parse('${result.dis}');
var gisCode = null;
for(var i=0, len=dis.length; i < len; i++) {
if(dis[i].parentCodeValue == sdCode && dis[i].codeValue == sggCode) {
gisCode = dis[i].gisCode;
}
}
if(gisCode) {
$.get("/info/getEmd.do", { sggCode : gisCode }, function(response) {
if(response) {
var tagStr = '<option value="">선택</option>';
var rows = response.rows;
for(var i=0, len=rows.length; i < len; i++) {
var row = rows[i];
tagStr += '<option value="' + row.emdCd + '" >' + row.emdKorNm + '</option>';
}
}
$("#PROJECT_START_SPOT_EMD").html(tagStr);
if(emdCode) {
$("#PROJECT_START_SPOT_EMD").val(emdCode);
}
});
}
else {
$("#PROJECT_START_SPOT_EMD").html('<option value="00">선택</option>');
}
}
function fn_onSelChangeEmd() {
var startSggCode = $("#PROJECT_START_SPOT_SGG option:selected").val();
var endSggCode = $("#PROJECT_END_SPOT_SGG option:selected").val();
if(startSggCode == endSggCode) {
var emdCode = $("#PROJECT_START_SPOT_EMD option:selected").val();
$("#PROJECT_END_SPOT_EMD").val(emdCode);
}
}
function fn_onSelChangeSggEnd(emdCode) {
var sdCode = $("#PROJECT_END_SPOT_SD option:selected").val();
var sggCode = $("#PROJECT_END_SPOT_SGG option:selected").val();
var dis = JSON.parse('${result.dis}');
var gisCode = null;
for(var i=0, len=dis.length; i < len; i++) {
if(dis[i].parentCodeValue == sdCode && dis[i].codeValue == sggCode) {
gisCode = dis[i].gisCode;
}
}
if(gisCode) {
$.get("/info/getEmd.do", { sggCode : gisCode }, function(response) {
if(response) {
var tagStr = '<option value="">선택</option>';
var rows = response.rows;
for(var i=0, len=rows.length; i < len; i++) {
var row = rows[i];
tagStr += '<option value="' + row.emdCd + '" >' + row.emdKorNm + '</option>';
}
}
$("#PROJECT_END_SPOT_EMD").html(tagStr);
if(emdCode) {
$("#PROJECT_END_SPOT_EMD").val(emdCode);
}
});
}
} }
function onClickBtnSearch() { function onClickBtnSearch() {
@ -34,6 +290,10 @@
const constCompanyAdmin = trim( document.getElementById('company-admin').value ); const constCompanyAdmin = trim( document.getElementById('company-admin').value );
const constCompanyTel = trim( document.getElementById('company-tel').value ); const constCompanyTel = trim( document.getElementById('company-tel').value );
const projectMasterCompanyOCode = trim( document.getElementById('PROJECT_MASTER_COMPANY_O_CODE').value );
const projectMasterCompanyTwCode = trim( document.getElementById('PROJECT_MASTER_COMPANY_TW_CODE').value );
const projectMasterCompanyThCode = trim( document.getElementById('PROJECT_MASTER_COMPANY_TH_CODE').value );
const projectMasterCompanyFCode = trim( document.getElementById('PROJECT_MASTER_COMPANY_F_CODE').value );
const nCount = Number(pagingEle.getAttribute('data-ncount')); const nCount = Number(pagingEle.getAttribute('data-ncount'));
const nPage = Number(pagingEle.getAttribute('data-npage')); const nPage = Number(pagingEle.getAttribute('data-npage'));
@ -50,7 +310,11 @@
'&' +'constCompanyAdmin='+ constCompanyAdmin + '&' +'constCompanyAdmin='+ constCompanyAdmin +
'&' +'constCompanyTel='+ constCompanyTel + '&' +'constCompanyTel='+ constCompanyTel +
'&' +'nPage='+ nPage + '&' +'nPage='+ nPage +
'&' +'nCount='+ nCount, '&' +'nCount='+ nCount +
'&' +'projectMasterCompanyOCode='+ projectMasterCompanyOCode +
'&' +'projectMasterCompanyTwCode='+ projectMasterCompanyTwCode +
'&' +'projectMasterCompanyThCode='+ projectMasterCompanyThCode +
'&' +'projectMasterCompanyFCode='+ projectMasterCompanyFCode,
true); true);
xhr.setRequestHeader('Content-type', 'application/json'); xhr.setRequestHeader('Content-type', 'application/json');
@ -170,11 +434,6 @@
onClickBtnSearch(); onClickBtnSearch();
}); });
<%-- document.getElementById('btn-view-on-map').addEventListener('click', function() {
onClickBtnViewOnMap();
});--%>
// 초기 테이블 추가 트리거 // 초기 테이블 추가 트리거
document.getElementById('btn-search').click(); document.getElementById('btn-search').click();
@ -496,10 +755,23 @@ li {
<option value="6">등록 완료</option> <option value="6">등록 완료</option>
</select> </select>
</div> </div>
<div class="form-inline" style="margin-bottom: 0"> <div class="form-inline">
<input type="text" id="company-dept" name="company-dept" class="input input-1" placeholder="담당부서,건설사명" title="" value="" > <input type="text" id="company-dept" name="company-dept" class="input input-1" placeholder="담당부서,건설사명" title="" value="" >
<input type="text" id="company-admin" name="company-admin" class="input input-2" placeholder="담당자" title="" value=""> <input type="text" id="company-admin" name="company-admin" class="input input-2" placeholder="담당자" title="" value="">
<input type="text" id="company-tel" name="company-tel" class="input input-3" placeholder="담당 연락처" title="" value=""> <input type="text" id="company-tel" name="company-tel" class="input input-3" placeholder="담당 연락처" title="" value="">
</div>
<div class="form-inline" style="margin-bottom: 0; padding-left: 8px">
<select name="PROJECT_MASTER_COMPANY_O_CODE" id="PROJECT_MASTER_COMPANY_O_CODE" style="width: 160px;" onChange="fn_onSelChangeGDis('GL_DIS','GM_DIS',this, document.searchForm.PROJECT_MASTER_COMPANY_TW_CODE,'2');fn_onSelChangeGDisInit(1);" >
<option value="">발주처 검색</option>
<c:forEach var="item" items="${result.gDis}">
<c:if test="${item.code == 'GL_DIS'}">
<option value="${item.codeValue}">${item.codeText}</option>
</c:if>
</c:forEach>
</select>
<select name="PROJECT_MASTER_COMPANY_TW_CODE" id="PROJECT_MASTER_COMPANY_TW_CODE" style="width: 160px;" onChange="fn_onSelChangeGDis('GL_DISGM_DIS','GS_DIS',this, document.searchForm.PROJECT_MASTER_COMPANY_TH_CODE,'3');fn_onSelChangeGDisInit(2);" ></select>
<select name="PROJECT_MASTER_COMPANY_TH_CODE" id="PROJECT_MASTER_COMPANY_TH_CODE" style="width: 160px;" onChange="fn_onSelChangeGDis('GL_DISGM_DISGF_DIS','GF_DIS',this, document.searchForm.PROJECT_MASTER_COMPANY_F_CODE,'4')" ></select>
<select name="PROJECT_MASTER_COMPANY_F_CODE" id="PROJECT_MASTER_COMPANY_F_CODE" style="width: 160px;"></select>
<button type="button" id="btn-search" class="btn btn-search"> <button type="button" id="btn-search" class="btn btn-search">
<span>조회하기</span> <span>조회하기</span>
</button> </button>