package com.slcf.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.slcf.erp.ErpBean; import com.slcf.pojo.LocDetailBean; import com.slcf.pojo.LocationBean; import com.slcf.pojo.WaitCheckBean; import com.slcf.pojo.WaitPakInBean; import com.slcf.pojo.WaitPakOutBean; import com.slcf.service.LocDetailService; import com.slcf.service.LocationService; import com.slcf.service.WaitCheckService; import com.slcf.service.WaitPakInService; import com.slcf.service.WaitPakOutService; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import sun.misc.BASE64Encoder; @Controller @RequestMapping("/asrsApi") public class AsrsController { @Resource WaitPakInService waitPakInService; @Autowired WaitPakOutService waitPakOutService; @Autowired WaitCheckService waitCheckService; @Autowired LocationService locationService; @Autowired LocDetailService locDetailService; Logger logger=Logger.getLogger(AsrsController.class); /** * 上架接口 * @param requestBody * @param request * @return */ @ResponseBody // @RequestMapping("/waitPakIn.action") @RequestMapping(value="/waitPakIn.action",method={ RequestMethod.GET, RequestMethod.POST }) // public String getWaitPakIn(@RequestParam("param")String param,HttpServletRequest request){ public JSONObject getWaitPakIn(@RequestBody String requestBody,HttpServletRequest request){ // public JSONObject getWaitPakIn(HttpServletRequest request){ // String result = ""; logger.error("SAP Store Interface Data-----" + requestBody); JSONObject map = new JSONObject(); String zpallet = ""; String lgnum="0",zmatid="0"; int tbnum=0,tbpos=0; // String param = "{bdatu: \"日期bdatu1\",bzeit: \"bzeit2\",TrHeadToItem: [{lgnum: \"1\",tbnum: \"测试1\"},{lgnum: \"2\",tbnum: \"2\"}]}"; try { // System.out.println("requestBodyrequestBody@11-----" + requestBody); // logger.info("requestBodyrequestBody@11-----" + requestBody); JSONObject json = JSONObject.fromObject(requestBody); // logger.info("requestBodyrequestBody@22-----" + requestBody); //JSONArray json = JSONArray.fromObject(param); // JSONObject job = json.getJSONObject(0); // String bdatu = json.get("bdatu").toString(); // String bzeit = json.get("bzeit").toString(); String TrHeadToItem = json.get("item").toString(); JSONArray jsonArray = JSONArray.fromObject(TrHeadToItem); JSONArray arrRet = new JSONArray(); if(jsonArray.size()>0) { for(int i=0;i0) { for(int i=0;i0) { for(int i=0;i0) { for(int i=0;i0) { jsonRet.put("lgnum", job.get("lgnum").toString()); jsonRet.put("tanum", job.get("tanum").toString().equals("")?0:Integer.parseInt(job.get("tanum").toString())); jsonRet.put("tapos", job.get("tapos").toString().equals("")?0:Integer.parseInt(job.get("tapos").toString())); jsonRet.put("zstatus", "S"); jsonRet.put("message", "盘点调整成功--" + sloc_no + "--" + matnr); arrRet.add(jsonRet); logger.error("SAP Retrieve Check Interface-----盘点调整成功--" + sloc_no + "--" + matnr); }else { jsonRet.put("lgnum", job.get("lgnum").toString()); jsonRet.put("tanum", job.get("tanum").toString().equals("")?0:Integer.parseInt(job.get("tanum").toString())); jsonRet.put("tapos", job.get("tapos").toString().equals("")?0:Integer.parseInt(job.get("tapos").toString())); jsonRet.put("zstatus", "E"); jsonRet.put("message", "盘点调整失败--" + sloc_no + "--" + matnr); arrRet.add(jsonRet); logger.error("SAP Retrieve Interface Error-----盘点调整失败2--" + sloc_no + "--" + matnr); } }else { LocationBean locBean = locationService.queryLocationById(sloc_no); if(locBean==null || !locBean.getLoc_sts().equals("F")) { jsonRet.put("lgnum", job.get("lgnum").toString()); jsonRet.put("tanum", job.get("tanum").toString().equals("")?0:Integer.parseInt(job.get("tanum").toString())); jsonRet.put("tapos", job.get("tapos").toString().equals("")?0:Integer.parseInt(job.get("tapos").toString())); jsonRet.put("zstatus", "E"); jsonRet.put("message", "下架指令接收失败,源库位非在库状态--" + sloc_no); arrRet.add(jsonRet); logger.error("SAP Retrieve Interface Error-----下架指令接收失败,源库位非在库状态" + sloc_no); continue; } //String matnr = job.get("matnr").toString(); LocDetailBean locDetailBean = locDetailService.queryLocDetailById(sloc_no,matnr); // if(locDetailBean==null || locDetailBean.getAnfme()0) { for(int i=0;i0) { for(int i=0;i> map = connection1.getHeaderFields(); // token = map.get("x-csrf-token").toString(); } catch (Exception e1) { e1.printStackTrace(); } try { JSONObject jsObj = new JSONObject(); JSONArray arr = new JSONArray(); for(int i=0;i<2;i++) { JSONObject json = new JSONObject(); json.put("lgnum","385"); long tbnum = 1000000046+i*8; json.put("tbnum",Long.toString(tbnum)); json.put("tbpos",Integer.toString(i+1)); json.put("zmatid","20191124922"); int anfme=0; if(i==0) { anfme = 2; }else { anfme = 1; } json.put("anfme",Integer.toString(anfme)); json.put("altme","KG"); json.put("nltyp","A01"); json.put("nlber","001"); json.put("nlpla","0104501"); // json.put("vltyp","1"); // json.put("vlber","1"); // json.put("vlpla","1"); // json.put("zmatid","10021" + i); arr.add(json); } // jsObj.put("lgnum","123"); // jsObj.put("tbnum","456"); jsObj.put("item", arr); byte[] buff = jsObj.toString().getBytes(); int buffLen = buff.length; //创建连接 try { // String input = "ZHANGX:654321"; // BASE64Encoder base = new BASE64Encoder(); // String encodedPassword = base.encode(input.getBytes("UTF-8")); URL url = new URL(httpUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); // connection.setUseCaches(false); // connection.setInstanceFollowRedirects(true); // connection.setRequestProperty("Content-Type","text/json;charset=gb2312"); connection.setRequestProperty("Cookie", session_value); connection.setRequestProperty("Content-Type","application/json"); connection.setRequestProperty("Accept","application/json"); connection.setRequestProperty("Content-Length","" + buffLen); // connection.setRequestProperty("Authorization", "Basic " + encodedPassword); connection.setRequestProperty("x-csrf-token",token); //POST请求 OutputStream out = connection.getOutputStream(); out.write(buff); out.close(); //读取响应 BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream())); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes(), "utf-8"); sb.append(lines); } System.out.println(sb.toString()); }catch (Exception e) { System.out.println(e.getMessage()); } }catch (Exception e) { System.out.println(e.getMessage()); } } /** * 获取get返回的token * @param urlStr * @return */ public static String getXCsrfToken(String urlStr) { String result = ""; try { // String username = "zhangsan"; // String password = "mima"; String input = "ZHANGX:654321"; BASE64Encoder base = new BASE64Encoder(); String encodedPassword = base.encode(input.getBytes("UTF-8")); URL url = new URL(urlStr); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("GET"); connection.setRequestProperty("Authorization", "Basic " + encodedPassword); connection.setRequestProperty("x-csrf-token","Fetch"); Map> map = connection.getHeaderFields(); // Map> map2 = conn.getRequestProperties(); // System.out.println("显示响应Header信息...\n"); // for (Map.Entry> entry : map.entrySet()) { // System.out.println("Key : " + entry.getKey() + // " ,Value : " + entry.getValue()); // } // System.out.println("Content-Type---->"+map.get("Content-Type")); System.out.println("x-csrf-token---->"+map.get("x-csrf-token")); result = map.get("x-csrf-token").toString(); // System.out.println("\n使用key获得响应Header信息 \n"); // List server = map.get("Server"); // if (server == null) { // System.out.println("Key 'Server' is not found!"); // } else { // for (String values : server) { // System.out.println(values); // } // } } catch (IOException e) { e.printStackTrace(); } return result; } public static void main(String[] args) { try { String message1="%E8%A1%8C%E9%A1%B910000174610001%E4%B8%8D%E5%AD%98%E5%9C%A8%E6%88%96%E8%80%85%E4%B8%8E%E6%8B%A3%E9%85%8D%E6%97%A0%E5%85%B3"; message1 = java.net.URLDecoder.decode("%E8%A1%8C%E9%A1%B910000174610001%E4%B8%8D%E5%AD%98%E5%9C%A8%E6%88%96%E8%80%85%E4%B8%8E%E6%8B%A3%E9%85%8D%E6%97%A0%E5%85%B3", "utf-8"); String param = "{\"d\": {\"Item\": {\"results\": [{\"lgnum\": \"385\",\"zstatus\": \"s\",\"tbnum\": \"0000000011\",\"message\": \"aa转储请求 0000000011 不存在(请检查你的输入)\",\"tbpos\": \"0011\",\"zmatid\": \"231\"}]}}}"; JSONObject json = JSONObject.fromObject(param); String d = json.get("d").toString(); JSONObject jsonD = JSONObject.fromObject(d); String Item = jsonD.get("Item").toString(); JSONObject jsonItem = JSONObject.fromObject(Item); String results = jsonItem.get("results").toString(); JSONArray array = JSONArray.fromObject(results); if(array.size()>0) { for(int i=0;i> map = conn.getHeaderFields(); // System.out.println("显示响应Header信息...\n"); // //// for (Map.Entry> entry : map.entrySet()) { //// System.out.println("Key : " + entry.getKey() + //// " ,Value : " + entry.getValue()); //// } // System.out.println("Content-Type---->"+map.get("Content-Type")); // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } catch (MalformedURLException e1) { // // TODO Auto-generated catch block // e1.printStackTrace(); // } // byte[] buff = jsObj.toString().getBytes(); String content = "test"; byte[] buff = content.getBytes(); int buffLen = buff.length; //创建连接 // String ADD_URL = "http://127.0.0.1:8080/asrs/asrsApi/waitPakIn.action"; String ADD_URL = "http://www.baidu.com"; try { URL url = new URL(ADD_URL); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("GET"); // connection.setUseCaches(false); // connection.setInstanceFollowRedirects(true); // connection.setRequestProperty("Content-Type","text/json;charset=gb2312"); // connection.setRequestProperty("Content-Length","" + buffLen); //POST请求 // OutputStream out = connection.getOutputStream(); // out.write(buff); // out.close(); Map> map = connection.getHeaderFields(); System.out.println("Content-Type---->"+map.get("Content-Type")); //读取响应 BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream())); String lines; StringBuffer sb = new StringBuffer(""); while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes(), "utf-8"); sb.append(lines); } System.out.println(sb.toString()); }catch (Exception e) { System.out.println(e.getMessage()); } // try { // String param = "{bdatu: \"bdatu1\",bzeit: \"bzeit2\",TrHeadToItem: [{lgnum: \"1\",tbnum: \"1\"},{lgnum: \"2\",tbnum: \"2\"}]}"; // JSONObject json = JSONObject.fromObject(param); // // JSONArray json = JSONArray.fromObject(param); //// JSONObject job = json.getJSONObject(0); // String bdatu = json.get("bdatu").toString(); // String TrHeadToItem = json.get("TrHeadToItem").toString(); // JSONArray jsonArray = JSONArray.fromObject(TrHeadToItem); // if(jsonArray.size()>0) { // for(int i=0;i