From 7a6e050823ac845867f2a78011961a31a873baad Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期三, 08 三月 2023 10:12:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/ErpAccessTokenScheduler.java       |   25 ++++++
 src/main/java/com/zy/asrs/task/handler/ErpAccessTokenHandler.java |   76 +++++++++++++++++++
 src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java      |   88 ++++++++++++++++++++++
 src/main/java/com/zy/asrs/task/OrderSendScheduler.java            |   33 ++++++++
 src/main/resources/application.yml                                |    4 
 5 files changed, 224 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/ErpAccessTokenScheduler.java b/src/main/java/com/zy/asrs/task/ErpAccessTokenScheduler.java
new file mode 100644
index 0000000..70c56ae
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/ErpAccessTokenScheduler.java
@@ -0,0 +1,25 @@
+package com.zy.asrs.task;
+
+import com.zy.asrs.task.handler.ErpAccessTokenHandler;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+@Component
+public class ErpAccessTokenScheduler {
+
+    public static String accessToken = "";
+
+    @Autowired
+    private ErpAccessTokenHandler erpAccessTokenHandler;
+
+
+
+    @PostConstruct
+    @Scheduled(cron = "* 15,30,45,59 * * * ?")
+    private void accessToken(){
+        erpAccessTokenHandler.getAccessToken();
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/OrderSendScheduler.java b/src/main/java/com/zy/asrs/task/OrderSendScheduler.java
new file mode 100644
index 0000000..673f885
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/OrderSendScheduler.java
@@ -0,0 +1,33 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.service.OrderService;
+import com.zy.asrs.task.handler.OrderSendHandler;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class OrderSendScheduler {
+
+    @Autowired
+    private OrderService orderService;
+
+    @Autowired
+    private OrderSendHandler orderSendHandler;
+
+
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void looping(){
+        List<Order> orders = orderService.selectList(new EntityWrapper<Order>()
+                .eq("settle", "4")
+                .le("item_id", 3));
+        for (Order order : orders) {
+            orderSendHandler.start(order);
+        }
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/ErpAccessTokenHandler.java b/src/main/java/com/zy/asrs/task/handler/ErpAccessTokenHandler.java
new file mode 100644
index 0000000..e504be8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/ErpAccessTokenHandler.java
@@ -0,0 +1,76 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.ErpAccessTokenScheduler;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+
+@Service
+@Slf4j
+public class ErpAccessTokenHandler extends AbstractHandler<String> {
+    private String erpIp = "http://10.100.221.19:81";
+
+
+
+
+    public void getAccessToken() {
+        JSONObject appTokenJson = new JSONObject();
+        appTokenJson.put("appId","ESB");
+        appTokenJson.put("appSecuret","123456789");
+        appTokenJson.put("tenantid","ierp");
+        appTokenJson.put("accountId","1492035591649364992");
+        appTokenJson.put("language","zh_CN");
+
+        JSONObject appTokenResp;
+
+        //鑾峰彇app_token锛岀敤app_token鑾峰彇access_token
+        try {
+            appTokenResp = JSON.parseObject(new HttpHandler.Builder()
+                    .setUri(erpIp)
+                    .setPath("/ierp/api/getAppToken.do")
+                    .setJson(appTokenJson.toJSONString())
+                    .build()
+                    .doPost());
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        JSONObject data = (JSONObject) appTokenResp.get("data");
+
+        //鑾峰彇access_token
+        if ((boolean) data.get("success")) {
+            JSONObject accessTokenJson = new JSONObject();
+            accessTokenJson.put("user","13800000000");
+            accessTokenJson.put("apptoken",(String) data.get("app_token"));
+            accessTokenJson.put("tenantid","ierp");
+            accessTokenJson.put("accountId","1492035591649364992");
+            accessTokenJson.put("usertype","Mobile");
+
+            JSONObject accessTokenResp;
+            //鑾峰彇app_token锛岀敤app_token鑾峰彇access_token
+            try {
+                accessTokenResp = JSON.parseObject(new HttpHandler.Builder()
+                        .setUri(erpIp)
+                        .setPath("/ierp/api/login.do")
+                        .setJson(accessTokenJson.toJSONString())
+                        .build()
+                        .doPost());
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            JSONObject accessTokenData = (JSONObject) accessTokenResp.get("data");
+            if ((boolean)accessTokenData.get("success")) {
+                ErpAccessTokenScheduler.accessToken = (String)accessTokenData.get("access_token");
+                log.info("鏇存柊access_token, 鏂皌oken涓�:" + (String)accessTokenData.get("access_token"));
+            }
+
+        }
+
+
+
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java
new file mode 100644
index 0000000..3c86c42
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSendHandler.java
@@ -0,0 +1,88 @@
+package com.zy.asrs.task.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.DocType;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.ErpAccessTokenScheduler;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Service
+@Transactional
+public class OrderSendHandler extends AbstractHandler<String> {
+    private static final String erpIp = "10.100.221.19:81";
+    private static final String inPath = "/ierp/kapi/app/im/PurinbillApiPlugin";
+    private static final String outPath = "/ierp/kapi/app/im/SaloutbillApiPlugin";
+
+
+
+
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private DocTypeService docTypeService;
+
+    public void start(Order order) {
+        String accessToken = ErpAccessTokenScheduler.accessToken;
+        if (accessToken.equals("")) {
+            return;
+        }
+
+        HashMap<String, Object> header = new HashMap<>();
+        header.put("accessToken",accessToken);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("orderNo",order.getOrderNo());
+        HttpHandler.Builder prepBuilder = new HttpHandler.Builder()
+                .setUri(erpIp)
+                .setHeaders(header)
+                .setJson(jsonObject.toJSONString());
+        JSONObject respJson;
+
+
+        //鍏ュ簱鍗曟嵁
+        if (docTypeService.selectOne(new EntityWrapper<DocType>()
+                .eq("doc_id",order.getDocType())).getPakin() == 1) {
+            try {
+                respJson = JSON.parseObject(
+                        prepBuilder.setPath(inPath)
+                        .build()
+                        .doPost());
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }else {
+            //鍑哄簱鍗曟嵁
+            try {
+                respJson = JSON.parseObject(
+                prepBuilder.setPath(outPath)
+                        .build()
+                        .doPost());
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        if ((boolean)respJson.get("success")) {
+            orderService.updateSettle(order.getId(),6L,1L);
+            log.info("鍗曟嵁:" + order.getOrderNo() + "鍥炰紶鎴愬姛锛屽凡鏇存柊鍗曟嵁鐘舵��");
+        }else {
+
+            order.setItemId(order.getItemId() + 1);
+            orderService.updateById(order);
+            log.info("鍗曟嵁:"+ order.getOrderNo()+" 鍥炰紶澶辫触锛岃繖鏄" + order.getItemId() + "娆″洖浼�");
+            log.info(respJson.toJSONString());
+        }
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index d704656..0f0267c 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,8 +10,8 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-#    url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs
-    url: jdbc:sqlserver://192.168.4.15:1433;databasename=stasrs
+    url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs
+#    url: jdbc:sqlserver://192.168.4.15:1433;databasename=stasrs
     username: sa
     password: sa@123
   mvc:

--
Gitblit v1.9.1