#
mrzhssss
2022-07-28 e6a77efb062a864f012d88ebd6efb45c81f55591
src/main/java/com/slcf/filter/UpdateThread.java
@@ -1,16 +1,20 @@
package com.slcf.filter;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.HashMap;
import javax.annotation.Resource;
import com.alibaba.fastjson.JSON;
import com.slcf.pojo.SapRequestLogBean;
import com.slcf.service.SapRequestLogService;
import com.slcf.util.HttpHandler;
import net.sf.json.JSONString;
import org.activiti.engine.impl.transformer.IntegerToString;
import org.apache.log4j.Logger;
@@ -47,11 +51,11 @@
//   private static WaitPakInServiceImpl waitPakInService;
   @Autowired
   SapRequestLogService sapRequestLogService;
   Logger logger=Logger.getLogger(UpdateThread.class);
   public static int count=0;
   private WaitPakInService waitPakInService;
   public WaitPakInService getWaitPakInService() {
      return waitPakInService;
@@ -67,7 +71,7 @@
   public void setWaitPakOutService(WaitPakOutService waitPakOutService) {
      this.waitPakOutService = waitPakOutService;
   }
   public void run() {
      waitPakInService = getWaitPakInService();
      waitPakOutService = getWaitPakOutService();
@@ -79,13 +83,38 @@
            // 清空2天前的日志
            sapRequestLogService.clearSapLog();
//            updateWaitCheckData();
            Thread.sleep(5000);
            Thread.sleep(15000);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
      }
   }
    public JSONObject requestSAP(JSONObject body, String url) {
      logger.info(url);
        JSONObject resp;
            HashMap<String, Object> requestHeader = new HashMap<>();
            requestHeader.put("Accept", "application/json");
            requestHeader.put("Content-Type", "application/json");
            requestHeader.put("X-Requested-With", "X");
            requestHeader.put("Authorization","Basic TElRSTpzdGFydDEu");
            requestHeader.put("sap-client","100");
        String s = null;
        try {
            s = new HttpHandler.Builder()
                    .setUri(url)
                    .setJson(body.toString())
                    .setHeaders(requestHeader)
                    .build()
                    .doPost();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        resp = JSONObject.fromObject(s);
      logger.info("返回体:" + resp);
        return resp;
    }
   /**
    * 处理入库通知档数据
    */
@@ -94,7 +123,7 @@
//         logger.info("waitIn:" + count++);
         WaitPakInBean waitPakInBean = waitPakInService.queryWaitPakInFnh();
         if(waitPakInBean!=null) {
            String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_SRV/AsrsTrSet";
            String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_DW_SRV/AsrsTrSet";
            int result = sendPakInStatus(httpUrl,waitPakInBean);
         }
      }catch(Exception e) {
@@ -102,7 +131,7 @@
//         System.out.println(e.getMessage());
      }
   }
   /**
    * 入库完成,调用sap接口上传完成信息
    */
@@ -114,59 +143,59 @@
        String encodedPassword;
        String token="";
        String session_value="";
        HttpURLConnection connection1 = null;
