丁治程 9 hónapja%!(EXTRA string=óta)
szülő
commit
d91778b9a5
16 módosított fájl, 880 hozzáadás és 0 törlés
  1. 197 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/controller/IotedgeCollectDataController.java
  2. 24 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/entity/IoTEdgeDevices.java
  3. 79 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/entity/IotedgeCollectData.java
  4. 24 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/entity/IotedgeTag.java
  5. 17 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/mapper/IotedgeCollectDataMapper.java
  6. 5 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/mapper/xml/IotedgeCollectDataMapper.xml
  7. 19 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/IIotedgeCollectDataService.java
  8. 81 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/RestClientService.java
  9. 90 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/impl/IotedgeCollectDataServiceImpl.java
  10. 177 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/controller/IotedgeConfigController.java
  11. 71 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/entity/IotedgeConfig.java
  12. 17 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/IotedgeConfigMapper.java
  13. 5 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/xml/IotedgeConfigMapper.xml
  14. 16 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/IIotedgeConfigService.java
  15. 32 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/impl/IotedgeConfigServiceImpl.java
  16. 26 0
      jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/util/ConfigInfo.java

+ 197 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/controller/IotedgeCollectDataController.java

@@ -0,0 +1,197 @@
+package org.jeecg.modules.iotedgeCollectData.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONObject;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.iotedgeCollectData.entity.IoTEdgeDevices;
+import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
+import org.jeecg.modules.iotedgeCollectData.service.IIotedgeCollectDataService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecg.modules.iotedgeCollectData.service.RestClientService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: iotedge_collect_data
+ * @Author: jeecg-boot
+ * @Date:   2024-05-22
+ * @Version: V1.0
+ */
+@Api(tags="采集数据")
+@RestController
+@RequestMapping("/iotedgeCollectData/iotedgeCollectData")
+@Slf4j
+public class IotedgeCollectDataController extends JeecgController<IotedgeCollectData, IIotedgeCollectDataService> {
+	@Autowired
+	private IIotedgeCollectDataService iotedgeCollectDataService;
+
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param iotedgeCollectData
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "iotedge_collect_data-分页列表查询")
+	@ApiOperation(value="采集数据-分页列表查询", notes="采集数据-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<IotedgeCollectData>> queryPageList(IotedgeCollectData iotedgeCollectData,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<IotedgeCollectData> queryWrapper = QueryGenerator.initQueryWrapper(iotedgeCollectData, req.getParameterMap());
+		Page<IotedgeCollectData> page = new Page<IotedgeCollectData>(pageNo, pageSize);
+		IPage<IotedgeCollectData> pageList = iotedgeCollectDataService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param iotedgeCollectData
+	 * @return
+	 */
+	@AutoLog(value = "采集数据-添加")
+	@ApiOperation(value="采集数据-添加", notes="采集数据-添加")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_collect_data:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody IotedgeCollectData iotedgeCollectData) {
+		iotedgeCollectDataService.save(iotedgeCollectData);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param iotedgeCollectData
+	 * @return
+	 */
+	@AutoLog(value = "采集数据-编辑")
+	@ApiOperation(value="采集数据-编辑", notes="采集数据-编辑")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_collect_data:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody IotedgeCollectData iotedgeCollectData) {
+		iotedgeCollectDataService.updateById(iotedgeCollectData);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "采集数据-通过id删除")
+	@ApiOperation(value="采集数据-通过id删除", notes="采集数据-通过id删除")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_collect_data:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		iotedgeCollectDataService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "采集数据-批量删除")
+	@ApiOperation(value="采集数据-批量删除", notes="采集数据-批量删除")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_collect_data:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.iotedgeCollectDataService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "iotedge_collect_data-通过id查询")
+	@ApiOperation(value="采集数据-通过id查询", notes="采集数据-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<IotedgeCollectData> queryById(@RequestParam(name="id",required=true) String id) {
+		IotedgeCollectData iotedgeCollectData = iotedgeCollectDataService.getById(id);
+		if(iotedgeCollectData==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(iotedgeCollectData);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param iotedgeCollectData
+    */
+    //@RequiresPermissions("org.jeecg.modules:iotedge_collect_data:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, IotedgeCollectData iotedgeCollectData) {
+        return super.exportXls(request, iotedgeCollectData, IotedgeCollectData.class, "iotedge_collect_data");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("iotedge_collect_data:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, IotedgeCollectData.class);
+    }
+
+	 @AutoLog(value = "采集数据-获取点位")
+	 @ApiOperation(value="采集数据-获取点位", notes="采集数据-获取点位")
+	 @PostMapping(value = "/getTagInfo")
+	 public Result<List<IoTEdgeDevices>> getTagInfo() {
+		 return  Result.OK(iotedgeCollectDataService.getDevicesInfoById());
+	 }
+
+
+	 @AutoLog(value = "采集数据-调用接口测试")
+	 @ApiOperation(value="采集数据-调用接口测试", notes="采集数据-调用接口测试")
+	 @PostMapping(value = "/test")
+	 public Result<List<IoTEdgeDevices>> test(@RequestParam(name = "deviceId") String deviceId) {
+		 return  Result.OK(iotedgeCollectDataService.getDevicesInfoById());
+	 }
+
+}

+ 24 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/entity/IoTEdgeDevices.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.iotedgeCollectData.entity;
+
+import lombok.Data;
+import org.apache.poi.ss.formula.functions.T;
+
+import java.util.List;
+
+/**
+ * @author dzc
+ * @date 2024/5/23 15:36
+ * @package org.jeecg.modules.iotedgeCollectData.entity
+ * @project interlock_server
+ * @des
+ */
+@Data
+public class IoTEdgeDevices<T> {
+
+    private String id;
+    private String name;
+    private String info;
+    private List<T> children;
+
+
+}

+ 79 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/entity/IotedgeCollectData.java

@@ -0,0 +1,79 @@
+package org.jeecg.modules.iotedgeCollectData.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: iotedge_collect_data
+ * @Author: jeecg-boot
+ * @Date:   2024-05-22
+ * @Version: V1.0
+ */
+@Data
+@TableName("iotedge_collect_data")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="iotedge_collect_data对象", description="iotedge_collect_data")
+public class IotedgeCollectData implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**groupid*/
+	@Excel(name = "groupid", width = 15)
+    @ApiModelProperty(value = "groupid")
+    private java.lang.String groupid;
+    /**pid*/
+    @Excel(name = "pid", width = 15)
+    @ApiModelProperty(value = "pid")
+    private java.lang.String pid;
+	/**device*/
+	@Excel(name = "device", width = 15)
+    @ApiModelProperty(value = "device")
+    private java.lang.String device;
+	/**service*/
+	@Excel(name = "service", width = 15)
+    @ApiModelProperty(value = "service")
+    private java.lang.String service;
+	/**property*/
+	@Excel(name = "property", width = 15)
+    @ApiModelProperty(value = "property")
+    private java.lang.String property;
+	/**value*/
+	@Excel(name = "value", width = 15)
+    @ApiModelProperty(value = "value")
+    private java.lang.String value;
+	/**time*/
+	@Excel(name = "time", width = 15)
+    @ApiModelProperty(value = "time")
+    private java.lang.String time;
+	/**rksj*/
+	@Excel(name = "rksj", width = 15)
+    @ApiModelProperty(value = "rksj")
+    private java.lang.String rksj;
+	/**datatime*/
+	@Excel(name = "datatime", width = 15)
+    @ApiModelProperty(value = "datatime")
+    private java.lang.String datatime;
+	/**year*/
+	@Excel(name = "year", width = 15)
+    @ApiModelProperty(value = "year")
+    private java.lang.Integer year;
+	/**yearmonth*/
+	@Excel(name = "yearmonth", width = 15)
+    @ApiModelProperty(value = "yearmonth")
+    private java.lang.String yearmonth;
+}

