package th.co.muangthai.endrprint.model.wfservice; import th.co.muangthai.endrprint.wfxml.*; import java.lang.Exception; import java.util.concurrent.*; /** * Created by noname on 2/17/16. */ public class SearchPolicyDetailProxyService { public String querySearchPolicyDetail(String policyNo){ String applicationNo = ""; try { // set parameter final SearchPolicyDetailPttSOAP11BindingQSService qsService = new SearchPolicyDetailPttSOAP11BindingQSService(); final SearchPolicyDetailAdapterInput param = new SearchPolicyDetailAdapterInput(); // set parameter param.setPPolicyNo(policyNo); ExecutorService executor = Executors.newCachedThreadPool(); Callable task = new Callable(){ public SearchPolicyDetailAdapterOutputCollection call() { SearchPolicyDetailPtt queryPtt = qsService.getSearchPolicyDetailPttSOAP11BindingQSPort(); try { return queryPtt.searchPolicyDetailProcess(param); } catch (Exception_Exception e) { e.printStackTrace(); } return null; } }; Future future = executor.submit(task); SearchPolicyDetailAdapterOutputCollection vwCollection = new SearchPolicyDetailAdapterOutputCollection(); //DbAdapterAlphAIRTypeQueryOutputCollection vwCollection = queryPtt.SearchPolicyDetailAdapterOutputCollection(param); //log.info("*** Return Start > " + DateUtil.toFormatString(new Date(),"dd/MM/yyyy HH:mm:ss")); try { Object obj2 = future.get(30, TimeUnit.SECONDS); if(obj2 != null){ vwCollection = (SearchPolicyDetailAdapterOutputCollection)obj2; } } catch (TimeoutException ex) { vwCollection = new SearchPolicyDetailAdapterOutputCollection(); future.cancel(true); return ""; } catch (ExecutionException e) { // handle other exceptions } catch (InterruptedException e) { e.printStackTrace(); } finally { executor.shutdown(); } for (SearchPolicyDetailAdapterOutput data : vwCollection.getSearchPolicyDetailAdapterOutput()){ if( "1".equals(data.getSTATUSCODE()) ){ applicationNo = data.getAPPLICATIONNO(); break; } } }catch (Exception e){ applicationNo = ""; } return applicationNo; } }