//        HttpURLConnection connection1 = null;
//      try {
//         encodedPassword = base.encode(input.getBytes("UTF-8"));
//         URL url1 = new URL(httpUrl);
//           connection1 = (HttpURLConnection) url1.openConnection();
//           connection1.setDoOutput(true);
//           connection1.setDoInput(true);
//           connection1.setConnectTimeout(30000);
//           connection1.setReadTimeout(30000);
//           connection1.setRequestMethod("GET");
//           connection1.setRequestProperty("Authorization", "Basic " + encodedPassword);
//           connection1.setRequestProperty("x-csrf-token","Fetch");
//
//
//           String sessionCookie = connection1.getHeaderField("Set-Cookie");
//           if(sessionCookie==null || sessionCookie.length()<1)
//           {
//              logger.error("SAP ERROR-----调用上架完成接口,get请求获取cookie失败");
//            // SAP INFO-----调用上架完成接口,日志记录
//            SapRequestLogBean logInfo = new SapRequestLogBean();
//            logInfo.setMatnr(waitPakIn.getMatnr());
//            logInfo.setRequest("获取cookie失败,cookie值:" + sessionCookie);
//            logInfo.setResponse("SAP ERROR-----调用上架完成接口,get请求获取cookie失败");
//            logInfo.setCreate_time(new Date());
//            logInfo.setType(2);
////            sapRequestLogService.addSapLog(logInfo);
//              return result;
//           }
//           String[] sessionId = sessionCookie.split(";");
//           session_value = sessionId[0];
//           token = connection1.getHeaderField("x-csrf-token");
////           Map<String, List<String>> map = connection1.getHeaderFields();
////           token = map.get("x-csrf-token").toString();
//      } catch (Exception e1) {
//         logger.error("SAP ERROR-----调用上架完成接口1,get请求获取cookie失败。" + e1.getMessage());
//         // SAP INFO-----调用上架完成接口,日志记录
//         SapRequestLogBean logInfo = new SapRequestLogBean();
//         logInfo.setMatnr(waitPakIn.getMatnr());
//         logInfo.setRequest("获取cookie失败");
//         logInfo.setResponse("SAP ERROR-----调用上架完成接口1,get请求获取cookie失败。" + e1.getMessage());
//         logInfo.setCreate_time(new Date());
//         logInfo.setType(2);
////         sapRequestLogService.addSapLog(logInfo);
////         e1.printStackTrace();
//      }finally {
//         if(connection1!=null){
//            connection1.disconnect();
//         }
//      }
      JSONObject jsObj = new JSONObject();
      try {
         encodedPassword = base.encode(input.getBytes("UTF-8"));
         URL url1 = new URL(httpUrl);
           connection1 = (HttpURLConnection) url1.openConnection();
           connection1.setDoOutput(true);
           connection1.setDoInput(true);
           connection1.setConnectTimeout(30000);
           connection1.setReadTimeout(30000);
           connection1.setRequestMethod("GET");
           connection1.setRequestProperty("Authorization", "Basic " + encodedPassword);
           connection1.setRequestProperty("x-csrf-token","Fetch");
           String sessionCookie = connection1.getHeaderField("Set-Cookie");
           if(sessionCookie==null || sessionCookie.length()<1)
           {
              logger.error("SAP ERROR-----调用上架完成接口,get请求获取cookie失败");
            // SAP INFO-----调用上架完成接口,日志记录
            SapRequestLogBean logInfo = new SapRequestLogBean();
            logInfo.setMatnr(waitPakIn.getMatnr());
            logInfo.setRequest("获取cookie失败,cookie值:" + sessionCookie);
            logInfo.setResponse("SAP ERROR-----调用上架完成接口,get请求获取cookie失败");
            logInfo.setCreate_time(new Date());
            logInfo.setType(2);
            sapRequestLogService.addSapLog(logInfo);
              return result;
           }
           String[] sessionId = sessionCookie.split(";");
           session_value = sessionId[0];
           token = connection1.getHeaderField("x-csrf-token");
//           Map<String, List<String>> map = connection1.getHeaderFields();
//           token = map.get("x-csrf-token").toString();
      } catch (Exception e1) {
         logger.error("SAP ERROR-----调用上架完成接口1,get请求获取cookie失败。" + e1.getMessage());
         // SAP INFO-----调用上架完成接口,日志记录
         SapRequestLogBean logInfo = new SapRequestLogBean();
         logInfo.setMatnr(waitPakIn.getMatnr());
         logInfo.setRequest("获取cookie失败");
         logInfo.setResponse("SAP ERROR-----调用上架完成接口1,get请求获取cookie失败。" + e1.getMessage());
         logInfo.setCreate_time(new Date());
         logInfo.setType(2);
         sapRequestLogService.addSapLog(logInfo);
//         e1.printStackTrace();
      }finally {
         if(connection1!=null){
            connection1.disconnect();
         }
      }
      try {
         JSONObject jsObj = new JSONObject();
         JSONArray arr = new JSONArray();
         for(int i=0;i<1;i++) {
            JSONObject json = new JSONObject();
@@ -174,7 +203,7 @@
            json.put("tbnum",Long.toString(waitPakIn.getTbnum()));
            json.put("tbpos",Integer.toString(waitPakIn.getTbpos()));
            json.put("zmatid",waitPakIn.getZmatid());
            json.put("anfme",Double.toString(waitPakIn.getAnfme()));
            json.put("altme",waitPakIn.getAltme());
            json.put("nltyp","A01");
@@ -185,55 +214,57 @@
         jsObj.put("item", arr);
         byte[] buff = jsObj.toString().getBytes();
         int buffLen = buff.length;
         //创建连接
         HttpURLConnection connection = null;
           try {
//              String input = "ZHANGX:654321";
//               BASE64Encoder base = new BASE64Encoder();
//               String encodedPassword = base.encode(input.getBytes("UTF-8"));
              URL url = new URL(httpUrl);
              connection = (HttpURLConnection) url.openConnection();
              connection.setDoOutput(true);
              connection.setDoInput(true);
              connection.setRequestMethod("POST");
              connection.setConnectTimeout(30000);
              connection.setReadTimeout(30000);
//              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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
              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);
              }
            JSONObject json = requestSAP(jsObj, httpUrl);
            //创建连接
//         HttpURLConnection connection = null;
//           try {
////              String input = "ZHANGX:654321";
////               BASE64Encoder base = new BASE64Encoder();
////               String encodedPassword = base.encode(input.getBytes("UTF-8"));
//
//              URL url = new URL(httpUrl);
//              connection = (HttpURLConnection) url.openConnection();
//              connection.setDoOutput(true);
//              connection.setDoInput(true);
//              connection.setRequestMethod("POST");
//              connection.setConnectTimeout(30000);
//              connection.setReadTimeout(30000);
////              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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
//              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);
//              }
//              logger.error("SAP INFO-----调用上架完成接口,返回JSON数据:" + sb.toString());
//              System.out.println(sb.toString());
              JSONObject json = JSONObject.fromObject(sb.toString());
//              JSONObject json = JSONObject.fromObject(sb.toString());
            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<array.size();i++){
                  JSONObject job = array.getJSONObject(i);
@@ -250,11 +281,11 @@
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakIn.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setResponse(json.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark("上架完成接口:" + message);
                     logInfo.setType(1);
                     sapRequestLogService.addSapLog(logInfo);
//                     sapRequestLogService.addSapLog(logInfo);
//                  if(zstatus.equals("s")) {
                     waitPakIn.setIo_status("Y");
                     waitPakInService.upWaitPakIn(waitPakIn);
@@ -264,11 +295,11 @@
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakIn.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setResponse(json.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark("上架完成接口:" + message);
                     logInfo.setType(2);
                     sapRequestLogService.addSapLog(logInfo);
//                     sapRequestLogService.addSapLog(logInfo);
                     waitPakIn.setIo_status("X");
                     waitPakIn.setMemo(message);
                     waitPakInService.upWaitPakIn(waitPakIn);
@@ -283,22 +314,20 @@
            waitPakIn.setMemo(e.getMessage());
            waitPakInService.upWaitPakIn(waitPakIn);
              logger.error("SAP Error sendPakInStatus--"+waitPakIn.getMatnr()+"---" + e.getMessage());
            logger.error("1入库完成回报异常时ASRS请求JSON:" + jsObj.toString());
//            System.out.println(e.getMessage());
         }finally {
            if(connection!=null){
               connection.disconnect();
            }
         }
      }catch (Exception e) {
         waitPakIn.setIo_status("X");
         waitPakIn.setMemo(e.getMessage());
         waitPakInService.upWaitPakIn(waitPakIn);
         logger.error("SAP Error sendPakInStatus--"+waitPakIn.getMatnr()+"---" + e.getMessage());
//         System.out.println(e.getMessage());
      }
//      }catch (Exception e) {
//         waitPakIn.setIo_status("X");
//         waitPakIn.setMemo(e.getMessage());
//         waitPakInService.upWaitPakIn(waitPakIn);
//         logger.error("SAP Error sendPakInStatus--"+waitPakIn.getMatnr()+"---" + e.getMessage());
//         logger.error("2入库完成回报异常时ASRS请求JSON:" + jsObj.toString());
////         System.out.println(e.getMessage());
//      }
      return result;
   }
   /**
    * 处理出库通知档数据
    */