+ 24 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/entity/IotedgeTag.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.iotedgeCollectData.entity;
+
+import lombok.Data;
+
+/**
+ * @author dzc
+ * @date 2024/5/28 9:16
+ * @package org.jeecg.modules.iotedgeCollectData.entity
+ * @project interlock_server
+ * @des
+ */
+@Data
+public class IotedgeTag {
+
+    /** 点位名称 */
+    private String name;
+
+    /** 点位值 */
+    private String value;
+
+
+    private String info;
+
+}

+ 17 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/mapper/IotedgeCollectDataMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.iotedgeCollectData.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: iotedge_collect_data
+ * @Author: jeecg-boot
+ * @Date:   2024-05-22
+ * @Version: V1.0
+ */
+public interface IotedgeCollectDataMapper extends BaseMapper<IotedgeCollectData> {
+
+}

+ 5 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/mapper/xml/IotedgeCollectDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.iotedgeCollectData.mapper.IotedgeCollectDataMapper">
+
+</mapper>

+ 19 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/IIotedgeCollectDataService.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.iotedgeCollectData.service;
+
+import com.alibaba.fastjson.JSONObject;
+import org.jeecg.modules.iotedgeCollectData.entity.IoTEdgeDevices;
+import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * @Description: iotedge_collect_data
+ * @Author: jeecg-boot
+ * @Date:   2024-05-22
+ * @Version: V1.0
+ */
+public interface IIotedgeCollectDataService extends IService<IotedgeCollectData> {
+
+    List<IoTEdgeDevices> getDevicesInfoById();
+}

