thkim 2024-08-20 11:57:42 +09:00
parent df93148a51
commit 1047cbe2be
5 changed files with 210 additions and 275 deletions

4
.gitignore vendored
View File

@ -1,6 +1,4 @@
/target /target
#/src/main/webapp/**/**.jar
#/src/main/webapp/**/**.class
HELP.md HELP.md
@ -14,7 +12,6 @@ build/
.apt_generated .apt_generated
.classpath .classpath
.factorypath .factorypath
#.project
.settings .settings
.springBeans .springBeans
.sts4-cache .sts4-cache
@ -64,7 +61,6 @@ out/
.mtj.tmp/ .mtj.tmp/
# Package Files # # Package Files #
#*.jar
*.war *.war
*.nar *.nar
*.ear *.ear

View File

@ -5,6 +5,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.text.ParseException; import java.text.ParseException;
@ -29,6 +30,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
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.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -55,64 +57,83 @@ import ictway.whois.whoisSMS;
@Controller @Controller
public class DrillingInquiryController { public class DrillingInquiryController {
private static final Logger LOGGER = LoggerFactory.getLogger(DrillingInquiryController.class); private static final Logger LOGGER = LoggerFactory.getLogger(DrillingInquiryController.class);
@Autowired @Autowired
DrillingInquiryService drillingInquiryService; DrillingInquiryService drillingInquiryService;
@RequestMapping(value = "/drilling/inquiry.do") @RequestMapping(value = "/drilling/inquiry.do")
public String memberRegi(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception { public String memberRegi(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if(request.getSession().getAttribute("USERNAME") == null){ if(request.getSession().getAttribute("USERNAME") == null){
return "isError"; return "isError";
} }
return "/drilling/inquiry/drilling_inquiry"; return "/drilling/inquiry/drilling_inquiry";
} }
@RequestMapping(value = "/drilling/inquiry/list.do", method = RequestMethod.GET) @RequestMapping(value = "/drilling/inquiry/list.do", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" })
@ResponseBody @ResponseBody
public JSONObject drillingInquiryList ( public ResponseEntity<JSONObject> drillingInquiryList (
HttpServletRequest request, HttpServletRequest request,
@RequestParam HashMap<String, Object> params, @RequestParam HashMap<String, Object> params,
HttpServletResponse response HttpServletResponse response
) { ) {
System.out.println( System.out.println(
"\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" + request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" +
"params" + params.toString() + "\n" + "params" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n" "\n--------------------------------------------------------------\n"
); );
JSONObject jSONOResponse = null; JSONObject jSONOResponse = null;
try { try {
jSONOResponse = drillingInquiryService.drillingInquiryList( request, params ); jSONOResponse = drillingInquiryService.drillingInquiryList( request, params );
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
jSONOResponse = new JSONObject(); jSONOResponse = new JSONObject();
String strTxt = String strTxt =
"---------- BUG REPORTING START ----------" + "\n" + "---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\n]\n" + "params:[\n" + params.toString() + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" + "---------- BUG REPORTING END ----------" + "\n" +
""; "";
System.out.println(strTxt); System.out.println(strTxt);
jSONOResponse.put("resultCode", -1); jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false"); jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage()); jSONOResponse.put("message", e.getMessage());
} }
System.out.println("\n--------------------------------------------------------------\n" + System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" + request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" + "jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"); "\n--------------------------------------------------------------\n");
return jSONOResponse;
} 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;
}
} }

View File

@ -4,6 +4,9 @@ import geoinfo.drilling.inquiry.service.DrillingInquiryMapper;
import geoinfo.drilling.inquiry.service.DrillingInquiryService; import geoinfo.drilling.inquiry.service.DrillingInquiryService;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -19,44 +22,65 @@ import org.springframework.stereotype.Service;
public class DrillingInquiryServiceImpl implements DrillingInquiryService { public class DrillingInquiryServiceImpl implements DrillingInquiryService {
@Resource(name="drillingInquiryMapper") @Resource(name="drillingInquiryMapper")
private DrillingInquiryMapper drillingInquiryMapper; private DrillingInquiryMapper drillingInquiryMapper;
@Override @Override
public JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception { public JSONObject drillingInquiryList(HttpServletRequest request, HashMap<String, Object> params) throws Exception {
JSONObject jsonResponse = new JSONObject(); JSONObject jsonResponse = new JSONObject();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try { try {
try { try {
Long count = drillingInquiryMapper.sPCntTblCsiByKeyword(params); Long count = drillingInquiryMapper.sPCntTblCsiByKeyword(params);
List<HashMap<String, Object>> data = drillingInquiryMapper.sPGetTblCsiByKeyword(params); List<HashMap<String, Object>> datas = drillingInquiryMapper.sPGetTblCsiByKeyword(params);
jsonResponse.put("count", count);
jsonResponse.put("data", data); String crtDtKey = "crtDt";
return jsonResponse;
} catch (SQLException e) { for( HashMap<String, Object> data : datas ) {
throw new Exception( e.getMessage() );
//TIMESTAMP oracleTimestamp = (TIMESTAMP)data.get(crtDtKey);
//Timestamp javaTimestamp = oracleTimestamp.timestampValue();
//String formattedDate = dateFormat.format(javaTimestamp);
//data.put(crtDtKey, 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" +
"";
System.out.println(strTxt);
throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" );
} }
} catch (org.json.simple.parser.ParseException e) { } catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
throw new Exception( e.getMessage() ); throw new Exception( e.getMessage() );
} }
} }
/* /*
* *
* @Override * @Override
public JSONObject drillingInquiryList(HttpServletRequest request, String strJSON) throws Exception { public JSONObject drillingInquiryList(HttpServletRequest request, String strJSON) throws Exception {
JSONObject jsonResponse = new JSONObject(); JSONObject jsonResponse = new JSONObject();
JSONParser jsonParser = new JSONParser(); JSONParser jsonParser = new JSONParser();
try { try {
JSONObject jsonObject = (JSONObject)jsonParser.parse(strJSON); JSONObject jsonObject = (JSONObject)jsonParser.parse(strJSON);
// JSONObject를 HashMap으로 변환 // JSONObject를 HashMap으로 변환
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
@ -66,22 +90,22 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
params.put(keyStr, value); params.put(keyStr, value);
} }
try { try {
Long count = drillingInquiryMapper.sPCntTblCsiByKeyword(params); Long count = drillingInquiryMapper.sPCntTblCsiByKeyword(params);
List<HashMap<String, Object>> data = drillingInquiryMapper.sPGetTblCsiByKeyword(params); List<HashMap<String, Object>> data = drillingInquiryMapper.sPGetTblCsiByKeyword(params);
jsonResponse.put("count", count); jsonResponse.put("count", count);
jsonResponse.put("data", data); jsonResponse.put("data", data);
return jsonResponse; return jsonResponse;
} catch (SQLException e) { } catch (SQLException e) {
throw new Exception( e.getMessage() ); throw new Exception( e.getMessage() );
} }
} catch (org.json.simple.parser.ParseException e) { } catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
throw new Exception( e.getMessage() ); throw new Exception( e.getMessage() );
} }
} }
*/ */
} }

View File

@ -54,7 +54,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<tr> <tr>
<th>사업명</th> <th>사업명</th>
<td colspan="3"> <td colspan="3">
<input type="text" value="사업명 20240816 1634 " class="input-box" id="const-name-` + tableId + `" placeholder="사업명"> <input type="text" value="사업명 20240820 1154 " class="input-box" id="const-name-` + tableId + `" placeholder="사업명">
</td> </td>
</tr> </tr>
<tr> <tr>

View File

@ -11,7 +11,7 @@ if (request.getSession().getAttribute("USERID") == null) {
%> %>
<script>alert('로그인후 이용하실 수 있습니다.');window.location.href='/index.do';</script> <script>alert('로그인후 이용하실 수 있습니다.');window.location.href='/index.do';</script>
<% <%
return; return;
} }
%> %>
<% <%
@ -21,7 +21,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
%> %>
<script>alert('발주 기관 회원만 이용가능합니다.');window.location.href='/index.do';</script> <script>alert('발주 기관 회원만 이용가능합니다.');window.location.href='/index.do';</script>
<% <%
return; return;
} }
%> %>
@ -37,44 +37,67 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<!-- javascript start--> <!-- javascript start-->
<script type="text/javascript"> <script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
document.getElementById('btn-search').addEventListener('click', function() { document.getElementById('btn-search').addEventListener('click', function() {
var jsonData = { var jsonData = {
"test" : "1234" "test" : "1234"
} }
let xhr; let xhr;
if(window.XMLHttpRequest) { if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest(); xhr = new XMLHttpRequest();
} else { } else {
// IE5, IE6 일때 // IE5, IE6 일때
xhr = new ActiveXObject("Microsoft.XMLHTTP"); xhr = new ActiveXObject("Microsoft.XMLHTTP");
} }
xhr.open('GET', '/drilling/inquiry/list.do', true); xhr.open('GET', '/drilling/inquiry/list.do', true);
xhr.setRequestHeader('Content-type', 'application/json'); xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) { if (xhr.readyState === 4 && xhr.status === 200) {
// 요청 성공 시 처리 // 요청 성공 시 처리
console.log(xhr.responseText); console.log('%o', xhr.responseText);
const obj = JSON.parse(xhr.responseText); const obj = JSON.parse(xhr.responseText);
alert(obj.message) var dataListEle = document.getElementById('data-list');
} else if (xhr.readyState === 4) { dataListEle.innerHTML = '';
// 요청 실패 시 처리
console.error('요청 실패:', xhr.status);
}
};
xhr.send(JSON.stringify(jsonData));
});
// 초기 테이블 추가 트리거 var content = '';
document.getElementById('btn-search').click();
}); for( idx in obj.data ) {
content +=
`
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">` + obj.data[idx].constName + `</td>
<td>` + obj.data[idx].constStateCode + `</td>
<td>` + obj.data[idx].constStartDate + ` ~ ` + obj.data[idx].constEndDate + `</td>
<td>` + obj.data[idx].constName + `</td>
<td>` + obj.data[idx].masterCompanyDept + `</td>
<td>` + obj.data[idx].masterCompanyAdmin + `</td>
<td>` + obj.data[idx].masterCompanyTel + `</td>
<td>` + obj.data[idx].coinstCompanyDept + `</td>
<td>` + obj.data[idx].constCompanyAdmin + `</td>
<td>` + obj.data[idx].constCompanyTel + `</td>
</tr>
`;
dataListEle.innerHTML = tt;
} else if (xhr.readyState === 4) {
// 요청 실패 시 처리
console.error('요청 실패:', xhr.status);
}
};
xhr.send(JSON.stringify(jsonData));
});
// 초기 테이블 추가 트리거
document.getElementById('btn-search').click();
});
</script> </script>
<!-- javascript end--> <!-- javascript end-->
@ -164,137 +187,8 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<th>담당연락처</th> <th>담당연락처</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody id="data-list">
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
<tr>
<td>1</td>
<td style="text-align: left; text-indent: 10px;">남부내륙철도 건설사업 (제1공구 노반 기본 및 실시설계)</td>
<td>미입력</td>
<td>2020.01~2027.12</td>
<td>유지관리 단계</td>
<td>수도권사업단 인덕원동탄월곶판교 PM</td>
<td>남궁길동</td>
<td>070-123-4567</td>
<td>계롱건설산업(주)</td>
<td>남궁길동</td>
<td>070-123-4567</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>