@@ -307,14 +336,14 @@
//         logger.info("waitOut:" + count++);
         WaitPakOutBean waitPakOutBean = waitPakOutService.queryWaitPakOutFnh();
         if(waitPakOutBean!=null) {
            String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_SRV/ToConHeadSet";
            String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_DW_SRV/ToConHeadSet";
            int result = sendPakOutStatus(httpUrl,waitPakOutBean);
         }
      }catch(Exception e) {
         logger.error("SAP Error updateWaitPakOutData---" + e.getMessage());
      }
   }
   /**
    * 出库完成,调用sap接口上传完成信息
    */
@@ -326,68 +355,70 @@
        String encodedPassword;
        String token="";
        String session_value="";
        HttpURLConnection connection1 = null;
//        HttpURLConnection connection1 = null;
//      try {
//         encodedPassword = base.encode(input.getBytes("UTF-8"));
//         URL url1 = new URL(httpUrl);
//           connection1 = (HttpURLConnection) url1.openConnection();
//           connection1.setDoOutput(true);
//           connection1.setDoInput(true);
//           connection1.setConnectTimeout(30000);
//           connection1.setReadTimeout(30000);
//           connection1.setRequestMethod("GET");
//           connection1.setRequestProperty("Authorization", "Basic " + encodedPassword);
//           connection1.setRequestProperty("x-csrf-token","Fetch");
//           String sessionCookie = connection1.getHeaderField("Set-Cookie");
//           if(sessionCookie==null || sessionCookie.length()<1)
//           {
//              logger.error("调用下架完成接口,get请求获取cookie失败");
//            // SAP INFO-----调用上架完成接口,日志记录
//            SapRequestLogBean logInfo = new SapRequestLogBean();
//            logInfo.setMatnr(waitPakOut.getMatnr());
//            logInfo.setRequest("获取cookie值失败,cookie:" + sessionCookie);
//            logInfo.setResponse("调用出库完成接口,get请求获取cookie失败");
//            logInfo.setCreate_time(new Date());
//            logInfo.setType(2);
////            sapRequestLogService.addSapLog(logInfo);
//              return result;
//           }
//           String[] sessionId = sessionCookie.split(";");
//           session_value = sessionId[0];
//           token = connection1.getHeaderField("x-csrf-token");
//
////           Map<String, List<String>> map = connection1.getHeaderFields();
////           token = map.get("x-csrf-token").toString();
//      } catch (Exception e1) {
//         logger.error("调用下架完成接口,get请求获取cookie失败" + e1.getMessage());
//         // SAP INFO-----调用上架完成接口,日志记录
//         SapRequestLogBean logInfo = new SapRequestLogBean();
//         logInfo.setMatnr(waitPakOut.getMatnr());
//         logInfo.setRequest("获取cookie失败");
//         logInfo.setResponse("调用出库完成接口,get请求获取cookie失败");
//         logInfo.setCreate_time(new Date());
//         logInfo.setType(2);
////         sapRequestLogService.addSapLog(logInfo);
////         e1.printStackTrace();
//      }finally{
//         if(connection1!=null){
//            connection1.disconnect();
//         }
//      }
      logger.info("TEST===>>4");
      JSONObject jsObj = new JSONObject();
      try {
         encodedPassword = base.encode(input.getBytes("UTF-8"));
         URL url1 = new URL(httpUrl);
           connection1 = (HttpURLConnection) url1.openConnection();
           connection1.setDoOutput(true);
           connection1.setDoInput(true);
           connection1.setConnectTimeout(30000);
           connection1.setReadTimeout(30000);
           connection1.setRequestMethod("GET");
           connection1.setRequestProperty("Authorization", "Basic " + encodedPassword);
           connection1.setRequestProperty("x-csrf-token","Fetch");
           String sessionCookie = connection1.getHeaderField("Set-Cookie");
           if(sessionCookie==null || sessionCookie.length()<1)
           {
              logger.error("调用下架完成接口,get请求获取cookie失败");
            // SAP INFO-----调用上架完成接口,日志记录
            SapRequestLogBean logInfo = new SapRequestLogBean();
            logInfo.setMatnr(waitPakOut.getMatnr());
            logInfo.setRequest("获取cookie值失败,cookie:" + sessionCookie);
            logInfo.setResponse("调用出库完成接口,get请求获取cookie失败");
            logInfo.setCreate_time(new Date());
            logInfo.setType(2);
            sapRequestLogService.addSapLog(logInfo);
              return result;
           }
           String[] sessionId = sessionCookie.split(";");
           session_value = sessionId[0];
           token = connection1.getHeaderField("x-csrf-token");
//           Map<String, List<String>> map = connection1.getHeaderFields();
//           token = map.get("x-csrf-token").toString();
      } catch (Exception e1) {
         logger.error("调用下架完成接口,get请求获取cookie失败" + e1.getMessage());
         // SAP INFO-----调用上架完成接口,日志记录
         SapRequestLogBean logInfo = new SapRequestLogBean();
         logInfo.setMatnr(waitPakOut.getMatnr());
         logInfo.setRequest("获取cookie失败");
         logInfo.setResponse("调用出库完成接口,get请求获取cookie失败");
         logInfo.setCreate_time(new Date());
         logInfo.setType(2);
         sapRequestLogService.addSapLog(logInfo);
//         e1.printStackTrace();
      }finally{
         if(connection1!=null){
            connection1.disconnect();
         }
      }
      try {
         JSONObject jsObj = new JSONObject();
         JSONArray arr = new JSONArray();
         for(int i=0;i<1;i++) {
            JSONObject json = new JSONObject();
            json.put("lgnum",waitPakOut.getLgnum());
            json.put("tanum",Long.toString(waitPakOut.getTanum()));
            json.put("tapos",Integer.toString(waitPakOut.getTapos()));
            double nista =  waitPakOut.getNista();
//            if(nista>0)
            if(nista>=-1 && (int)nista!=0)
//            if(nista>0)
            if(nista>=-1 && (int)nista!=0)
            {
               double vsolm = waitPakOut.getVsolm();
               if( (int)nista == -1 ) {
@@ -403,62 +434,64 @@
            json.put("arbpl","A01-01");
            arr.add(json);
         }
         int action = 3;
         if(waitPakOut.getAction()==1 && waitPakOut.getPrnstatus()==2) {
            action = 1;
         int action = 1;
         if (waitPakOut.getAction() == 3){
            action = waitPakOut.getAction();
         }
         jsObj.put("trart", Integer.toString(action));
         jsObj.put("item", arr);
         byte[] buff = jsObj.toString().getBytes();
         int buffLen = buff.length;
         //创建连接
         HttpURLConnection connection = null;
           try {
//              String input = "ZHANGX:654321";
//               BASE64Encoder base = new BASE64Encoder();
//               String encodedPassword = base.encode(input.getBytes("UTF-8"));
              URL url = new URL(httpUrl);
              connection = (HttpURLConnection) url.openConnection();
              connection.setDoOutput(true);
              connection.setDoInput(true);
              connection.setConnectTimeout(30000);
              connection.setReadTimeout(30000);
              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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
              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);
              }
//         HttpURLConnection connection = null;
//           try {
////              String input = "ZHANGX:654321";
////               BASE64Encoder base = new BASE64Encoder();
////               String encodedPassword = base.encode(input.getBytes("UTF-8"));
//
//              URL url = new URL(httpUrl);
//              connection = (HttpURLConnection) url.openConnection();
//              connection.setDoOutput(true);
//              connection.setDoInput(true);
//              connection.setConnectTimeout(30000);
//              connection.setReadTimeout(30000);
//              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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
//              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());
              JSONObject json = JSONObject.fromObject(sb.toString());
                JSONObject json = requestSAP(jsObj, httpUrl);
//              JSONObject json = JSONObject.fromObject(sb.toString());
            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);
            logger.info("出库通知档SAP返回数据集大小 ===>> " + array.size());
            if(array.size()>0) {
               for(int i=0;i<array.size();i++){
                  JSONObject job = array.getJSONObject(i);
@@ -474,11 +507,11 @@
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setResponse(json.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setType(1);
                     logInfo.setRemark("出库完成接口:" + message);
                     sapRequestLogService.addSapLog(logInfo);
//                     sapRequestLogService.addSapLog(logInfo);
//                  if(zstatus.equals("s")) {//上报SAP成功,转历史档
                     waitPakOut.setIo_status("Y");
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
@@ -488,11 +521,11 @@
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setResponse(json.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setType(2);
                     logInfo.setRemark("出库完成接口:" + message);
                     sapRequestLogService.addSapLog(logInfo);
//                     sapRequestLogService.addSapLog(logInfo);
                     waitPakOut.setIo_status("X");
                     waitPakOut.setMemo(message);
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
@@ -507,23 +540,21 @@
              waitPakOut.setIo_status("X");
            waitPakOut.setMemo(e.getMessage());
            waitPakOutService.upWaitPakOut(waitPakOut,0);
              logger.error("出库通知档回报异常--"+waitPakOut.getMatnr() + "---" + e.getMessage());
              logger.error("出库通知档回报异常1--"+waitPakOut.getMatnr() + "---" + e.getMessage());
              logger.error("1出库完成回报异常时ASRS请求JSON:" + jsObj.toString());
//            System.out.println(e.getMessage());
         }finally{
            if(connection!=null){
               connection.disconnect();
            }
         }
      }catch (Exception e) {
         waitPakOut.setIo_status("X");
         waitPakOut.setMemo(e.getMessage());
         waitPakOutService.upWaitPakOut(waitPakOut,0);
         logger.error("出库通知档回报异常--"+waitPakOut.getMatnr() + "---" + e.getMessage());
//         System.out.println(e.getMessage());
      }
//      }catch (Exception e) {
//         waitPakOut.setIo_status("X");
//         waitPakOut.setMemo(e.getMessage());
//         waitPakOutService.upWaitPakOut(waitPakOut,0);
//         logger.error("出库通知档回报异常2--"+waitPakOut.getMatnr() + "---" + e.getMessage());
//         logger.error("2出库完成回报异常时ASRS请求JSON:" + jsObj.toString());
////         System.out.println(e.getMessage());
//      }
      return result;
   }
   /**
    * 处理打印标签需求
    */
@@ -531,14 +562,14 @@
      try {
         WaitPakOutBean waitPakOutBean = waitPakOutService.getWaitPakOutPrint();
         if(waitPakOutBean!=null) {
            String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_SRV/ToConHeadSet";
            String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_DW_SRV/ToConHeadSet";
            int result = sendPrinCommand(httpUrl,waitPakOutBean);
         }
      }catch(Exception e) {
         logger.error("SAP Error updateWaitPakOutData---" + e.getMessage());
      }
   }
   /**
    * 拣料站,调用SAP打印标签接口,action=2
    */
@@ -550,56 +581,56 @@
        String encodedPassword;
        String token="";
        String session_value="";
        HttpURLConnection connection1 = null;
      try {
//         logger.error("sendPrinCommand-----调用打印接口" + waitPakOut.getMaktx());
         encodedPassword = base.encode(input.getBytes("UTF-8"));
         URL url1 = new URL(httpUrl);
           connection1 = (HttpURLConnection) url1.openConnection();
           connection1.setDoOutput(true);
           connection1.setDoInput(true);
           connection1.setConnectTimeout(30000);
           connection1.setReadTimeout(30000);
           connection1.setRequestMethod("GET");
           connection1.setRequestProperty("Authorization", "Basic " + encodedPassword);
           connection1.setRequestProperty("x-csrf-token","Fetch");
           String sessionCookie = connection1.getHeaderField("Set-Cookie");
           if(sessionCookie==null || sessionCookie.length()<1)
           {
              logger.error("调用打印接口,get请求获取cookie失败");
              // 调用sap打印接口,记录日志
            SapRequestLogBean logInfo = new SapRequestLogBean();
            logInfo.setMatnr(waitPakOut.getMatnr());
            logInfo.setRequest("调用打印接口,get请求获取cookie失败");
            logInfo.setResponse(sessionCookie);
            logInfo.setCreate_time(new Date());
            logInfo.setType(2);
            sapRequestLogService.addSapLog(logInfo);
              return result;
           }
           String[] sessionId = sessionCookie.split(";");
           session_value = sessionId[0];
           token = connection1.getHeaderField("x-csrf-token");
//           Map<String, List<String>> map = connection1.getHeaderFields();
//           token = map.get("x-csrf-token").toString();
      } catch (Exception e1) {
         logger.error("sendPrinCommand1-----调用打印接口请求cookie失败" + waitPakOut.getMaktx() + e1.getMessage());
         // 调用sap打印接口,记录日志
         SapRequestLogBean logInfo = new SapRequestLogBean();
         logInfo.setMatnr(waitPakOut.getMatnr());
         logInfo.setRequest("sendPrinCommand1-----调用打印接口请求cookie失败"  + waitPakOut.getMaktx());
         logInfo.setResponse(e1.getMessage());
         logInfo.setCreate_time(new Date());
         logInfo.setType(2);
         sapRequestLogService.addSapLog(logInfo);
         e1.printStackTrace();
      }finally{
         if(connection1!=null){
            connection1.disconnect();
         }
      }
//
//        HttpURLConnection connection1 = null;
//      try {
////         logger.error("sendPrinCommand-----调用打印接口" + waitPakOut.getMaktx());
//         encodedPassword = base.encode(input.getBytes("UTF-8"));
//         URL url1 = new URL(httpUrl);
//           connection1 = (HttpURLConnection) url1.openConnection();
//           connection1.setDoOutput(true);
//           connection1.setDoInput(true);
//           connection1.setConnectTimeout(30000);
//           connection1.setReadTimeout(30000);
//           connection1.setRequestMethod("GET");
//           connection1.setRequestProperty("Authorization", "Basic " + encodedPassword);
//           connection1.setRequestProperty("x-csrf-token","Fetch");
//           String sessionCookie = connection1.getHeaderField("Set-Cookie");
//           if(sessionCookie==null || sessionCookie.length()<1)
//           {
//              logger.error("调用打印接口,get请求获取cookie失败");
//              // 调用sap打印接口,记录日志
//            SapRequestLogBean logInfo = new SapRequestLogBean();
//            logInfo.setMatnr(waitPakOut.getMatnr());
//            logInfo.setRequest("调用打印接口,get请求获取cookie失败");
//            logInfo.setResponse(sessionCookie);
//            logInfo.setCreate_time(new Date());
//            logInfo.setType(2);
//            sapRequestLogService.addSapLog(logInfo);
//              return result;
//           }
//           String[] sessionId = sessionCookie.split(";");
//           session_value = sessionId[0];
//           token = connection1.getHeaderField("x-csrf-token");
////           Map<String, List<String>> map = connection1.getHeaderFields();
////           token = map.get("x-csrf-token").toString();
//      } catch (Exception e1) {
//         logger.error("sendPrinCommand1-----调用打印接口请求cookie失败" + waitPakOut.getMaktx() + e1.getMessage());
//         // 调用sap打印接口,记录日志
//         SapRequestLogBean logInfo = new SapRequestLogBean();
//         logInfo.setMatnr(waitPakOut.getMatnr());
//         logInfo.setRequest("sendPrinCommand1-----调用打印接口请求cookie失败"  + waitPakOut.getMaktx());
//         logInfo.setResponse(e1.getMessage());
//         logInfo.setCreate_time(new Date());
//         logInfo.setType(2);
//         sapRequestLogService.addSapLog(logInfo);
//         e1.printStackTrace();
//      }finally{
//         if(connection1!=null){
//            connection1.disconnect();
//         }
//      }
      try {
//         logger.error("sendPrinCommand2-----开始调用打印接口" + waitPakOut.getMaktx());
         JSONObject jsObj = new JSONObject();
@@ -609,9 +640,9 @@
            json.put("lgnum",waitPakOut.getLgnum());
            json.put("tanum",Long.toString(waitPakOut.getTanum()));
            json.put("tapos",Integer.toString(waitPakOut.getTapos()));
            double nista =  waitPakOut.getNista();
            if(nista>0)
            if(nista>0)
            {
               double vsolm = waitPakOut.getVsolm();
               double ndifa = vsolm - nista;
@@ -629,46 +660,47 @@
         byte[] buff = jsObj.toString().getBytes();
         int buffLen = buff.length;
         //创建连接
         HttpURLConnection connection = null;
           try {
//              String input = "ZHANGX:654321";
//               BASE64Encoder base = new BASE64Encoder();
//               String encodedPassword = base.encode(input.getBytes("UTF-8"));
              URL url = new URL(httpUrl);
              connection = (HttpURLConnection) url.openConnection();
              connection.setDoOutput(true);
              connection.setDoInput(true);
              connection.setConnectTimeout(30000);
              connection.setReadTimeout(30000);
              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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
              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();
//            logger.error("sendPrinCommand3-----调用打印接口" + waitPakOut.getMaktx());
              //读取响应
              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());
              JSONObject json = JSONObject.fromObject(sb.toString());
//         HttpURLConnection connection = null;
//           try {
////              String input = "ZHANGX:654321";
////               BASE64Encoder base = new BASE64Encoder();
////               String encodedPassword = base.encode(input.getBytes("UTF-8"));
//
//              URL url = new URL(httpUrl);
//              connection = (HttpURLConnection) url.openConnection();
//              connection.setDoOutput(true);
//              connection.setDoInput(true);
//              connection.setConnectTimeout(30000);
//              connection.setReadTimeout(30000);
//              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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
//              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();
////            logger.error("sendPrinCommand3-----调用打印接口" + waitPakOut.getMaktx());
//              //读取响应
//              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());
//              JSONObject json = JSONObject.fromObject(sb.toString());
                JSONObject json = requestSAP(jsObj, httpUrl);
            String d = json.get("d").toString();
            JSONObject jsonD = JSONObject.fromObject(d);
            String Item = jsonD.get("item").toString();
@@ -692,12 +724,12 @@
                     waitPakOut.setPrnstatus(2);  //打印完成
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
                     logger.error("sendPrinCommand5---调用打印接口成功,请求json数据--" + jsObj.toString());
                     logger.info("sendPrinCommand5---调用打印接口成功,返回json数据--" + sb.toString());
                     logger.info("sendPrinCommand5---调用打印接口成功,返回json数据--" + json.toString());
                     // 调用sap打印接口,记录日志
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setResponse(json.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark(message);
                     logInfo.setType(1);
@@ -711,7 +743,7 @@
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setResponse(json.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark(message);
                     logInfo.setType(2);
@@ -728,37 +760,33 @@
            // 调用sap打印接口,记录日志
            SapRequestLogBean logInfo = new SapRequestLogBean();
            logInfo.setMatnr(waitPakOut.getMatnr());
            logInfo.setRequest(jsObj.toString());
//            logInfo.setRequest(jsObj.toString());
            logInfo.setResponse("sendPrinCommand7---调用打印接口回报异常--"+waitPakOut.getMatnr() + "---");
            logInfo.setCreate_time(new Date());
            logInfo.setRemark(e.getMessage());
            logInfo.setType(2);
            sapRequestLogService.addSapLog(logInfo);
//            System.out.println(e.getMessage());
         }finally{
            if(connection!=null){
               connection.disconnect();
            }
         }
      }catch (Exception e) {
         waitPakOut.setPrnstatus(3);    //打印失败
         waitPakOut.setMemo(e.getMessage());
         waitPakOutService.upWaitPakOut(waitPakOut,0);
         logger.error("sendPrinCommand8---调用打印接口回报异常--"+waitPakOut.getMatnr() + "---" + e.getMessage());
         // 调用sap打印接口,记录日志
         SapRequestLogBean logInfo = new SapRequestLogBean();
         logInfo.setMatnr(waitPakOut.getMatnr());
         logInfo.setRequest("打印请求失败");
         logInfo.setResponse("sendPrinCommand8---调用打印接口回报异常--"+waitPakOut.getMatnr() + "---");
         logInfo.setCreate_time(new Date());
         logInfo.setRemark(e.getMessage());
         logInfo.setType(2);
         sapRequestLogService.addSapLog(logInfo);
//         System.out.println(e.getMessage());
      }
//      }catch (Exception e) {
//         waitPakOut.setPrnstatus(3);    //打印失败
//         waitPakOut.setMemo(e.getMessage());
//         waitPakOutService.upWaitPakOut(waitPakOut,0);
//         logger.error("sendPrinCommand8---调用打印接口回报异常--"+waitPakOut.getMatnr() + "---" + e.getMessage());
//         // 调用sap打印接口,记录日志
//         SapRequestLogBean logInfo = new SapRequestLogBean();
//         logInfo.setMatnr(waitPakOut.getMatnr());
//         logInfo.setRequest("打印请求失败");
//         logInfo.setResponse("sendPrinCommand8---调用打印接口回报异常--"+waitPakOut.getMatnr() + "---");
//         logInfo.setCreate_time(new Date());
//         logInfo.setRemark(e.getMessage());
//         logInfo.setType(2);
//         sapRequestLogService.addSapLog(logInfo);
////         System.out.println(e.getMessage());
//      }
      return result;
   }
   /**
    * 处理盘点通知档数据
    */
@@ -766,10 +794,10 @@
      try {
//         logger.info("waitCheck:" + count++);
      }catch(Exception e) {
      }
   }
   public static void main(String[] args) {
      UpdateThread Thread1=new UpdateThread();
      Thread mThread1=new Thread(Thread1,"线程1");