Browse Source

快递状态反馈接口优化

chenxinglong 5 years ago
parent
commit
bf108523fb

+ 4 - 7
clis/com/behosoft/lis/common/subscriber/BsCarriertrackingStatusFeedbackSubscriber.java

@@ -114,7 +114,7 @@ public class BsCarriertrackingStatusFeedbackSubscriber extends AbstractDataSubsc
 	 */
 	private void packingRequestData(CustomerVO customer, String url) {
 		Map<String, Object> params = new HashMap<String, Object>();
-        params.put("url", url);
+        params.put("path", url);
         
         //查询百胜货主符合条件的发运单
         List<DeliverDocument> deliverDocumentList = deliverDocumentService.findByCustomerId(customer.getCustomerId());
@@ -130,13 +130,11 @@ public class BsCarriertrackingStatusFeedbackSubscriber extends AbstractDataSubsc
 		    
 		    if (CollectionUtils.isNotEmpty(carriertrackingStatusList)) {
 		    	for (CarriertrackingStatus carriertrackingStatus : carriertrackingStatusList) {
-		    		JSONObject request = new JSONObject();
-					request.put("carrierTrackingNumber", carriertrackingStatus.getCarrierTrackingNumber());
-					request.put("status", carriertrackingStatus.getEvent());
-					params.put("requestData", request.toString());
+					params.put("carrierTrackingNumber", carriertrackingStatus.getCarrierTrackingNumber());
+					params.put("status", carriertrackingStatus.getEvent());
 					
 					//发送请求,并获取响应
-		            Map<String, String> result = HttpUtils.httpPost(params);
+		            Map<String, String> result = HttpUtils.httpGet(params);
 		            
 		            if (result.containsKey("response") && result.get("response") != null) {
 	        			JSONObject json = JSONObject.fromObject(result.get("response"), JSONUtil.getJsonConfig());
@@ -150,7 +148,6 @@ public class BsCarriertrackingStatusFeedbackSubscriber extends AbstractDataSubsc
 					}
 		    	}
 		    }
-
 		}
 	}
 }

+ 10 - 13
clis/com/behosoft/lis/common/subscriber/BsOmsPickInboundFeedbackSubscriber.java

@@ -211,22 +211,19 @@ public class BsOmsPickInboundFeedbackSubscriber extends AbstractDataSubscriber<W
 			 			
 			 			params.put("requestData", request.toString());
 					}
-					//采购订单反馈接口,百胜方不做任何处理,直接修改反馈状态为1
-					omsPickInbound.setIsFeedback(1);
-					omsPickInboundService.updateEntity(omsPickInbound);
 					//发送请求,并获取响应
 	                Map<String, String> result = HttpUtils.httpPost(params);
 	                
-//	                if (result.containsKey("response") && result.get("response") != null) {
-//	        			JSONObject json = JSONObject.fromObject(result.get("response"), JSONUtil.getJsonConfig());
-//	                	
-//						//如果响应成功,更新采购单是否反馈标识为是
-//						if (json.containsKey("resultCode") && json.get("resultCode") != null && "0".equals(json.get("resultCode").toString())) {
-//							omsPickInbound.setIsFeedback(1);
-//							
-//							omsPickInboundService.updateEntity(omsPickInbound);
-//						}
-//					}
+	                if (result.containsKey("response") && result.get("response") != null) {
+	        			JSONObject json = JSONObject.fromObject(result.get("response"), JSONUtil.getJsonConfig());
+	                	
+						//如果响应成功,更新采购单是否反馈标识为是
+						if (json.containsKey("resultCode") && json.get("resultCode") != null && "0".equals(json.get("resultCode").toString())) {
+							omsPickInbound.setIsFeedback(1);
+							
+							omsPickInboundService.updateEntity(omsPickInbound);
+						}
+					}
 				}
 			}
 		}

+ 59 - 0
framework/com/behosoft/util/HttpUtils.java

@@ -12,8 +12,17 @@
  */
 package com.behosoft.util;
 
+import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import net.sf.json.JSONObject;
 import org.apache.commons.httpclient.HttpClient;
@@ -66,4 +75,54 @@ public class HttpUtils {
         }
         return result;
 	}
+	
+	public static Map<String, String> httpGet(Map<String, Object> params){
+		Map<String, String> result = new HashMap<String, String>();
+        try
+        {
+        	String path = params.get("path").toString();
+        	String carrierTrackingNumber = params.get("carrierTrackingNumber").toString();
+    		String status = params.get("status").toString();
+    		
+    		logger.info("request: " + path + "?carrierTrackingNumber=" + carrierTrackingNumber + "&status=" + status);
+    		
+    		String urlNameString = path + "?carrierTrackingNumber=" + carrierTrackingNumber + "&status=" + URLEncoder.encode(status, "UTF-8");
+    		
+            URL url = new URL(urlNameString);
+            
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); 
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            conn.setRequestMethod("GET");
+            
+            conn.connect(); 
+            
+            //获取URLConnection对象对应的输入流
+            InputStream is = conn.getInputStream();
+            //构造一个字符流缓存
+            BufferedReader br = new BufferedReader(new InputStreamReader(is));
+            String str = "";
+            StringBuffer sb = new StringBuffer();
+            while ((str = br.readLine()) != null) {
+            	str = new String(str.getBytes(),"UTF-8");
+            	sb.append(str);
+            }
+            is.close();
+            conn.disconnect();
+            result.put("response", sb.toString());
+            logger.info("response: " + sb.toString());
+        }
+        catch (Exception e)
+        {
+        	logger.error("服务器异常:" + e.getMessage());
+        }
+        return result;
+	}
+	
+	public static void main(String[] args) {
+        System.out.println("");
+	}
 }