+ 81 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/RestClientService.java

@@ -0,0 +1,81 @@
+package org.jeecg.modules.iotedgeCollectData.service;
+
+import com.alibaba.fastjson.JSONObject;
+import org.jeecg.modules.iotedgeConfig.service.IIotedgeConfigService;
+import org.jeecg.modules.iotedgeConfig.util.ConfigInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @author dzc
+ * @date 2024/5/22 15:14
+ * @package org.jeecg.modules.iotedgeCollectData.service
+ * @project interlock_server
+ * @des 调用IoTEdge接口
+ */
+@Service
+public class RestClientService {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private RestTemplate restTemplate;
+    @Autowired
+    @SuppressWarnings("all")
+    private IIotedgeConfigService configService;
+
+
+    /**
+     * author: dzc
+     * version: 1.0
+     * des: 调用IoTEdge接口 获取Token
+     * date: 2024/5/22
+     */
+    private String getAccessToken() {
+        //String url = "http://127.0.0.1:8082/v1/auth";
+        String url = configService.getConfigValue(ConfigInfo.GETTOKEN);
+        String username = configService.getConfigValue(ConfigInfo.USERNAME);
+        String password = configService.getConfigValue(ConfigInfo.PASSWORD);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("username",username);
+        jsonObject.put("password",password);
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonObject.toString(), headers);
+        ResponseEntity<JSONObject> response = restTemplate.postForEntity(url, httpEntity, JSONObject.class);
+        String accessToken = (String) response.getBody().get("accessToken");
+        return accessToken;
+    }
+
+    public JSONObject getAllDevicesInfo(){
+        //String url = "http://127.0.0.1:8082/v1/devices?deviceType=&projectID=all&productID=all";
+        String url = configService.getConfigValue(ConfigInfo.GETALLDEVICESINFO);
+        String accessToken = getAccessToken();
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + accessToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.GET,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+
+    public JSONObject getAllDevicesInfoById(String deviceId){
+        //String url = "http://127.0.0.1:8082/v1/devices/"+deviceId+"/deviceshadow";
+        String url = configService.getConfigValue(ConfigInfo.GETALLDEVICESINFOBYID)+"/"+deviceId+"/deviceshadow";
+        String accessToken = getAccessToken();
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Authorization", "Bearer " + accessToken);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.GET,httpEntity, JSONObject.class);
+        return response.getBody();
+    }
+
+}

