/* * resources.getEntityManagerContainer() // 实体管理容器. * resources.getContext() //上下文根. * resources.getOrganization() //组织访问接口. * requestText //请求内容. * request //请求对象. */ print("运行渠道任务工单任务同步实时接口"); var File = Java.type('java.io.File'); var Root_Dir_Record = "D:"+File.separator+'FTPFile'+ File.separator + "ChannelTaskRecorder" + File.separator ; var recordFile = null; var workcompletedid = ""; var pw = null; function createRecordFile(){ var Date = Java.type( "java.util.Date" ); var now = new Date(); var recordPath = Root_Dir_Record + new java.text.SimpleDateFormat("yyyy").format(now) + File.separator + new java.text.SimpleDateFormat("MM").format(now) + File.separator + new java.text.SimpleDateFormat("dd").format(now) + File.separator + "Add"; var recordDir = new File(recordPath); if (!recordDir.exists()) { if(!recordDir.mkdirs()){ print( "创建记录文件夹失败:"+ recordPath ); recordDir = null; } } if( recordDir !== null ){ var recordFilePath = recordPath + File.separator + workcompletedid + ".txt"; recordFile = new File(recordFilePath); if (recordFile.exists()) { // 如果已存在,删除旧文件 recordFile.delete(); } if(!recordFile.createNewFile()){ print("不能记录文件:"+recordFilePath); recordFile = null; }else{ print("创建记录文件:"+recordFilePath); } } } function printRecorder( text ){ print(text); if( recordFile == null )createRecordFile(); if( recordFile == null )return; if( pw == null )pw = new java.io.PrintWriter(recordFile, "GBK"); pw.print( text ); pw.write(0x0d); pw.write(0x0a); } function getPureText( str ){ if( str === null )return str; if( str.substr( 0 , 1 ) === "\"" ){ str = str.substr( 1, str.length - 1 ); } if( str.substr( str.length - 1 , 1 ) === "\"" ){ str = str.substr( 0, str.length - 1 ); } return str; } function getWorkCompleteIds(){ var ArrayList = Java.type('java.util.ArrayList'); var idList = new ArrayList(); var filterList = {"filterList": [{ "logic":"and", "path": "interfaceStatus", "title": "接口状态", "comparison":"equals", "comparisonTitle":"等于", "value": "detailDone", "formatType":"textValue" }]}; var json = resources.getWebservicesClient().jaxrsPut('x_query_assemble_surface', "view/flag/workCompletedByBranch/query/channelTask/execute", JSON.stringify( filterList ) ); var obj = json.getAsJsonObject(); var grid = obj.get("grid"); if( grid ){ var workData = grid.getAsJsonArray(); var iter = workData.iterator(); while(iter.hasNext()) { //如果存在,则调用next实现迭代 var data = iter.next(); //把Object型强转成int型 if( data && data != null ){ var d = data.get("data"); if( d && d!=null ){ var workCompletedId = d.get("workCompletedId"); if( workCompletedId && workCompletedId != null ){ workCompletedId = getPureText(workCompletedId.toString()); idList.add( workCompletedId ) } } } } } return idList; } //function getWorkCompleteId(){ // var filterList = {"filterList": [{ // "logic":"and", // "path": "interfaceStatus", // "title": "接口状态", // "comparison":"equals", // "comparisonTitle":"等于", // "value": "detailDone", // "formatType":"textValue" // }]}; // var json = resources.getWebservicesClient().jaxrsPut('x_query_assemble_surface', "view/flag/workCompletedByBranch/query/channelTask/execute", JSON.stringify( filterList ) ); // // var obj = json.getAsJsonObject(); // var grid = obj.get("grid"); // if( grid ){ // var workData = grid.getAsJsonArray(); // if( workData.size() > 0 ){ // var data = workData.get(0); // if( data && data != null ){ // var d = data.get("data"); // if( d && d!=null ){ // var workCompletedId = d.get("workCompletedId"); // if( workCompletedId && workCompletedId != null ){ // workCompletedId = getPureText(workCompletedId.toString()); // return workCompletedId; // } // } // } // } // } // return null; //} function getIdo(){ var Random = Java.type("java.util.Random"); var random = new Random(); var result=""; for (var i=0; i< 14; i++){ result += random.nextInt(10); } return result; } function getXml( data ){ var Date = Java.type( "java.util.Date" ); var now = new Date(); var nowStr = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(now); var xml = ''; xml += ''; xml += ''; xml += ''; xml += 'addChannelTask'; xml += ''+ getIdo() +''; xml += ''; xml += ''; xml += ''; xml += ''; xml += ''+ ( data.provinceWorkId || data.cityWorkId || data.countyWorkId || data.branchWorkId ) +''; xml += ''+data.branchWorkId+''; xml += ''+data.subject+''; xml += ''+ data.cityBSSId +''; xml += '' + data.branchBSSId + ''; xml += ''+data.taskType+''; xml += ''; xml += ''+ data.numberCount +''; xml += ''+ (data.reward_branch || data.reward_county || data.reward_city || data.reward) +''; xml += ''+ data.File_Name +''; xml += ''+ data.taskStartDate.replace(/-/g,'') +'000000'; xml += ''+ data.taskEndDate.replace(/-/g,'') +'235959'; xml += ''+ nowStr +''; xml += ''; xml += ''; xml += ''; printRecorder("请求xml="+xml); return xml; } function sendData( xml ) { var addr = 'http://130.30.6.38:12007/adapter'; var ArrayList = Java.type('java.util.ArrayList'); var heads = new ArrayList(); var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair'); //var p1 = new NameValuePair('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'); var p1 = new NameValuePair('Content-Type', 'text/xml; charset=utf-8'); heads.add(p1); //var parameters = '&data=' + encodeURIComponent(xml); var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection'); var resp = HttpConnectionClass.postAsString(addr, heads, xml); //print(resp); return resp; } function getText(root, tag){ var list = root.getElementsByTagName(tag); if( list == null )return null; var node = list.item(0); if( node == null )return null; return node.getTextContent(); } function setWorkFlag( workCompletedId, json ){ if( json.Response_code === "0000" ){ resources.getWebservicesClient().jaxrsPut('x_processplatform_assemble_surface', "data/workcompleted/"+workCompletedId+"/interfaceStatus", "syncDone" ); }else{ resources.getWebservicesClient().jaxrsPut('x_processplatform_assemble_surface', "data/workcompleted/"+workCompletedId+"/interfaceStatus2", "syncError" ); } if( json.Response_desc ){ resources.getWebservicesClient().jaxrsPut('x_processplatform_assemble_surface', "data/workcompleted/"+workCompletedId+"/interfaceResponseDesc", json.Response_desc ); } printRecorder( "workCompletedId为"+workCompletedId+"的工单设置标志位成功" ); } function parseResp( xmlStr ){ // var resp = ''; // resp+=''; // resp+= ''; // resp+= 'addChannelTask'; // resp+= ''; // resp+= ''; // resp+=''; // resp+=''; // resp+= ''; // resp+= '0000'; // resp+= 'success'; // resp+= ''; // resp+=''; // printRecorder( "BSS端返回" + resp ); // var title = resp.substr( 0, resp.indexOf('?>')+2 ); // var root = resp.substr( resp.indexOf('?>')+2, resp.length ); // var xmlStr = title + "" + root + ""; //printRecorder( "xmlStr="+xmlStr ); var DocumentBuilderFactory = Java.type('javax.xml.parsers.DocumentBuilderFactory'); var StringReader = Java.type('java.io.StringReader'); var InputSource = Java.type('org.xml.sax.InputSource'); var dbf = DocumentBuilderFactory.newInstance(); var db = dbf.newDocumentBuilder(); var sr = new StringReader(xmlStr); var is = new InputSource(sr); var document = db.parse(is); var root = document.getDocumentElement(); var Response_code = getText(root,"Response_code"); var Response_desc = getText(root,"Response_desc"); printRecorder( "Response_code=" + Response_code ); printRecorder( "Response_desc=" + Response_desc ); return { "Response_code" : Response_code, "Response_desc" : Response_desc } } function init(){ var idList = getWorkCompleteIds(); print( "idList="+idList ); if( idList.size() === 0 ){ print("未找到需要同步的工单"); } for(var i = 0; i