TRX 1 жил өмнө
parent
commit
10d2fa5158

+ 3 - 0
OneCardIotClient/src/main/java/com/zhongshu/iot/client/model/mqtt/DeviceInfoAddParam.java

@@ -33,4 +33,7 @@ public class DeviceInfoAddParam extends SuperParam {
 
     @Schema(description = "连接参数")
     private JSONObject connectParam;
+
+    @Schema(description = "设备类型")
+    private String deviceCate;
 }

+ 10 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/controller/TestController.java

@@ -3,6 +3,7 @@ package com.zhongshu.iot.server.core.controller;
 import com.zhongshu.iot.client.model.mqtt.SendMessageModel;
 import com.zhongshu.iot.server.core.service.artemis.OperationMessageService;
 import com.zhongshu.iot.server.core.service.iot.IotServiceImpl;
+import com.zhongshu.iot.server.core.service.mqtt.DeviceInfoService;
 import com.zhongshu.iot.server.core.service.openApi.OpenAPIRegisterService;
 import com.zhongshu.iot.server.core.service.other.ScanExecuteService;
 import com.github.microservice.net.ResultContent;
@@ -36,6 +37,9 @@ public class TestController {
     @Autowired
     IotServiceImpl iotService;
 
+    @Autowired
+    private DeviceInfoService deviceInfoService;
+
     @Operation(summary = "发送指令")
     @RequestMapping(value = "free/sendMessage", method = {RequestMethod.POST})
     public ResultContent sendMessage(@RequestBody SendMessageModel param) {
@@ -68,5 +72,11 @@ public class TestController {
         return iotService.fixDeviceIot();
     }
 
+    @Operation(summary = "同步所有的设备")
+    @RequestMapping(value = "initSyncAllDevice", method = {RequestMethod.GET})
+    public ResultContent initSyncAllDevice() {
+        return deviceInfoService.initSyncAllDevice();
+    }
+
 }
 

+ 21 - 15
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/controller/iot/IotController.java

@@ -2,10 +2,10 @@ package com.zhongshu.iot.server.core.controller.iot;
 
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
+import com.github.microservice.net.ResultContent;
 import com.zhongshu.iot.client.model.baseParam.NameModel;
 import com.zhongshu.iot.client.model.iot.*;
 import com.zhongshu.iot.server.core.service.iot.IotServiceImpl;
-import com.github.microservice.net.ResultContent;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -15,10 +15,7 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.data.web.PageableDefault;
 import org.springframework.util.Assert;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -57,14 +54,17 @@ public class IotController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "删除模版")
     @RequestMapping(value = "deleteTemplate", method = {RequestMethod.GET})
