yf_zn пре 1 година
родитељ
комит
905c181391

+ 1 - 6
src/main/java/com/yunfeiyun/agmp/iots/AgmpIotsApplication.java

@@ -1,10 +1,5 @@
 package com.yunfeiyun.agmp.iots;
 
-import com.yunfeiyun.agmp.common.utils.spring.SpringUtils;
-import com.yunfeiyun.agmp.iots.config.TestConst;
-import com.yunfeiyun.agmp.iots.core.manager.MqttManager;
-import com.yunfeiyun.agmp.iots.core.mqtt.modal.MqttTopicValue;
-import com.yunfeiyun.agmp.iots.device.controller.TestController;
 import org.mybatis.spring.annotation.MapperScan;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,7 +29,7 @@ public class AgmpIotsApplication {
 //                Thread.sleep(10000);
 //                MqttTopicValue mqttTopicValue=new MqttTopicValue();
 //                mqttTopicValue.setDevCode(TestConst.deviceId);
-//                mqttTopicValue.setDevId("xxx");
+//                mqttTopicValue.setDevId("25470430-0191-1000-e000-50297f000001");
 //                log.info("我在这里模拟接收到iotm的消息,下发指令第{}次", i);
 //                SpringUtils.getBean(TestController.class).orderTest();
 //                // 取消订阅

+ 2 - 3
src/main/java/com/yunfeiyun/agmp/iots/core/cmd/core/task/CmdTaskService.java

@@ -27,7 +27,6 @@ import com.yunfeiyun.agmp.iots.device.common.Device;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdModel;
 import com.yunfeiyun.agmp.iots.core.manager.MqttManager;
 
-import com.yunfeiyun.agmp.iots.exception.IotException;
 import com.yunfeiyun.agmp.iots.service.*;
 import com.yunfeiyun.agmp.iots.service.checker.CmdResultCheckService;
 import lombok.extern.slf4j.Slf4j;
@@ -96,7 +95,7 @@ public class CmdTaskService {
             CmdModel cmdModel = cmdExecModel.getCmdModel();
             log.info("任务标识:【{}】,开始执行最小任务单元:{}", taskId, cmdModel);
             IotDevice iotDevice = iotDeviceMap.get(cmdModel.getDeviceId());
-            //【需要补充】需要换出来ServiceName
+            //【需要补充】需要换出来ServiceName TODO
             TestConst.printError("!!!!!!!!!!【看这里:临时测试】这里的serviceName写死了SERVICE_YF_CBD,对接业务时候换掉,取出来");
             String serviceName = TestConst.serviceName;
             if (StringUtils.isEmpty(serviceName)) {
@@ -175,7 +174,7 @@ public class CmdTaskService {
             for (CmdExecModel cmdExecModel : cmdExecModels) {
                 IotCmdexec iotCmdexec = new IotCmdexec();
                 iotCmdexec.setCeBid(iotCmdexec.getUUId());
-                iotCmdexec.setCId(cmdGroupModel.getCId());
+                iotCmdexec.setTid(cmdGroupModel.getTid());
                 iotCmdexec.setCtBid(cmdTaskModel.getTaskId());
                 iotCmdexec.setDevBid(cmdExecModel.getCmdModel().getDeviceId());
                 iotCmdexec.setCeGroupbid(cmdExecModel.getCmdGroupFlag());

+ 13 - 12
src/main/java/com/yunfeiyun/agmp/iots/core/http/HikCloudHttpClient.java

@@ -35,7 +35,7 @@ public class HikCloudHttpClient {
     @Resource
     private IIotFirmdevService iIotFirmdevService;
 
-    @PostConstruct
+    //@PostConstruct
     public void init() {
         HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
         factory.setConnectTimeout(1000 * 60 * 3);
@@ -45,17 +45,18 @@ public class HikCloudHttpClient {
     }
 
     public String[] getConfig() {
-        try {
-            IotFirmdev iotFirmdev = redisCacheManager.getCacheObject(RedisCacheKey.IOT_HIK_CLOUD_API_CONFIG, ServiceNameConst.SERVICE_HIK_EZVIZ_MINITOR);
-            if (null == iotFirmdev) {
-                iotFirmdev = iIotFirmdevService.selectIotFirmdevByServiceName(ServiceNameConst.SERVICE_HIK_EZVIZ_MINITOR);
-                redisCacheManager.setCacheObject(RedisCacheKey.IOT_HIK_CLOUD_API_CONFIG, ServiceNameConst.SERVICE_HIK_EZVIZ_MINITOR, iotFirmdev);
-            }
-            JSONObject config = JSONObject.parseObject(iotFirmdev.getFirmdevCfg());
-            return new String[]{config.getString("hik_cloud_client_Id"), config.getString("hik_cloud_client_secret")};
-        } catch (Exception e) {
-            return new String[]{"null", "null"};
-        }
+//        try {
+//            IotFirmdev iotFirmdev = redisCacheManager.getCacheObject(RedisCacheKey.IOT_HIK_CLOUD_API_CONFIG, ServiceNameConst.SERVICE_HIK_EZVIZ_MINITOR);
+//            if (null == iotFirmdev) {
+//                iotFirmdev = iIotFirmdevService.selectIotFirmdevByServiceName(ServiceNameConst.SERVICE_HIK_EZVIZ_MINITOR);
+//                redisCacheManager.setCacheObject(RedisCacheKey.IOT_HIK_CLOUD_API_CONFIG, ServiceNameConst.SERVICE_HIK_EZVIZ_MINITOR, iotFirmdev);
+//            }
+//            JSONObject config = JSONObject.parseObject(iotFirmdev.getFirmdevCfg());
+//            return new String[]{config.getString("hik_cloud_client_Id"), config.getString("hik_cloud_client_secret")};
+//        } catch (Exception e) {
+//            return new String[]{"null", "null"};
+//        }
+        return null;
     }
 
     public JSONObject getMessage(String consumerId) {

+ 2 - 1
src/main/java/com/yunfeiyun/agmp/iots/core/manager/MqttManager.java

@@ -97,13 +97,13 @@ public class MqttManager {
 
         // 创建MqttCore实例
         MqttCore mqttCore = new MqttCore();
-        log.info("【创建MqttCore实例】 mqttCore: {}", mqttCore);
 
         // 查询topics【需要实现:重新更改获取该型号下的设备】
         String connectionId=iotDeviceconnResVo.getDevconnBid();
         mqttCore.setConnectionId(connectionId);
         // 构建topic
         List<IotDevice> devices= deviceTopicService.getDevicesByConectionId(connectionId);
+        log.info("【创建MqttCore实例】 mqttCore: {} connectionId:{} devSize:{}", mqttCore,connectionId,devices.size());
         List<MqttTopicValue> mqttTopicValues=new ArrayList<>();
         for(IotDevice iotDevice:devices){
             MqttTopicValue mqttTopicValue=new MqttTopicValue();
@@ -117,6 +117,7 @@ public class MqttManager {
         if(mqttTopicValues!=null&&!mqttTopicValues.isEmpty()){
             for(int i=0;i<devices.size();i++){
                 topics[i]=mqttTopicValues.get(i).getTopic();
+                System.out.println("xxxxxxxxxxxxxxxxxxxxx"+mqttTopicValues.get(i).getTopic());
             }
            cfgYf.setSubTopic(topics);
         }

+ 7 - 0
src/main/java/com/yunfeiyun/agmp/iots/core/mqtt/DeviceTopicService.java

@@ -1,5 +1,6 @@
 package com.yunfeiyun.agmp.iots.core.mqtt;
 
+import com.yunfeiyun.agmp.common.utils.StringUtils;
 import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
 import com.yunfeiyun.agmp.iot.common.constant.mqtt.IotMqttConstant;
@@ -101,9 +102,15 @@ public class DeviceTopicService {
     }
 
     public String getTopic(String serviceName,String deviceCode) {
+        if(StringUtils.isEmpty(deviceCode)){
+            return null;
+        }
         String [] deviceId=new String[]{deviceCode};
         log.info("【加载topic】serviceName:{},原始topic {}", serviceName, deviceId);
         List<MqttTopicValue> mqttTopicValues=new ArrayList<>();
+        MqttTopicValue mqttTopicValue=new MqttTopicValue();
+        mqttTopicValue.setDevCode(deviceCode);
+        mqttTopicValues.add(mqttTopicValue);
         return getBatchTopic(serviceName,mqttTopicValues)[0];
     }
 

+ 9 - 6
src/main/java/com/yunfeiyun/agmp/iots/core/mqtt/network/MqttSubscriber.java

@@ -26,14 +26,17 @@ public class MqttSubscriber implements MqttCallbackExtended {
         this.mqttClient = mqttCore.getClient();
         String[] topics = mqttCore.getSubTopic();
         mqttClient.setCallback(this);
-        for (String topic : topics) {
-            //TODO 测试设备乱发离线指令,暂时不订阅它
-            if ("/yfkj/cbd/offline/861551058867599".equals(topic)) {
-                continue;
+        if(topics!=null&&topics.length!=0){
+            for (String topic : topics) {
+                //TODO 测试设备乱发离线指令,暂时不订阅它
+                if ("/yfkj/cbd/offline/861551058867599".equals(topic)) {
+                    continue;
+                }
+                mqttClient.subscribe(topic);
+                log.debug("mqtt 主题已订阅 {},{}", mqttCore.getServiceType(), topic);
             }
-            mqttClient.subscribe(topic);
-            log.debug("mqtt 主题已订阅 {},{}", mqttCore.getServiceType(), topic);
         }
+
     }
 
     @Override

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/CqCbdDeviceImpl.java

@@ -138,7 +138,7 @@ public class CqCbdDeviceImpl implements ICbdDevice {
     public String cbdData(JSONObject ext, String cId, IotDevice iotDevice) {
         // 更新设备数据信息到数据库 mongodb
         IotCbddata iotCbddata = new IotCbddata();
-        iotCbddata.setCId(cId);
+        iotCbddata.setTid(cId);
         iotCbddata.setCdbdataBid(iotCbddata.getUUId());
         iotCbddata.setDevBid(iotDevice.getDevBid());
         iotCbddata.setCbddataCreatedDate(iotDevice.getDevUpdateddate());

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/IotBzyPestRecogService.java

@@ -157,7 +157,7 @@ public class IotBzyPestRecogService {
 
             // 保存 测报灯图片识别和虫情信息关联信息
             IotCbdpest iotCbdpest = new IotCbdpest();
-            iotCbdpest.setCId(iotDevice.getTid());
+            iotCbdpest.setTid(iotDevice.getTid());
             iotCbdpest.setCbdpestBid(iotCbdpest.getUUId());
             iotCbdpest.setPestrecogBid(iotPestrecog.getPestrecogBid());
             iotCbdpest.setCbdrecogBid(iotBzyrecog.getBzyrecogBid());

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/IotCbdImgService.java

@@ -133,7 +133,7 @@ public class IotCbdImgService {
         // 保存 测报灯基础图片信息
         IotCbdimg iotCbdimg = new IotCbdimg();
         iotCbdimg.setCbdimgBid(iotCbdimg.getUUId());
-        iotCbdimg.setCId(iotDevice.getTid());
+        iotCbdimg.setTid(iotDevice.getTid());
         iotCbdimg.setDevBid(iotDevice.getDevBid());
         iotCbdimg.setCbdimgAddr(cbdimgAddr);
         iotCbdimg.setCbdimgPestnum(cbdimgPestnum);

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/IotCbdRecogService.java

@@ -22,7 +22,7 @@ public class IotCbdRecogService {
                                        String cbdrecogResult, String cbdrecogMachinemark, IotPestRecogService.PestRecogResult pestRecogResult) {
 
         IotCbdrecog iotCbdrecog = new IotCbdrecog();
-        iotCbdrecog.setCId(iotCbdimg.getCId());
+        iotCbdrecog.setTid(iotCbdimg.getTid());
         iotCbdrecog.setCbdrecogBid(recogBid);
         iotCbdrecog.setCbdimgBid(iotCbdimg.getCbdimgBid());
         iotCbdrecog.setCbdrecogType(enumCbdRecogType.getCode());

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/device/serviceImp/IotPestRecogService.java

@@ -169,7 +169,7 @@ public class IotPestRecogService {
 
             // 保存 测报灯图片识别和虫情信息关联信息
             IotCbdpest iotCbdpest = new IotCbdpest();
-            iotCbdpest.setCId(iotDevice.getTid());
+            iotCbdpest.setTid(iotDevice.getTid());
             iotCbdpest.setCbdpestBid(iotCbdpest.getUUId());
             iotCbdpest.setPestrecogBid(iotPestrecog.getPestrecogBid());
             iotCbdpest.setCbdrecogBid(iotCbdrecog.getCbdrecogBid());

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/service/impl/IotCmdlogServiceImpl.java

@@ -35,7 +35,7 @@ public class IotCmdlogServiceImpl implements IIotCmdlogService {
 
 
         iotCmdlog.setClogBid(iotCmdlog.getUUId());
-        iotCmdlog.setCId(iotDevice.getTid());
+        iotCmdlog.setTid(iotDevice.getTid());
         iotCmdlog.setCtBid(cmdModel.getCtBid());
         iotCmdlog.setCeBid(cmdModel.getCeBid());
         iotCmdlog.setDevBid(iotDevice.getDevBid());

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iots/service/impl/IotDeviceconfigServiceImpl.java

@@ -81,7 +81,7 @@ public class IotDeviceconfigServiceImpl implements IIotDeviceconfigService {
     public void createOrUpdateDevConfig(IotDevice iotDevice, String devConfig, String modifiedDate) {
         IotDeviceconfig iotDeviceconfig = new IotDeviceconfig();
         iotDeviceconfig.setDevcfgBid(iotDeviceconfig.getUUId());
-        iotDeviceconfig.setCId(iotDevice.getTid());
+        iotDeviceconfig.setTid(iotDevice.getTid());
         iotDeviceconfig.setDevBid(iotDevice.getDevBid());
 
         iotDeviceconfig.setDevcfgCreator(iotDevice.getDevCreator());
@@ -120,7 +120,7 @@ public class IotDeviceconfigServiceImpl implements IIotDeviceconfigService {
     public JSONObject createOrUpdateDevConfigByJSONObject(IotDevice iotDevice, HashMap<String, String> configMap, String modifiedDate) {
         IotDeviceconfig iotDeviceconfig = new IotDeviceconfig();
         iotDeviceconfig.setDevcfgBid(iotDeviceconfig.getUUId());
-        iotDeviceconfig.setCId(iotDevice.getTid());
+        iotDeviceconfig.setTid(iotDevice.getTid());
         iotDeviceconfig.setDevBid(iotDevice.getDevBid());
         iotDeviceconfig.setDevcfgCreator(iotDevice.getDevCreator());
         iotDeviceconfig.setDevcfgModifier(iotDevice.getDevModifier());

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iots/task/DeviceScheduler.java

@@ -215,7 +215,7 @@ public class DeviceScheduler {
             log.info("【{}】【水肥机:查询设备配置】无配置信息 deviceId: {}", LogCore.getSeq(), deviceId);
             IotDeviceconfig iotDeviceconfig1 = new IotDeviceconfig();
             iotDeviceconfig1.setDevcfgBid(iotDeviceconfig1.getUUId());
-            iotDeviceconfig1.setCId(CustomerIdUtil.getCustomerId());
+            iotDeviceconfig1.setTid(CustomerIdUtil.getCustomerId());
             iotDeviceconfig1.setDevBid(deviceId);
             iotDeviceconfig1.setDevcfgContext("{}");
             iotDeviceconfig1.setDevcfgDelstatus("0");

+ 10 - 10
src/main/resources/mapper/IotDeviceMapper.xml

@@ -7,7 +7,7 @@
     <resultMap type="IotDevice" id="IotDeviceResult">
         <result property="id" column="id"/>
         <result property="devBid" column="devBid"/>
-        <result property="cId" column="cId"/>
+        <result property="tid" column="tid"/>
         <result property="devtypeBid" column="devtypeBid"/>
         <result property="firmBid" column="firmBid"/>
         <result property="devCode" column="devCode"/>
@@ -132,7 +132,7 @@
         select
         iotd.id,
         iotd.devBid,
-        iotd.cId,
+        iotd.tid,
         iotd.devtypeBid,
         iotd.firmBid,
         iotd.devCode,
@@ -172,7 +172,7 @@
     <update id="updateIotDevice" parameterType="IotDevice">
         update IotDevice
         <trim prefix="SET" suffixOverrides=",">
-            <if test="cId != null">cId = #{cId},</if>
+            <if test="tid != null">tid = #{tid},</if>
             <if test="devtypeBid != null and devtypeBid != ''">devtypeBid = #{devtypeBid},</if>
             <if test="firmBid != null">firmBid = #{firmBid},</if>
             <if test="devCode != null">devCode = #{devCode},</if>
@@ -210,7 +210,7 @@
     <update id="updateIotDeviceByDevCodeAndFirmDev">
         update IotDevice
         <trim prefix="SET" suffixOverrides=",">
-            <if test="cId != null">cId = #{cId},</if>
+            <if test="tid != null">tid = #{tid},</if>
             <if test="devtypeBid != null and devtypeBid != ''">devtypeBid = #{devtypeBid},</if>
             <if test="firmBid != null">firmBid = #{firmBid},</if>
             <if test="devCode != null">devCode = #{devCode},</if>
@@ -254,7 +254,7 @@
         insert into IotDevice
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="devBid != null">devBid,</if>
-            <if test="cId != null">cId,</if>
+            <if test="tid != null">tid,</if>
             <if test="devtypeBid != null and devtypeBid != ''">devtypeBid,</if>
             <if test="firmBid != null">firmBid,</if>
             <if test="devCode != null">devCode,</if>
@@ -293,7 +293,7 @@
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="devBid != null">#{devBid},</if>
-            <if test="cId != null">#{cId},</if>
+            <if test="tid != null">#{tid},</if>
             <if test="devtypeBid != null and devtypeBid != ''">#{devtypeBid},</if>
             <if test="firmBid != null">#{firmBid},</if>
             <if test="devCode != null">#{devCode},</if>
@@ -358,7 +358,7 @@
         select
         iotd.id,
         iotd.devBid,
-        iotd.cId,
+        iotd.tid,
         iotd.devtypeBid,
         iotd.firmBid,
         iotd.devCode,
@@ -398,7 +398,7 @@
         <foreach collection="list" item="item" index="index" open="" close="" separator=";">
             update IotDevice
             <trim prefix="SET" suffixOverrides=",">
-                <if test="item.cId != null">cId = #{item.cId},</if>
+                <if test="item.tid != null">tid = #{item.tid},</if>
                 <if test="item.devtypeBid != null and item.devtypeBid != ''">devtypeBid = #{item.devtypeBid},</if>
                 <if test="item.firmBid != null">firmBid = #{item.firmBid},</if>
                 <if test="item.devCode != null">devCode = #{item.devCode},</if>
@@ -446,7 +446,7 @@
         select
         d.id,
         d.devBid,
-        d.cId,
+        d.tid,
         d.devtypeBid,
         d.firmBid,
         d.devCode,
@@ -478,7 +478,7 @@
         <where>
             devDelstatus = '0'
             <if test="devBid != null  and devBid != ''">and d.devBid = #{devBid}</if>
-            <if test="cId != null  and cId != ''">and d.cId = #{cId}</if>
+            <if test="tid != null  and tid != ''">and d.tid = #{tid}</if>
             <if test="devtypeBids != null  and devtypeBids != ''">and e.devtypePid in (${devtypeBids})</if>
             <if test="devtypeBid != null  and devtypeBid != ''">and e.devtypePid = #{devtypeBid}</if>
             <if test="firmBid != null  and firmBid != ''">and d.firmBid = #{firmBid}</if>

+ 4 - 4
src/main/resources/mapper/IotDeviceconfigMapper.xml

@@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="IotDeviceconfig" id="IotDeviceconfigResult">
         <result property="id"    column="id"    />
         <result property="devcfgBid"    column="devcfgBid"    />
-        <result property="cId"    column="cId"    />
+        <result property="tid"    column="tid"    />
         <result property="devBid"    column="devBid"    />
         <result property="devcfgCmd"    column="devcfgCmd"    />
         <result property="devcfgContext"    column="devcfgContext"    />
@@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectIotDeviceconfigVo">
-        select id, devcfgBid, cId, devBid, devcfgCmd, devcfgContext, devcfgCreator, devcfgModifier, devcfgModifieddate, devcfgCreateddate, devcfgDelstatus from IotDeviceconfig
+        select id, devcfgBid, tid, devBid, devcfgCmd, devcfgContext, devcfgCreator, devcfgModifier, devcfgModifieddate, devcfgCreateddate, devcfgDelstatus from IotDeviceconfig
     </sql>
 
     <select id="selectIotDeviceconfigByDevcfgBid" resultType="com.yunfeiyun.agmp.iot.common.domain.IotDeviceconfig">
@@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         insert into IotDeviceconfig
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="devcfgBid != null">devcfgBid,</if>
-            <if test="cId != null">cId,</if>
+            <if test="tid != null">tid,</if>
             <if test="devBid != null">devBid,</if>
             <if test="devcfgCmd != null">devcfgCmd,</if>
             <if test="devcfgContext != null">devcfgContext,</if>
@@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="devcfgBid != null">#{devcfgBid},</if>
-            <if test="cId != null">#{cId},</if>
+            <if test="tid != null">#{tid},</if>
             <if test="devBid != null">#{devBid},</if>
             <if test="devcfgCmd != null">#{devcfgCmd},</if>
             <if test="devcfgContext != null">#{devcfgContext},</if>