自动化立体仓库 - WMS系统
zjj
2023-12-27 d814bde01eb91d1544b718463cd31317726bbf6b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.zy.asrs.task.handler;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.exception.CoolException;
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) {
            log.info("连接erp服务器超时");
            return;
        }
        JSONObject data = null;
        try {
            data = (JSONObject) appTokenResp.get("data");
 
        } catch (Exception e) {
            System.out.println("获取appToken为空");
            throw new CoolException(e);
        }
        if(data == null){
            return;
        }
        if (data == null) {
            return;
        }
        //获取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 = null;
            try {
                accessTokenData = (JSONObject) accessTokenResp.get("data");
            } catch (Exception e) {
                System.out.println("获取accessToken为空");
                throw new CoolException(e);
            }
 
            if ((boolean) accessTokenData.get("success")) {
                ErpAccessTokenScheduler.accessToken = (String) accessTokenData.get("access_token");
                log.info("更新access_token, 新token为:" + (String) accessTokenData.get("access_token"));
            }
 
        }
 
 
    }
}