-    public ResultContent deleteTemplate(@Parameter(name = "id", description = "数据id") String id) {
+    public ResultContent deleteTemplate(
+            @RequestParam(name = "id") @Parameter(name = "id", description = "数据id") String id) {
         return iotService.deleteTemplate(id);
     }
 
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询模版详情")
     @RequestMapping(value = "getIotTemplate", method = {RequestMethod.GET})
-    public ResultContent<IotTemplateModel> getIotTemplate(@Parameter(name = "id", description = "数据id") String id) {
+    public ResultContent<IotTemplateModel> getIotTemplate(
+            @RequestParam(name = "id")
+            @Parameter(name = "id", description = "数据id") String id) {
         return iotService.getIotTemplate(id);
     }
 
@@ -72,16 +72,14 @@ public class IotController {
     @Operation(summary = "得到设备的物模型列表")
     @RequestMapping(value = "getDeviceTemplateList", method = {RequestMethod.GET})
     public ResultContent<List<IotTemplateModel>> getDeviceTemplateList(
-            @Parameter(name = "deviceId", description = "设备ID") String deviceId
-    ) {
+            @RequestParam(name = "deviceId") @Parameter(name = "deviceId", description = "设备ID") String deviceId) {
         return iotService.getDeviceTemplateList(deviceId);
     }
 
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "修改模型名称")
     @RequestMapping(value = "updateIotTemplateName", method = {RequestMethod.POST})
-    public ResultContent<List<IotTemplateModel>> updateIotTemplateName(@RequestBody NameModel param
-    ) {
+    public ResultContent<List<IotTemplateModel>> updateIotTemplateName(@RequestBody NameModel param) {
         return iotService.updateIotTemplateName(param);
     }
 
@@ -115,14 +113,18 @@ public class IotController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "删除物模型")
     @RequestMapping(value = "deleteIotMain", method = {RequestMethod.GET})
-    public ResultContent deleteIotMain(@Parameter(name = "id", description = "数据id") String id) {
+    public ResultContent deleteIotMain(
+            @RequestParam(name = "id")
+            @Parameter(name = "id", description = "数据id") String id) {
         return iotService.deleteIotMain(id);
     }
 
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询物模型")
     @RequestMapping(value = "getIotMain", method = {RequestMethod.GET})
-    public ResultContent<IotMainModel> getIotMain(@Parameter(name = "id", description = "数据id") String id) {
+    public ResultContent<IotMainModel> getIotMain(
+            @RequestParam(name = "id")
+            @Parameter(name = "id", description = "数据id") String id) {
         return iotService.getIotMain(id);
     }
 
@@ -149,14 +151,18 @@ public class IotController {
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "删除Topic", hidden = true)
     @RequestMapping(value = "deleteIotTopic", method = {RequestMethod.GET})
-    public ResultContent deleteIotTopic(@Parameter(name = "id", description = "数据id") String id) {
+    public ResultContent deleteIotTopic(
+            @RequestParam(name = "id")
+            @Parameter(name = "id", description = "数据id") String id) {
         return iotService.deleteIotTopic(id);
     }
 
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "查询Topic", hidden = true)
     @RequestMapping(value = "getIotTopic", method = {RequestMethod.GET})
-    public ResultContent<IotTopicModel> getIotTopic(@Parameter(name = "id", description = "数据id") String id) {
+    public ResultContent<IotTopicModel> getIotTopic(
+            @RequestParam(name = "id")
+            @Parameter(name = "id", description = "数据id") String id) {
         return iotService.getIotTopic(id);
     }
 

+ 4 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/domain/iot/mqtt/GateWay2Device.java

@@ -25,10 +25,14 @@ public class GateWay2Device extends SuperEntity {
     @Schema(description = "硬件设备网关信息")
     private GateWayInfo gateWayInfo;
 
+    private String gateWayId;
+
     @DBRef(lazy = true)
     @Schema(description = "关联的设备信息")
     private DeviceInfo deviceInfo;
 
+    private String deviceId;
+
     @Schema(description = "设备在线状态")
     private OnLineState state;
 

+ 2 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/httpRequest/ApiRequestService.java

@@ -46,7 +46,8 @@ public class ApiRequestService extends SuperService {
     public APIResponseModel sendFullCardAPI(String apiName, Object data) {
         APIResponseModel responseModel = new APIResponseModel();
         if (StringUtils.isEmpty(fullCardConf.getUrl())) {
-            responseModel.setIsFailed("未配置物联网平台URL");
+            responseModel.setIsFailed("未配置一卡通平台URL");
+            log.error("************未配置一卡通平台URL*****************");
             return responseModel;
         }
         try {

+ 18 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/mqtt/DeviceInfoService.java

@@ -1,5 +1,6 @@
 package com.zhongshu.iot.server.core.service.mqtt;
 
+import com.github.microservice.models.type.DeviceType;
 import com.github.microservice.models.type.OnLineState;
 import com.zhongshu.iot.client.model.iot.IotMainModel;
 import com.zhongshu.iot.client.model.mqtt.DeviceInfoAddParam;
@@ -18,6 +19,7 @@ import com.zhongshu.iot.server.core.domain.iot.mqtt.ProjectInfo;
 import com.zhongshu.iot.server.core.service.iot.IotServiceImpl;
 import com.zhongshu.iot.server.core.service.sync.DeviceSyncFullCardService;
 import com.zhongshu.iot.server.core.service.user.OperationLogsService;
+import com.zhongshu.iot.server.core.util.CommonUtil;
 import com.zhongshu.iot.server.core.util.bean.BeanUtils;
 import com.zhongshu.iot.server.core.util.page.PageEntityUtil;
 import com.github.microservice.net.ResultContent;
@@ -58,6 +60,15 @@ public class DeviceInfoService {
     @Autowired
     DeviceSyncFullCardService deviceSyncFullCardService;
 
+    public ResultContent initSyncAllDevice() {
+        // 同步所有的设备
+        List<DeviceInfo> deviceInfos = deviceInfoDao.findAll();
+        if (ObjectUtils.isNotEmpty(deviceInfos)) {
+            deviceSyncFullCardService.noticeSyncDevice(deviceInfos);
+        }
+        return ResultContent.buildSuccess();
+    }
+
     /**
      * 添加-编辑设备 (基础信息)
      *
@@ -76,6 +87,12 @@ public class DeviceInfoService {
         BeanUtils.copyProperties(param, deviceInfo, "id");
         deviceInfo.setLastOnlineTime(System.currentTimeMillis());
         deviceInfo.setOnLineState(OnLineState.OnLine);
+        if (StringUtils.isNotEmpty(param.getDeviceCate())) {
+            DeviceType deviceType = CommonUtil.getEnumByName(DeviceType.class, param.getDeviceCate());
+            if (deviceType != null) {
+                deviceInfo.setDeviceType(deviceType);
+            }
+        }
         // 项目
         if (StringUtils.isNotEmpty(param.getProjectInfoCode())) {
             ProjectInfo projectInfo = projectInfoDao.findTopByCode(param.getProjectInfoCode());
@@ -84,6 +101,7 @@ public class DeviceInfoService {
         }
         deviceInfo.setLastOnlineTime(System.currentTimeMillis());
         deviceInfoDao.save(deviceInfo);
+
         operationLogsService.addLogs(String.format("添加了设备;%s", deviceInfo.getDeviceName()), LogsLevel.Middle, deviceInfo);
         return ResultContent.buildSuccess(deviceInfo);
     }

+ 4 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/mqtt/GateWayInfoService.java

@@ -202,9 +202,13 @@ public class GateWayInfoService extends SuperService {
                 if (ObjectUtils.isEmpty(gateWay2Device)) {
                     gateWay2Device = new GateWay2Device();
                     gateWay2Device.setState(OnLineState.OffLine);
+                }else {
                 }
                 gateWay2Device.setGateWayInfo(gateWayInfo);
                 gateWay2Device.setDeviceInfo(deviceInfo);
+                gateWay2Device.setGateWayId(gateWayInfo.getGateWayId());
+                gateWay2Device.setDeviceId(deviceInfo.getDeviceId());
+
                 gateWay2Device.setBindTimeStr(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
                 gateWay2DeviceDao.save(gateWay2Device);
                 deviceInfos.add(deviceInfo);

+ 0 - 3
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/sync/DeviceSyncFullCardService.java

@@ -126,10 +126,8 @@ public class DeviceSyncFullCardService extends SuperService {
                 DeviceInfoSyncParam syncParam = new DeviceInfoSyncParam();
 
                 BeanUtils.copyProperties(it, syncParam);
-
                 // 设备绑定的网关
                 List<GateWay2Device> gateWay2Devices = new ArrayList<>();
-
                 // 多个
 //                gateWay2Devices = gateWay2DeviceDao.findByDeviceInfo(it);
 
@@ -141,7 +139,6 @@ public class DeviceSyncFullCardService extends SuperService {
                     return it2.getGateWayInfo().getGateWayId();
                 }).collect(Collectors.toList());
                 syncParam.setGateWayId(String.join(",", gateWayIds));
-
                 // 项目code
                 syncParam.setProjectInfoCode(it.getProjectInfoCode());
                 return syncParam;

+ 11 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/util/CommonUtil.java

@@ -322,4 +322,15 @@ public class CommonUtil {
         }
         return Character.toLowerCase(str.charAt(0)) + str.substring(1);
     }
+
+    public static <E extends Enum<E>> E getEnumByName(Class<E> t, String name) {
+        try {
+            if (StringUtils.isNotEmpty(name) && t != null) {
+                name = name.trim();
+                return Enum.valueOf(t, name);
+            }
+        } catch (Exception e) {
+        }
+        return null;
+    }
 }

+ 5 - 0
OneCardIotServer/src/main/resources/application-dev.yml

@@ -37,6 +37,11 @@ spring:
 artemis:
   alwaysSessionAsync: true
 
+# 全卡业务平台请求地址配置
+fullcard:
+  url: http://8.137.120.225:8080/fullcardserver-trx
+  cardServerName:  # 全卡业务平台服务名
+
 # mqtt 消息存储时间
 artemisstore:
   time: 2592000000 # 30天