+ 90 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/impl/IotedgeCollectDataServiceImpl.java

@@ -0,0 +1,90 @@
+package org.jeecg.modules.iotedgeCollectData.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+
+import com.alibaba.fastjson.TypeReference;
+import net.sf.saxon.expr.Component;
+import org.jeecg.modules.iotedgeCollectData.entity.IoTEdgeDevices;
+import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
+import org.jeecg.modules.iotedgeCollectData.entity.IotedgeTag;
+import org.jeecg.modules.iotedgeCollectData.mapper.IotedgeCollectDataMapper;
+import org.jeecg.modules.iotedgeCollectData.service.IIotedgeCollectDataService;
+import org.jeecg.modules.iotedgeCollectData.service.RestClientService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: iotedge_collect_data
+ * @Author: jeecg-boot
+ * @Date:   2024-05-22
+ * @Version: V1.0
+ */
+@Service
+public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDataMapper, IotedgeCollectData> implements IIotedgeCollectDataService {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private RestClientService restClientService;
+
+    @Override
+    public List<IoTEdgeDevices> getDevicesInfoById() {
+        Map<String, String> devicesMap = new HashMap<>();
+        JSONObject message1 = restClientService.getAllDevicesInfo();
+        ArrayList<Map<String,Object>> maps = (ArrayList<Map<String, Object>>) message1.get("items");
+        for (Map<String,Object> device : maps) {
+            devicesMap.put(device.get("deviceName").toString(),device.get("deviceId").toString());
+        }
+        List<IoTEdgeDevices> list = this.getDevicesList(devicesMap);
+        return list;
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 获取每台设备下的点位信息
+    *   date: 2024/5/28
+    */
+    private List<IoTEdgeDevices> getDevicesList(Map<String, String> devicesMap) {
+        ArrayList<IoTEdgeDevices> devicesList = new ArrayList<>();
+        for (String key : devicesMap.keySet()) {
+            ArrayList<IoTEdgeDevices> list = new ArrayList<>();
+            IoTEdgeDevices ioTEdgeDevices = new IoTEdgeDevices();
+            ioTEdgeDevices.setId(devicesMap.get(key)); // 设备id
+            ioTEdgeDevices.setName(key); // 设备名称
+            ioTEdgeDevices.setInfo(devicesMap.get(key)); // 设备id
+            JSONObject message2 = restClientService.getAllDevicesInfoById(devicesMap.get(key));
+            List<Map<String,Object>> items2 = (List<Map<String,Object>>) message2.get("items");
+            HashMap<String, List<IotedgeTag>> serviceMap = new HashMap<>();
+            for (Map<String,Object> item : items2) {
+                IotedgeTag iotedgeTag = new IotedgeTag();
+                iotedgeTag.setName(item.get("devicePropertyName").toString()); // 点位名称
+                iotedgeTag.setValue(item.get("reportValue").toString()); // 点位值
+                iotedgeTag.setInfo(item.get("devicePropertyName").toString()+"&"+item.get("reportValue").toString()); // 点位名称 & 点位值
+                if (serviceMap.containsKey(item.get("deviceServiceName").toString())){
+                    serviceMap.get(item.get("deviceServiceName").toString()).add(iotedgeTag);
+                }else {
+                    ArrayList<IotedgeTag> tagList = new ArrayList<>();
+                    tagList.add(iotedgeTag);
+                    serviceMap.put(item.get("deviceServiceName").toString(),tagList);
+                }
+            }
+            for (String serviceKey:serviceMap.keySet()) {
+                IoTEdgeDevices ioTEdgeDevices1 = new IoTEdgeDevices();
+                ioTEdgeDevices1.setName(serviceKey);  // 模块名称
+                ioTEdgeDevices1.setInfo(serviceKey);  // 模块名称
+                ioTEdgeDevices1.setChildren(serviceMap.get(serviceKey));
+                list.add(ioTEdgeDevices1);
+            }
+            ioTEdgeDevices.setChildren(list);
+            devicesList.add(ioTEdgeDevices);
+        }
+        return devicesList;
+    }
+}

+ 177 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/controller/IotedgeConfigController.java

@@ -0,0 +1,177 @@
+package org.jeecg.modules.iotedgeConfig.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.iotedgeConfig.entity.IotedgeConfig;
+import org.jeecg.modules.iotedgeConfig.service.IIotedgeConfigService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: iotedge_config
+ * @Author: jeecg-boot
+ * @Date:   2024-05-23
+ * @Version: V1.0
+ */
+@Api(tags="IoTedge配置")
+@RestController
+@RequestMapping("/iotedgeConfig/iotedgeConfig")
+@Slf4j
+public class IotedgeConfigController extends JeecgController<IotedgeConfig, IIotedgeConfigService> {
+	@Autowired
+	private IIotedgeConfigService iotedgeConfigService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param iotedgeConfig
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "iotedge_config-分页列表查询")
+	@ApiOperation(value="IoTedge配置-分页列表查询", notes="IoTedge配置-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<IotedgeConfig>> queryPageList(IotedgeConfig iotedgeConfig,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<IotedgeConfig> queryWrapper = QueryGenerator.initQueryWrapper(iotedgeConfig, req.getParameterMap());
+		Page<IotedgeConfig> page = new Page<IotedgeConfig>(pageNo, pageSize);
+		IPage<IotedgeConfig> pageList = iotedgeConfigService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param iotedgeConfig
+	 * @return
+	 */
+	@AutoLog(value = "IoTedge配置-添加")
+	@ApiOperation(value="IoTedge配置-添加", notes="IoTedge配置-添加")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_config:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody IotedgeConfig iotedgeConfig) {
+		iotedgeConfigService.save(iotedgeConfig);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param iotedgeConfig
+	 * @return
+	 */
+	@AutoLog(value = "IoTedge配置-编辑")
+	@ApiOperation(value="IoTedge配置-编辑", notes="IoTedge配置-编辑")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_config:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody IotedgeConfig iotedgeConfig) {
+		iotedgeConfigService.updateById(iotedgeConfig);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "IoTedge配置-通过id删除")
+	@ApiOperation(value="IoTedge配置-通过id删除", notes="IoTedge配置-通过id删除")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_config:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		iotedgeConfigService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "IoTedge配置-批量删除")
+	@ApiOperation(value="IoTedge配置-批量删除", notes="IoTedge配置-批量删除")
+	//@RequiresPermissions("org.jeecg.modules:iotedge_config:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.iotedgeConfigService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "IoTedge配置-通过id查询")
+	@ApiOperation(value="IoTedge配置-通过id查询", notes="IoTedge配置-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<IotedgeConfig> queryById(@RequestParam(name="id",required=true) String id) {
+		IotedgeConfig iotedgeConfig = iotedgeConfigService.getById(id);
+		if(iotedgeConfig==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(iotedgeConfig);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param iotedgeConfig
+    */
+    //@RequiresPermissions("org.jeecg.modules:iotedge_config:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, IotedgeConfig iotedgeConfig) {
+        return super.exportXls(request, iotedgeConfig, IotedgeConfig.class, "iotedge_config");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("iotedge_config:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, IotedgeConfig.class);
+    }
+
+}

+ 71 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/entity/IotedgeConfig.java

@@ -0,0 +1,71 @@
+package org.jeecg.modules.iotedgeConfig.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: iotedge_config
+ * @Author: jeecg-boot
+ * @Date:   2024-05-23
+ * @Version: V1.0
+ */
+@Data
+@TableName("iotedge_config")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="iotedge_config对象", description="iotedge_config")
+public class IotedgeConfig implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private java.lang.String id;
+	/**参数名称*/
+	@Excel(name = "参数名称", width = 15)
+    @ApiModelProperty(value = "参数名称")
+    private java.lang.String configname;
+	/**参数键名*/
+	@Excel(name = "参数键名", width = 15)
+    @ApiModelProperty(value = "参数键名")
+    private java.lang.String configkey;
+	/**参数键值*/
+	@Excel(name = "参数键值", width = 15)
+    @ApiModelProperty(value = "参数键值")
+    private java.lang.String configvalue;
+	/**创建者*/
+    @ApiModelProperty(value = "创建者")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新者*/
+    @ApiModelProperty(value = "更新者")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private java.lang.String remark;
+}

