王佳豪
2021-06-26 718f604deb342b0bee6c588bb44e22ced3371fb8
src/main/java/com/slcf/filter/UpdateThread.java
@@ -5,11 +5,16 @@
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import javax.annotation.Resource;
import com.slcf.pojo.SapRequestLogBean;
import com.slcf.service.SapRequestLogService;
import net.sf.json.JSONString;
import org.activiti.engine.impl.transformer.IntegerToString;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -40,6 +45,8 @@
//   WaitPakOutService waitPakOutService;
//   @Resource
//   private static WaitPakInServiceImpl waitPakInService;
   @Autowired
   SapRequestLogService sapRequestLogService;
   
   Logger logger=Logger.getLogger(UpdateThread.class);
   
@@ -66,9 +73,11 @@
      waitPakOutService = getWaitPakOutService();
      while(true) {
         try {
            updateWaitPakInData();
            sendPickPrintCmd();
            updateWaitPakOutData();
            updateWaitPakInData(); // 入库
            sendPickPrintCmd(); // 打印
            updateWaitPakOutData(); // 出库
            // 清空2天前的日志
            sapRequestLogService.clearSapLog();
//            updateWaitCheckData();
            Thread.sleep(5000);
         } catch (InterruptedException e) {
@@ -124,6 +133,14 @@
           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(";");
@@ -133,6 +150,14 @@
//           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){
@@ -221,11 +246,29 @@
                  }catch(Exception em) {
                  }
                  if(zstatus.equals("s") || message.contains("已经完全提供")) {//上报SAP成功,转历史档
                     // SAP INFO-----调用上架完成接口,日志记录
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakIn.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark("上架完成接口:" + message);
                     logInfo.setType(1);
                     sapRequestLogService.addSapLog(logInfo);
//                  if(zstatus.equals("s")) {
                     waitPakIn.setIo_status("Y");
                     waitPakInService.upWaitPakIn(waitPakIn);
                     waitPakInService.moveToLog(waitPakIn);
                  }else if(zstatus.equals("e")) {//上报SAP失败,更新io_status=X
                     // SAP INFO-----调用上架完成接口,日志记录
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakIn.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark("上架完成接口:" + message);
                     logInfo.setType(2);
                     sapRequestLogService.addSapLog(logInfo);
                     waitPakIn.setIo_status("X");
                     waitPakIn.setMemo(message);
                     waitPakInService.upWaitPakIn(waitPakIn);
@@ -300,6 +343,14 @@
           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(";");
@@ -310,6 +361,14 @@
//           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){
@@ -411,11 +470,29 @@
                  }catch(Exception em) {
                  }
                  if(zstatus.equals("s") || message.contains("已经完全提供") || message.contains("已确认")) {
                     // SAP INFO-----调用下架完成接口,日志记录
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setType(1);
                     logInfo.setRemark("出库完成接口:" + message);
                     sapRequestLogService.addSapLog(logInfo);
//                  if(zstatus.equals("s")) {//上报SAP成功,转历史档
                     waitPakOut.setIo_status("Y");
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
                     waitPakOutService.moveToLog(waitPakOut);
                  }else if(zstatus.equals("e")) {//上报SAP失败,更新io_status=X
                     // SAP INFO-----调用下架完成接口,日志记录
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setType(2);
                     logInfo.setRemark("出库完成接口:" + message);
                     sapRequestLogService.addSapLog(logInfo);
                     waitPakOut.setIo_status("X");
                     waitPakOut.setMemo(message);
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
@@ -491,6 +568,14 @@
           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(";");
@@ -500,6 +585,14 @@
//           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){
@@ -599,11 +692,30 @@
                     waitPakOut.setPrnstatus(2);  //打印完成
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
                     logger.error("sendPrinCommand5---调用打印接口成功,请求json数据--" + jsObj.toString());
                     logger.info("sendPrinCommand5---调用打印接口成功,返回json数据--" + sb.toString());
                     // 调用sap打印接口,记录日志
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark(message);
                     logInfo.setType(1);
                     sapRequestLogService.addSapLog(logInfo);
                  }else if(zstatus.equals("e")) {//上报SAP失败,更新io_status=X
                     waitPakOut.setPrnstatus(3);    //打印失败
                     waitPakOut.setMemo(message);
                     waitPakOutService.upWaitPakOut(waitPakOut,0);
                     logger.error("sendPrinCommand6---调用打印接口失败,请求json数据--" + message);
                     // 调用sap打印接口,记录日志
                     SapRequestLogBean logInfo = new SapRequestLogBean();
                     logInfo.setMatnr(waitPakOut.getMatnr());
                     logInfo.setRequest(jsObj.toString());
                     logInfo.setResponse(sb.toString());
                     logInfo.setCreate_time(new Date());
                     logInfo.setRemark(message);
                     logInfo.setType(2);
                     sapRequestLogService.addSapLog(logInfo);
                  }
               }
            }
@@ -613,6 +725,15 @@
            waitPakOut.setMemo(e.getMessage());
            waitPakOutService.upWaitPakOut(waitPakOut,0);
              logger.error("sendPrinCommand7---调用打印接口回报异常--"+waitPakOut.getMatnr() + "---" + e.getMessage());
            // 调用sap打印接口,记录日志
            SapRequestLogBean logInfo = new SapRequestLogBean();
            logInfo.setMatnr(waitPakOut.getMatnr());
            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){
@@ -624,6 +745,15 @@
         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;