aijinhui
2023-09-06 94957a09881d41800588afeb6b357c29d2f2cdc3
设备健康列表
已添加2个文件
已修改3个文件
150 ■■■■■ 文件已修改
ard-work/pom.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/soap/ARDSoapUtil.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/pom.xml
@@ -181,7 +181,11 @@
            <artifactId>javax.xml.rpc-api</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
        </dependency>
    </dependencies>
ard-work/src/main/java/com/ruoyi/health/controller/HealthController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.ruoyi.health.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.utils.result.Results;
import com.ruoyi.utils.soap.ARDSoapUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @author Administrator
 */
@RestController
@RequestMapping("/health")
@Api(tags = "设备健康管理")
public class HealthController {
    @Autowired
    ISysConfigService configService;
    @PreAuthorize("@ss.hasPermi('sy:syCar:getSDKCarPositionByRight')")
    @ApiOperation("获取设备列表")
    @GetMapping("getEquipmentList")
    public Results getEquipmentList(){
        String url = configService.getHealth();
        JSONObject j = new JSONObject();
        Map<String, Object> map = new HashMap();
        String result = ARDSoapUtil.postSoapResult(url, "GetEquipmentList", map);
        if ("".equals(result)) {
            //返回结果为空
            return Results.error("查询失败!");
        }
        Map<String, Object> mapResult = (Map<String, Object>) JSON.parse((String) result);
        if ((int) mapResult.get("code") == 200) {
            j.put("code", mapResult.get("code"));
            List<Map<String, Object>> listResult = (List<Map<String, Object>>) JSON.parse((String) mapResult.get("resdata"));
            for (int i = 0; i < listResult.size(); i++) {
                Map<String, Object> mapTemp = listResult.get(i);
                int id = (Integer) mapTemp.get("id");  //主键id
                String equipKey = (String) mapTemp.get("EquipKey");  //设备Key
                String equipNumber = (String) mapTemp.get("EquipNumber");  //设备编号
                String equipName = (String) mapTemp.get("EquipName");   //设备名称
                String equipLevel = (String) mapTemp.get("EquipLevel");  //设备报警等级 0正常 1注意 2严重
                String measureDate = (String) mapTemp.get("MeasureDate");  //最近一次测量时间
                j.put(id + "", mapTemp);
            }
        } else {
            //错误提示
            j.put("errmsg", mapResult.get("errmsg"));
            j.put("code", mapResult.get("code"));
        }
        return Results.succeed(j);
    }
}
ard-work/src/main/java/com/ruoyi/utils/soap/ARDSoapUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.ruoyi.utils.soap;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.namespace.QName;
import java.util.HashMap;
import java.util.Map;
/**设备健康接口
 * 20221130
 * zj
 * */
public class ARDSoapUtil {
    private static String  url = "http://221.1.80.74:15024/ZX/ZX2WebService.asmx";
    /**post方法获取数据
     * String url ,
     * **/
    public static String  postSoapResult(String url , String method ,Map<String , Object> map){
        try {
            //字符集
            String encodingStyle = "utf-8";
            //WSDL的地址
            String endpoint = url + "?wsdl";
            //命名空间,在WSDL中对应的标签是:参见说明第3条
            String targetNamespace = "http://tempuri.org/";
            //具体方法的调用URI,在WSDL中对应的标签是:参见说明第4条
            String soapActionURI = "http://tempuri.org/" + method;
            //具体调用的方法名,在WSDL中对应的标签是:参见说明第5条
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setSOAPActionURI(soapActionURI);
            call.setTargetEndpointAddress(new java.net.URL(endpoint));  //设置目标接口的地址
            call.setEncodingStyle(encodingStyle);//设置传入服务端的字符集格式如utf-8等
            call.setOperationName(new QName(targetNamespace,method));// å…·ä½“调用的方法名,可以由接口提供方告诉你,也可以自己从WSDL中找
            call.setUseSOAPAction(true);
//            call.setReturnType(XMLType.XSD_STRING);
            Object[] o = new Object[map.size()];
            int i=0;
            for (String key :map.keySet() ){
                 call.addParameter(new QName(targetNamespace , key),
                         XMLType.XSD_INTEGER,
                         javax.xml.rpc.ParameterMode.IN);
                 o[i] = map.get(key);
                 i++;
            }
            String  result =  (String) call.invoke(o);
            // æ‰“印返回值
            System.out.println("result is :"+result);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java
@@ -93,4 +93,9 @@
     */
    String getSYURL();
    /**
     * è®¾å¤‡å¥åº·ç®¡ç†
     * @return
     */
    String getHealth();
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -240,4 +240,14 @@
            return "";
        }
    }
    @Override
    public String getHealth() {
        List<SysConfig> result = configMapper.selectByType("health");
        if(result.size() > 0){
            return result.get(0).getConfigValue();
        }else{
            return "";
        }
    }
}