+ 17 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/IotedgeConfigMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.iotedgeConfig.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.iotedgeConfig.entity.IotedgeConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: iotedge_config
+ * @Author: jeecg-boot
+ * @Date:   2024-05-23
+ * @Version: V1.0
+ */
+public interface IotedgeConfigMapper extends BaseMapper<IotedgeConfig> {
+
+}

+ 5 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/mapper/xml/IotedgeConfigMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.iotedgeConfig.mapper.IotedgeConfigMapper">
+
+</mapper>

+ 16 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/IIotedgeConfigService.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.iotedgeConfig.service;
+
+import org.jeecg.modules.iotedgeConfig.entity.IotedgeConfig;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: iotedge_config
+ * @Author: jeecg-boot
+ * @Date:   2024-05-23
+ * @Version: V1.0
+ */
+public interface IIotedgeConfigService extends IService<IotedgeConfig> {
+
+    public String getConfigValue(String configkey);
+
+}

+ 32 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/service/impl/IotedgeConfigServiceImpl.java

@@ -0,0 +1,32 @@
+package org.jeecg.modules.iotedgeConfig.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.modules.iotedgeConfig.entity.IotedgeConfig;
+import org.jeecg.modules.iotedgeConfig.mapper.IotedgeConfigMapper;
+import org.jeecg.modules.iotedgeConfig.service.IIotedgeConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: iotedge_config
+ * @Author: jeecg-boot
+ * @Date:   2024-05-23
+ * @Version: V1.0
+ */
+@Service
+public class IotedgeConfigServiceImpl extends ServiceImpl<IotedgeConfigMapper, IotedgeConfig> implements IIotedgeConfigService {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private IotedgeConfigMapper mapper;
+
+    @Override
+    public String getConfigValue(String configkey) {
+        QueryWrapper<IotedgeConfig> query = new QueryWrapper<>();
+        query.eq("configkey",configkey);
+        IotedgeConfig iotedgeConfig = mapper.selectOne(query);
+        return iotedgeConfig.getConfigvalue();
+    }
+}

+ 26 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeConfig/util/ConfigInfo.java

@@ -0,0 +1,26 @@
+package org.jeecg.modules.iotedgeConfig.util;
+
+/**
+ * @author dzc
+ * @date 2024/5/23 14:53
+ * @package org.jeecg.modules.iotedgeConfig.util
+ * @project interlock_server
+ * @des
+ */
+public class ConfigInfo {
+
+    /** 用户名 */
+    public static String USERNAME = "IoTEdge.UserName";
+
+    /** 密码 */
+    public static String PASSWORD = "IoTEdge.PassWord";
+
+    /** 获取Token */
+    public static String GETTOKEN = "IoTEdge.GetAccessToken";
+
+    /** 获取设备信息 */
+    public static String GETALLDEVICESINFO = "IoTEdge.GetAllDevicesInfo";
+
+    /** 根据设备id获取点位信息 */
+    public static String GETALLDEVICESINFOBYID = "IoTEdge.GetDevicesInfoById";
+}