diff --git a/src/main/java/kcc/kccadr/textsense/service/TextSenseService.java b/src/main/java/kcc/kccadr/textsense/service/TextSenseService.java index 5c1206fe..ff6d36ef 100644 --- a/src/main/java/kcc/kccadr/textsense/service/TextSenseService.java +++ b/src/main/java/kcc/kccadr/textsense/service/TextSenseService.java @@ -16,4 +16,7 @@ public interface TextSenseService { //TextSense OCR 상세내용 불러오기 public TextSenseVO selectTextSenseDetail(TextSenseVO textSenseVO) throws Exception; + //TextSense Callback 데이터 내용 업데이트 해주기 + public void updateTextSenseCallbackData(TextSenseVO textSenseVO) throws Exception; + } \ No newline at end of file diff --git a/src/main/java/kcc/kccadr/textsense/service/TextSenseVO.java b/src/main/java/kcc/kccadr/textsense/service/TextSenseVO.java index d1c2f2e2..578ed6cf 100644 --- a/src/main/java/kcc/kccadr/textsense/service/TextSenseVO.java +++ b/src/main/java/kcc/kccadr/textsense/service/TextSenseVO.java @@ -23,11 +23,11 @@ public class TextSenseVO extends ComDefaultVO implements Serializable{ //결과 파라미터 부분 private String id; private String status; - private String inputFileLenth; - private String outputFileLenth; + private String inputFileLength; + private String outputFileLength; private String createdat; private String queuedat; - private String startdat; + private String startedat; private String completedat; private String updatedat; private String maxRetryCount; @@ -117,17 +117,18 @@ public class TextSenseVO extends ComDefaultVO implements Serializable{ public void setStatus(String status) { this.status = status; } - public String getInputFileLenth() { - return inputFileLenth; + + public String getInputFileLength() { + return inputFileLength; } - public void setInputFileLenth(String inputFileLenth) { - this.inputFileLenth = inputFileLenth; + public void setInputFileLength(String inputFileLength) { + this.inputFileLength = inputFileLength; } - public String getOutputFileLenth() { - return outputFileLenth; + public String getOutputFileLength() { + return outputFileLength; } - public void setOutputFileLenth(String outputFileLenth) { - this.outputFileLenth = outputFileLenth; + public void setOutputFileLength(String outputFileLength) { + this.outputFileLength = outputFileLength; } public String getCreatedat() { return createdat; @@ -141,11 +142,12 @@ public class TextSenseVO extends ComDefaultVO implements Serializable{ public void setQueuedat(String queuedat) { this.queuedat = queuedat; } - public String getStartdat() { - return startdat; + + public String getStartedat() { + return startedat; } - public void setStartdat(String startdat) { - this.startdat = startdat; + public void setStartedat(String startedat) { + this.startedat = startedat; } public String getCompletedat() { return completedat; diff --git a/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseDAO.java b/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseDAO.java index eba7dcd6..b19aff86 100644 --- a/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseDAO.java +++ b/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseDAO.java @@ -74,4 +74,17 @@ public class TextSenseDAO extends EgovAbstractDAO{ return result; } + //TextSense Callback 데이터 내용 업데이트 해주기 + public void updateTextSenseCallbackData(TextSenseVO textSenseVO) throws Exception{ + + try { + + update("textSenseDAO.updateTextSenseCallbackData", textSenseVO); + + } catch (Exception e) { + System.out.println("updateTextSenseCallbackData Service DAO Error !!! " + e); + } + + } + } diff --git a/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseServiceImpl.java b/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseServiceImpl.java index 937a6833..c640245b 100644 --- a/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseServiceImpl.java +++ b/src/main/java/kcc/kccadr/textsense/service/impl/TextSenseServiceImpl.java @@ -84,5 +84,19 @@ public class TextSenseServiceImpl implements TextSenseService{ return result; } + //TextSense Callback 데이터 내용 업데이트 해주기 + @Override + public void updateTextSenseCallbackData(TextSenseVO textSenseVO) throws Exception{ + + try { + + textSenseDAO.updateTextSenseCallbackData(textSenseVO); + + } catch (Exception e) { + System.out.println("updateTextSenseCallbackData Service Impl Error !!! " + e); + } + + } + } diff --git a/src/main/java/kcc/kccadr/textsense/web/TextSenseAPIComm.java b/src/main/java/kcc/kccadr/textsense/web/TextSenseAPIComm.java index aa23b0f8..51eed6f4 100644 --- a/src/main/java/kcc/kccadr/textsense/web/TextSenseAPIComm.java +++ b/src/main/java/kcc/kccadr/textsense/web/TextSenseAPIComm.java @@ -34,24 +34,29 @@ public class TextSenseAPIComm { String callbackUri = textSenseVO.getCallbackUri();//"http://119.193.215.98:8097/web/main/textsence/testCallbackUriPage.do"; //String extraJobs = ""; + JSONObject jsonOptObj = new JSONObject(); + jsonOptObj.put("withoutConversion", true); JSONObject jsonObject = new JSONObject(); jsonObject.put("inputUri", inputUri); jsonObject.put("outputUri", outputUri); jsonObject.put("taskName", taskName); jsonObject.put("callbackUri", callbackUri); + jsonObject.put("option", jsonOptObj); JSONArray extraJobs = new JSONArray(); JSONObject jsonJobs = new JSONObject(); JSONObject jsonOption = new JSONObject(); - - //extraJobs의 Option 항목 셋팅 해주기 jsonOption.put("url", textSenseVO.getUrl()); jsonOption.put("reqType", textSenseVO.getReqType()); - jsonOption.put("reqOption", ""); + + JSONObject jsonReqOption = new JSONObject(); + + jsonOption.put("reqOption", jsonReqOption); jsonOption.put("outputType", textSenseVO.getOutputType()); + jsonOption.put("pages", "all"); //extraJobs 셋팅해주기 jsonJobs.put("type", textSenseVO.getType()); @@ -86,6 +91,7 @@ public class TextSenseAPIComm { returnJson = object; returnJson.put("resultSts", "success"); + }else { returnJson.put("resultSts", "fail"); @@ -99,4 +105,61 @@ public class TextSenseAPIComm { return returnJson; } + + + /* + * TextSense OCR 결과 상태 확인하기 + * + * */ + @SuppressWarnings("unchecked") + public static JSONObject getTextSenseApiStatus(TextSenseVO textSenseVO) throws Exception{ + JSONObject returnJson = new JSONObject(); + + try { + + String apiUrl = textSenseVO.getApiUrl(); + String id = textSenseVO.getId(); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("type", "OBJECT_ID"); + jsonObject.put("id", id); + + HttpClient httpClient = HttpClientBuilder.create().build(); + HttpPost httpPost = new HttpPost(apiUrl); + httpPost.setEntity(new StringEntity(jsonObject.toString(), "UTF-8")); + httpPost.addHeader("Content-type", "application/json"); + //httpPost.addHeader("Accept", "application/json"); + + HttpResponse response = httpClient.execute(httpPost); + + String result = ""; + String statusCode = Integer.toString(response.getStatusLine().getStatusCode()); + + if(statusCode.equals("200")) { + result = EntityUtils.toString(response.getEntity()); + + result = new String(result.getBytes("iso-8859-1"));//한글 깨짐 현상이 있어서 변환 해줌. + JSONParser parser = new JSONParser(); + Object obj = parser.parse(result); + JSONObject object = (JSONObject) obj; + + returnJson = object; + returnJson.put("resultSts", "success"); + + }else { + + System.out.println("statusCode ::: "+statusCode); + returnJson.put("resultSts", "fail"); + + } + + } catch (Exception e) { + System.out.println("++++++++++++++++ getTextSenseRequest Error!!! "+e); + returnJson.put("resultSts", "fail"); + } + + return returnJson; + } + + } diff --git a/src/main/java/kcc/kccadr/textsense/web/TextSenseController.java b/src/main/java/kcc/kccadr/textsense/web/TextSenseController.java index 7ee94009..d66bfacc 100644 --- a/src/main/java/kcc/kccadr/textsense/web/TextSenseController.java +++ b/src/main/java/kcc/kccadr/textsense/web/TextSenseController.java @@ -152,104 +152,112 @@ public class TextSenseController { } - //첨부파일 등록 API 전송 요청 - final Map files = multiRequest.getFileMap(); - String atchFileId = ""; - String isThumbFile = ""; - - List extList = new ArrayList(); - extList.add("jpg"); - extList.add("jpeg"); - extList.add("png"); - extList.add("tif"); - extList.add("tiff"); - extList.add("multi-tiff"); - extList.add("pdf"); - extList.add("bmp"); - - //알림톡 템플릿에 이미지가 포함되어 있는 경우 처리 - if (!files.isEmpty()){ + try { - if ("".equals(atchFileId)) { - List result = fileUtil.parseFileInf(files, "TSOCR_", 0, atchFileId, "", isThumbFile); + //첨부파일 등록 API 전송 요청 + final Map files = multiRequest.getFileMap(); + String atchFileId = ""; + String isThumbFile = ""; + + List extList = new ArrayList(); + extList.add("jpg"); + extList.add("jpeg"); + extList.add("png"); + extList.add("tif"); + extList.add("tiff"); + extList.add("multi-tiff"); + extList.add("pdf"); + extList.add("bmp"); + + //알림톡 템플릿에 이미지가 포함되어 있는 경우 처리 + if (!files.isEmpty()){ - for(FileVO fileVO : result) { + if ("".equals(atchFileId)) { + List result = fileUtil.parseFileInf(files, "TSOCR_", 0, atchFileId, "", isThumbFile); - String fileExt = fileVO.getFileExtsn(); - - //파일 확장자 체크 - if(!extList.contains(fileExt)) { + for(FileVO fileVO : result) { - modelAndView.addObject("result", "fail"); - return modelAndView; + String fileExt = fileVO.getFileExtsn(); + + //파일 확장자 체크 + if(!extList.contains(fileExt)) { + + modelAndView.addObject("result", "fail"); + return modelAndView; + + } } + //파일 정보 디비에 저장 + atchFileId = fileMngService.insertFileInfs(result); + + System.out.println("++++++++++++++ atchFileId ::: "+atchFileId); } - //파일 정보 디비에 저장 - atchFileId = fileMngService.insertFileInfs(result); - - System.out.println("++++++++++++++ atchFileId ::: "+atchFileId); } - } - - //TextSense API 요청 처리 - TextSenseVO apiTextSenseVO = new TextSenseVO(); - String outputFileNm = "ePapy_" + EgovStringUtil.getTimeStamp() + "_OCR.json"; - String apiUrl = textSenseApiUrl + "/textsense/api/job/build"; - String taskName = textSenseVO.getTaskName(); - - apiTextSenseVO.setApiUrl(apiUrl); - apiTextSenseVO.setInputUri("http://119.193.215.98:8097/cmm/fms/FileDown.do?atchFileId="+ atchFileId +"&fileSn=0"); //http://119.193.215.98:8097/kccadrPb/usr/image/common/top_logo.png - apiTextSenseVO.setOutputUri("file:/home/kcc_adr_ocr_dir/" + outputFileNm); - apiTextSenseVO.setCallbackUri("http://119.193.215.98:8097/kccadr/textsence/testCallbackUriPage.do"); - apiTextSenseVO.setTaskName(taskName); - - //extraJobs의 Option 항목 셋팅 해주기 - apiTextSenseVO.setUrl(textSenseApiUrl); - apiTextSenseVO.setReqType("document"); //고정값으로 변경 불가 - apiTextSenseVO.setReqOption(""); //기본값으로 빈값을 넣어준다. - apiTextSenseVO.setOutputType("json"); //지원하는 output type은 pdf, json, excel, text, text-split 입니다 - apiTextSenseVO.setType("textSense"); //고정값으로 변경 불가 - - JSONObject resultJson = TextSenseAPIComm.getTextSenseRequest(apiTextSenseVO); + //TextSense API 요청 처리 + TextSenseVO apiTextSenseVO = new TextSenseVO(); + String outputFileNm = "ePapy_" + EgovStringUtil.getTimeStamp() + "_OCR.json"; + String apiUrl = textSenseApiUrl + "/textsense/api/job/build"; + String taskName = textSenseVO.getTaskName(); + + apiTextSenseVO.setApiUrl(apiUrl); + apiTextSenseVO.setInputUri("http://119.193.215.98:8097/uss/ion/pwm/getImage.do?atchFileId="+ atchFileId +"&fileSn=0"); + apiTextSenseVO.setOutputUri("file:/home/kcc_adr_ocr_dir/" + outputFileNm); + apiTextSenseVO.setCallbackUri("http://119.193.215.98:8097/kccadr/textsence/textSenseCallbackUriPage.do"); + apiTextSenseVO.setTaskName(taskName); + + //extraJobs의 Option 항목 셋팅 해주기 + apiTextSenseVO.setUrl("http://textsense:8080"); + apiTextSenseVO.setReqType("document"); //고정값으로 변경 불가 + //apiTextSenseVO.setReqOption("{}"); //기본값으로 빈값을 넣어준다. + apiTextSenseVO.setOutputType("json"); //지원하는 output type은 pdf, json, excel, text, text-split 입니다 + apiTextSenseVO.setType("textSense"); //고정값으로 변경 불가 + + JSONObject resultJson = TextSenseAPIComm.getTextSenseRequest(apiTextSenseVO); - System.out.println("==========Controller============== resultJson ::: "+resultJson.toJSONString()); - - //처리 결과가 성공이면 디비에 저장해주고 끝낸다. - String resultSts = resultJson.get("resultSts").toString(); - if(resultSts.equals("success")) { - - //요청 결과내용 데이터베이스에 저장 - TextSenseVO resultJsVO = new TextSenseVO(); - - String id = resultJson.get("id").toString(); - String status = resultJson.get("status").toString(); - - taskName = resultJson.get("name").toString(); + //처리 결과가 성공이면 디비에 저장해주고 끝낸다. + String resultSts = resultJson.get("resultSts").toString(); + if(resultSts.equals("success")) { + + //요청 결과내용 데이터베이스에 저장 + TextSenseVO resultJsVO = new TextSenseVO(); + + String id = resultJson.get("id").toString(); + String status = resultJson.get("status").toString(); + + taskName = resultJson.get("name").toString(); - resultJsVO.setId(id); - resultJsVO.setTaskName(taskName); - resultJsVO.setStatus(status); - resultJsVO.setInputUri(apiTextSenseVO.getInputUri()); - resultJsVO.setOutputUri(apiTextSenseVO.getOutputUri()); - resultJsVO.setCallbackUri(apiTextSenseVO.getCallbackUri()); - resultJsVO.setFrstRegisterId(user.getId()); + resultJsVO.setId(id); + resultJsVO.setTaskName(taskName); + resultJsVO.setStatus(status); + resultJsVO.setInputUri(apiTextSenseVO.getInputUri()); + resultJsVO.setOutputUri(apiTextSenseVO.getOutputUri()); + resultJsVO.setCallbackUri(apiTextSenseVO.getCallbackUri()); + resultJsVO.setFrstRegisterId(user.getId()); + + int resultCnt = textSenseService.insertTextSenseRequestResultInfo(resultJsVO); + + System.out.println("+++++++++++++++++ resultCnt ::: "+resultCnt); + + modelAndView.addObject("result", "success"); + modelAndView.addObject("id", id); + modelAndView.addObject("name", taskName); + modelAndView.addObject("status", status); + + }else { + + modelAndView.addObject("result", "fail"); + + } - int resultCnt = textSenseService.insertTextSenseRequestResultInfo(resultJsVO); - - System.out.println("+++++++++++++++++ resultCnt ::: "+resultCnt); - - modelAndView.addObject("result", "success"); - modelAndView.addObject("id", id); - modelAndView.addObject("name", taskName); - modelAndView.addObject("status", status); - - }else { + } catch (Exception e) { + System.out.println("textSenseRequest Controller Error !!!!" + e); modelAndView.addObject("result", "fail"); + return modelAndView; } @@ -257,56 +265,127 @@ public class TextSenseController { } - @RequestMapping(value="/kccadr/textsence/testCallbackUriPage.do") - public void testCallbackUriPage(HttpServletRequest req, HttpServletResponse res, @RequestBody JSONObject jsonObject) throws Exception{ - + + /** + * + * TextSense 결과 Callback 정보 전달 + * + * */ + @RequestMapping(value="/kccadr/textsence/textSenseCallbackUriPage.do") + public void textSenseCallbackUriPage(HttpServletRequest req, HttpServletResponse res, @RequestBody JSONObject jsonObject) throws Exception{ System.out.println("++++++++++++++++++++++++++/web/main/textsence/testCallbackUriPage.do++++++++++++++++++++++++++++++++++"); - System.out.println("+++++++++++ jsonString ::: "+jsonObject.toJSONString()); - JSONParser parser = new JSONParser(); - Object obj = parser.parse(jsonObject.toString()); - JSONObject object = (JSONObject) obj; - - String id = object.get("id").toString(); - String name = object.get("name").toString(); - String inputUri = object.get("inputUri").toString(); - String inputFileLength = object.get("inputFileLength").toString(); - String outputUri = object.get("outputUri").toString(); - String outputFileLength = object.get("outputFileLength").toString(); - String status = object.get("status").toString(); - String createdAt = object.get("createdAt").toString(); - //String queuedAt = object.get("queuedAt").toString(); - String startedAt = object.get("startedAt").toString(); - String completedAt = object.get("completedAt").toString(); - //String updatedAt = object.get("updatedAt").toString(); - String maxRetryCount = object.get("maxRetryCount").toString(); - String retryCount = object.get("retryCount").toString(); - String collectedBy = object.get("collectedBy").toString(); - String callbackUri = object.get("callbackUri").toString(); - - - System.out.println("+++++++++++++++++++++++ id ::: "+id); - System.out.println("+++++++++++++++++++++++ name ::: "+name); - System.out.println("+++++++++++++++++++++++ inputUri ::: "+inputUri); - System.out.println("+++++++++++++++++++++++ inputFileLength ::: "+inputFileLength); - System.out.println("+++++++++++++++++++++++ outputUri ::: "+outputUri); - System.out.println("+++++++++++++++++++++++ outputFileLength ::: "+outputFileLength); - System.out.println("+++++++++++++++++++++++ status ::: "+status); - System.out.println("+++++++++++++++++++++++ createdAt ::: "+createdAt); - //System.out.println("+++++++++++++++++++++++ queuedAt ::: "+queuedAt); - System.out.println("+++++++++++++++++++++++ startedAt ::: "+startedAt); - System.out.println("+++++++++++++++++++++++ completedAt ::: "+completedAt); - //System.out.println("+++++++++++++++++++++++ updatedAt ::: "+updatedAt); - System.out.println("+++++++++++++++++++++++ maxRetryCount ::: "+maxRetryCount); - System.out.println("+++++++++++++++++++++++ retryCount ::: "+retryCount); - System.out.println("+++++++++++++++++++++++ collectedBy ::: "+collectedBy); - System.out.println("+++++++++++++++++++++++ callbackUri ::: "+callbackUri); - - - + try { + + JSONParser parser = new JSONParser(); + Object obj = parser.parse(jsonObject.toString()); + JSONObject object = (JSONObject) obj; + + String id = object.get("id").toString(); + String name = object.get("name").toString(); + String inputUri = object.get("inputUri").toString(); + String outputUri = object.get("outputUri").toString(); + String status = object.get("status").toString(); + String callbackUri = object.get("callbackUri").toString(); + String inputFileLength = object.get("inputFileLength").toString(); + String outputFileLength = object.get("outputFileLength").toString(); + String createdAt = (object.get("createdAt") == null ? "0" : object.get("createdAt").toString()); + String queuedAt = (object.get("queuedAt") == null ? "0" : object.get("queuedAt").toString()); + String startedAt = (object.get("startedAt") == null ? "0" : object.get("startedAt").toString()); + String completedAt = (object.get("completedAt") == null ? "0" : object.get("completedAt").toString()); + String updatedAt = (object.get("updatedAt") == null ? "0" : object.get("updatedAt").toString()); + String maxRetryCount = (object.get("maxRetryCount") == null ? "0" : object.get("maxRetryCount").toString()); + String retryCount = (object.get("retryCount") == null ? "0" : object.get("retryCount").toString()); + String collectedBy = (object.get("collectedBy") == null ? null : object.get("collectedBy").toString()); + + TextSenseVO textSenseVO = new TextSenseVO(); + + textSenseVO.setId(id); + textSenseVO.setTaskName(name); + textSenseVO.setInputUri(inputUri); + textSenseVO.setInputFileLength(inputFileLength); + textSenseVO.setOutputUri(outputUri); + textSenseVO.setOutputFileLength(outputFileLength); + textSenseVO.setStatus(status); + textSenseVO.setCreatedat(createdAt); + textSenseVO.setQueuedat(queuedAt); + textSenseVO.setStartedat(startedAt); + textSenseVO.setCompletedat(completedAt); + textSenseVO.setUpdatedat(updatedAt); + textSenseVO.setMaxRetryCount(maxRetryCount); + textSenseVO.setMaxRetryCount(maxRetryCount); + textSenseVO.setCollectedby(collectedBy); + textSenseVO.setCallbackUri(callbackUri); + + //callback 결과 내용 디비 업데이터 처리 해주기 + textSenseService.updateTextSenseCallbackData(textSenseVO); + + System.out.println("+++++++++++++++++++++++ id ::: "+id); + System.out.println("+++++++++++++++++++++++ name ::: "+name); + System.out.println("+++++++++++++++++++++++ inputUri ::: "+inputUri); + System.out.println("+++++++++++++++++++++++ inputFileLength ::: "+inputFileLength); + System.out.println("+++++++++++++++++++++++ outputUri ::: "+outputUri); + System.out.println("+++++++++++++++++++++++ outputFileLength ::: "+outputFileLength); + System.out.println("+++++++++++++++++++++++ status ::: "+status); + System.out.println("+++++++++++++++++++++++ createdAt ::: "+createdAt); + System.out.println("+++++++++++++++++++++++ queuedAt ::: "+queuedAt); + System.out.println("+++++++++++++++++++++++ startedAt ::: "+startedAt); + System.out.println("+++++++++++++++++++++++ completedAt ::: "+completedAt); + System.out.println("+++++++++++++++++++++++ updatedAt ::: "+updatedAt); + System.out.println("+++++++++++++++++++++++ maxRetryCount ::: "+maxRetryCount); + System.out.println("+++++++++++++++++++++++ retryCount ::: "+retryCount); + System.out.println("+++++++++++++++++++++++ collectedBy ::: "+collectedBy); + System.out.println("+++++++++++++++++++++++ callbackUri ::: "+callbackUri); + + } catch (Exception e) { + System.out.println("textSenseCallbackUriPage Controller Error !!! " + e); + } } + + /** + * TextSense 요청 결과 상태값 + * SUCCESS: 작업이 성공하여 완료된 상태입니다. + * FAILURE: 작업중 오류가 발생하여 실패한 상태입니다. + * + * */ + @RequestMapping(value="/kccadr/textsence/textSenseApiStatus.do") + public ModelAndView textSenseApiStatus(TextSenseVO textSenseVO) throws Exception{ + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if(user == null) { + + modelAndView.addObject("status", "loginFail"); + return modelAndView; + + } + + try { + + String apiUrl = textSenseApiUrl + "/textsense/api/job/status"; + textSenseVO.setApiUrl(apiUrl); + + JSONObject resultJson = TextSenseAPIComm.getTextSenseApiStatus(textSenseVO); + + String resultStatus = resultJson.get("status").toString(); + + modelAndView.addObject("result", "success"); + modelAndView.addObject("textSenseSts", resultStatus); + + } catch (Exception e) { + System.out.println("textSenseApiStatus Controller Error !!! " + e); + modelAndView.addObject("result", "fail"); + return modelAndView; + } + + return modelAndView; + } + } diff --git a/src/main/resources/egovframework/sqlmap/kccadr/textsense/TextSense_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/kccadr/textsense/TextSense_SQL_Mysql.xml index 7a5c86df..d6a0ba75 100644 --- a/src/main/resources/egovframework/sqlmap/kccadr/textsense/TextSense_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/kccadr/textsense/TextSense_SQL_Mysql.xml @@ -39,7 +39,7 @@ A.TASK_NAME AS taskName, A.INPUT_URI AS inputUri, A.OUTPUT_URI AS outputUri, - A.INPUT_FILE_LENGTH AS inputFileLenth, + A.INPUT_FILE_LENGTH AS inputFileLength, A.OUTPUT_FILE_LENGTH AS outputfileLength, A.STATUS AS status, A.CREATEDAT AS createdat, @@ -88,12 +88,12 @@ A.TASK_NAME AS taskName, A.INPUT_URI AS inputUri, A.OUTPUT_URI AS outputUri, - A.INPUT_FILE_LENGTH AS inputFileLenth, - A.OUTPUT_FILE_LENGTH AS outputFileLenth, + A.INPUT_FILE_LENGTH AS inputFileLength, + A.OUTPUT_FILE_LENGTH AS outputFileLength, A.STATUS AS status, A.CREATEDAT AS createdat, A.QUEUEDAT AS queuedat, - A.STARTEDAT AS startdat, + A.STARTEDAT AS startedat, A.COMPLETEDAT AS completedat, A.UPDATEDAT AS updatedat, A.MAX_RETRY_COUNT AS maxRetryCount, @@ -111,4 +111,25 @@ + + + UPDATE ADR_TEXTSENSE_OCR SET + STATUS = #status# + , INPUT_FILE_LENGTH = #inputFileLength# + , OUTPUT_FILE_LENGTH = #outputFileLength# + , CREATEDAT = #createdat# + , QUEUEDAT = #queuedat# + , STARTEDAT = #startedat# + , COMPLETEDAT = #completedat# + , UPDATEDAT = #updatedat# + , MAX_RETRY_COUNT = #maxRetryCount# + , RETRY_COUNT = #retryCount# + , COLLECEDBY = #collectedby# + , EXTERNAL_ID = #externalId# + WHERE ID = #id# + AND TASK_NAME = #taskName# + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseDetail.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseDetail.jsp index 47d790c2..98bb8f6b 100644 --- a/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseDetail.jsp @@ -107,8 +107,8 @@ function fnListPage(){ Input 파일 길이 - - + + - @@ -121,8 +121,8 @@ function fnListPage(){ Output 파일 길이 - - + + - @@ -177,8 +177,8 @@ function fnListPage(){ 변환작업 시작 시간 - - + + - diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseList.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseList.jsp index eb915d44..2ddeb8f8 100644 --- a/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseList.jsp +++ b/src/main/webapp/WEB-INF/jsp/kccadr/textSense/EgovTextSenseList.jsp @@ -59,6 +59,63 @@ function goTextSenseDetail(id){ } +function fncTextSenseStatus(id){ + + var form = document.listForm; + form.id.value = id; + + var data = new FormData(form); + + $.ajax({ + type: "POST", + enctype: 'multipart/form-data', + url: "/kccadr/textsence/textSenseApiStatus.do", + data: data, + dataType:'json', + async: false, + processData: false, + contentType: false, + cache: false, + success: function (returnData, status) { + if(status == 'success'){ + var result = returnData.result; + var textSenseSts = returnData.textSenseSts; + + if(result == 'loginFail'){ + + alert("로그인이 필요합니다."); + return false; + + }else if(result == 'success'){ + + if(textSenseSts == 'SUCCESS'){ + + alert("OCR 변환이 정상적으로 처리되었습니다."); + return false; + + }else{ + + alert("OCR 변환이 정상적으로 처리되지 못하였습니다."); + return false; + + } + + }else{ + + alert("상태확인에 오류가 발생하였습니다."); + return false; + + } + + } else if(status== 'fail'){ + alert("상태 확인에 실패하였습니다."); + } + }, + error: function (e) { alert("상태 확인에 실패하였습니다."); console.log("ERROR : ", e); } + }); + +} + OCR 목록 @@ -114,19 +171,21 @@ function goTextSenseDetail(id){ + 번호 TaskName + 상태확인 처리상태 등록일자 - ');" style="cursor:pointer;"> + @@ -135,8 +194,9 @@ function goTextSenseDetail(id){ - - + ');" style="cursor:pointer;"> + + ');" style="cursor:pointer;"> 변환중 @@ -149,7 +209,7 @@ function goTextSenseDetail(id){ - + ');" style="cursor:pointer;">