zouyu
6 小时以前 52a7c9b093bcb05ee128b3ad8338007aad2cfccb
ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java
@@ -3,7 +3,11 @@
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ruoyi.common.config.mes.MesConfig;
import com.ruoyi.common.config.mes.MesProperties;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@@ -15,20 +19,23 @@
@Component
public class MesApiUtils {
    @Value("${mes.ztns.ip}")
    String ip;
    @Autowired
    private MesConfig mesConfig;
    @Value("${mes.ztns.user}")
    String user;
    @Value("${mes.ztns.password}")
    String password;
    /**
     * 根据工厂域回去mes配置
     * @param contract
     * @return
     */
    public MesProperties getMesPropertiesByContract(String contract){
        return mesConfig.getProps().stream().filter(f-> org.apache.commons.lang3.StringUtils.equals(f.getContract(),contract)).findFirst().orElse(new MesProperties());
    }
    /**
     * 获取token请求链接
     * @return
     */
    private String getAuthTokenUrl() {
    private String getAuthTokenUrl(String ip) {
        return ip + "/auth/oauth/token?randomStr=blockPuzzle&grant_type=password";
    }
@@ -36,7 +43,7 @@
     * 新增实时库存请求链接
     * @return
     */
    private String getBatchAddStockUrl(){
    private String getBatchAddStockUrl(String ip){
        return ip + "/mes/stock/batchAddStock";
    }
@@ -44,12 +51,12 @@
     * 获取mes系统token
     * @return 接口响应结果
     */
    public String getToken(){
    public String getToken(MesProperties mesProperties){
        try{
            Map<String,Object> bodyMap = new HashMap<>();
            bodyMap.put("username",user);
            String bodyStr = "username="+user+"&password="+password;
            String response = HttpRequest.post(getAuthTokenUrl())
            bodyMap.put("username",mesProperties.getUser());
            String bodyStr = "username="+mesProperties.getUser()+"&password="+mesProperties.getPassword();
            String response = HttpRequest.post(getAuthTokenUrl(mesProperties.getIp()))
                    .header("Authorization", "Basic cGlnOnBpZw==")
                    .header("Content-Type", "application/x-www-form-urlencoded")
                    .body(bodyStr,"application/x-www-form-urlencoded").execute().body();
@@ -67,13 +74,15 @@
    /**
     * mes新增实时库存接口
     * @param contract 工厂域
     * @param requestJsonStr 请求参数json字符串
     * @return 接口响应结果
     */
    public boolean batchAddStock(String requestJsonStr){
    public boolean batchAddStock(String contract,String requestJsonStr){
        try{
            String response = HttpRequest.post(getBatchAddStockUrl())
                    .header("Authorization", getToken())
            MesProperties mesProperties = getMesPropertiesByContract(contract);
            String response = HttpRequest.post(getBatchAddStockUrl(mesProperties.getIp()))
                    .header("Authorization", getToken(mesProperties))
                    .header("Content-Type", "application/json")
                    .body(requestJsonStr)
                    .execute()
@@ -82,11 +91,11 @@
            if(entries.getInt("code")==0){
                return true;
            }else{
                throw new RuntimeException("同步到MES失败:"+entries.getStr("msg"));
                throw new RuntimeException("【"+contract+"】同步到MES失败:"+entries.getStr("msg"));
            }
        }catch (Exception e){
            e.printStackTrace();
            throw new RuntimeException("同步MES实时库存接口异常:"+e.getMessage());
            throw new RuntimeException("【"+contract+"】同步MES实时库存接口异常:"+e.getMessage());
        }
    }