ソースを参照

编辑添加视频诊断时,下发主机

humingshi-7@163.com 11 ヶ月 前
コミット
5b7dbcad87

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/DiagnoseMissionChMapper.java

@@ -11,6 +11,7 @@ import com.xunmei.iot.vo.sensor.DiagnoseMissionPageVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import java.util.List;
+import java.util.Set;
 
 @Repository
 public interface DiagnoseMissionChMapper extends BaseMapper<IotDeviceDiagnoseMission> {
@@ -28,6 +29,8 @@ public interface DiagnoseMissionChMapper extends BaseMapper<IotDeviceDiagnoseMis
     //批量删除-任务通道
     int batchDeleteMissionCh(@Param("ids") List<Long> ids);
 
+    Set<String> selectIotTokensByMissionId(@Param("missionId")String missionId);
+
     int deleteCamerasByMissionId(@Param("missionId")String missionId);
 
     List<DiagnoseMissionPageVo> selectExcelData(@Param("request") DiagnoseMissionPageDto request);

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/DiagnoseThresholdChMapper.java

@@ -10,6 +10,7 @@ import com.xunmei.iot.vo.sensor.DiagnoseThresholdPageVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import java.util.List;
+import java.util.Set;
 
 @Repository
 public interface DiagnoseThresholdChMapper  extends BaseMapper<IotDeviceDiagnoseThreshold> {
@@ -26,6 +27,8 @@ public interface DiagnoseThresholdChMapper  extends BaseMapper<IotDeviceDiagnose
     //修改阈值绑定的设备数量
     Integer updateDiagnoseNumber(@Param("thresholdCode")String thresholdCode);
 
+    Set<String> selectIotTokensByThresholdCode(@Param("thresholdCode")String thresholdCode);
+
     int deleteCamerasByThresholdCode(@Param("thresholdCode")String thresholdCode);
 
     List<DiagnoseThresholdPageVo> selectExcelData(@Param("request") DiagnoseThresholdPageDto request);

+ 16 - 4
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/DiagnoseMissionServiceImpl.java

@@ -241,8 +241,13 @@ public class DiagnoseMissionServiceImpl implements DiagnoseMissionService {
         }
         //删除任务
         diagnoseMissionChMapper.deleteById(missionId);
+        //下发同步主机
+        Set<String> iotTokens=diagnoseMissionChMapper.selectIotTokensByMissionId(missionId);
         //删除关联视频通道
         diagnoseMissionChMapper.deleteCamerasByMissionId(missionId);
+        if(iotTokens != null && !iotTokens.isEmpty()){
+            diagnoseThresholdService.syncDiagnose(iotTokens);
+        }
     }
 
     @Override
@@ -280,7 +285,8 @@ public class DiagnoseMissionServiceImpl implements DiagnoseMissionService {
 
     @Override
     public void editMission(IotDeviceDiagnoseMission request){
-        IotDeviceDiagnoseMission bean = diagnoseMissionChMapper.selectById(request.getMissionId());
+        String missionId = request.getMissionId();
+        IotDeviceDiagnoseMission bean = diagnoseMissionChMapper.selectById(missionId);
         if (bean == null) {
             String errorMsg = "查询任务实体不存在";
             throw  new ServiceException(errorMsg);
@@ -292,7 +298,7 @@ public class DiagnoseMissionServiceImpl implements DiagnoseMissionService {
 
         QueryWrapper<IotDeviceDiagnoseMission> queryWrapper = new QueryWrapper();
         queryWrapper.eq("begin_time", request.getBeginTime()).eq("end_time", request.getEndTime())
-                .eq("cycle",request.getCycle()).ne("mission_id", request.getMissionId());
+                .eq("cycle",request.getCycle()).ne("mission_id", missionId);
         List<IotDeviceDiagnoseMission> list = diagnoseMissionChMapper.selectList(queryWrapper);
         if (!list.isEmpty()) {
             String errorMsg = "已存在相同参数的任务配置'" + list.get(0).getName() + "'!";
@@ -301,7 +307,7 @@ public class DiagnoseMissionServiceImpl implements DiagnoseMissionService {
 
 
         queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("name", request.getName()).ne("mission_id", request.getMissionId());
+        queryWrapper.eq("name", request.getName()).ne("mission_id", missionId);
         long nameCount = diagnoseMissionChMapper.selectCount(queryWrapper);
         if (nameCount > 0) {
             String errorMsg = "已存在相同名称的任务配置";
@@ -309,7 +315,7 @@ public class DiagnoseMissionServiceImpl implements DiagnoseMissionService {
         }
         IotDeviceDiagnoseMission mission = new IotDeviceDiagnoseMission();
 
-        mission.setMissionId(request.getMissionId());
+        mission.setMissionId(missionId);
         mission.setName(request.getName());
         mission.setBeginTime(request.getBeginTime());
         mission.setEndTime(request.getEndTime());
@@ -317,6 +323,12 @@ public class DiagnoseMissionServiceImpl implements DiagnoseMissionService {
         mission.setEnabled(request.getEnabled());
 
         diagnoseMissionChMapper.updateById(mission);
+
+        //下发同步主机
+        Set<String> iotTokens=diagnoseMissionChMapper.selectIotTokensByMissionId(missionId);
+        if(iotTokens != null && !iotTokens.isEmpty()){
+            diagnoseThresholdService.syncDiagnose(iotTokens);
+        }
     }
 
     @Override

+ 12 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/DiagnoseThresholdServiceImpl.java

@@ -238,8 +238,13 @@ public class DiagnoseThresholdServiceImpl  implements DiagnoseThresholdService {
         }
         //删除阈值
         diagnoseThresholdChMapper.delete(queryWrapper);
+        Set<String> iotTokens=diagnoseThresholdChMapper.selectIotTokensByThresholdCode(thresholdCode);
         //删除关联视频通道
         diagnoseThresholdChMapper.deleteCamerasByThresholdCode(thresholdCode);
+        //下发同步主机
+        if(iotTokens != null && !iotTokens.isEmpty()){
+            this.syncDiagnose(iotTokens);
+        }
     }
 
     @Override
@@ -283,6 +288,7 @@ public class DiagnoseThresholdServiceImpl  implements DiagnoseThresholdService {
     }
 
     @Override
+    @Transactional
     public void editThreshold(DiagnoseThresholdAddVo request){
         String nosignal=request.getNosignal().replace("&gt;",">").replace("&lt;","<");
         String covered=request.getCovered().replace("&gt;",">").replace("&lt;","<");
@@ -318,6 +324,12 @@ public class DiagnoseThresholdServiceImpl  implements DiagnoseThresholdService {
         threshold.setType(0L);
 
         diagnoseThresholdChMapper.updateById(threshold);
+
+        //下发同步主机
+        Set<String> iotTokens=diagnoseThresholdChMapper.selectIotTokensByThresholdCode(thresholdCode);
+        if(iotTokens != null && !iotTokens.isEmpty()){
+            this.syncDiagnose(iotTokens);
+        }
     }
 
     @Override

+ 4 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/DiagnoseMissionChMapper.xml

@@ -167,6 +167,10 @@
         </foreach>
     </delete>
 
+    <select id="selectIotTokensByMissionId" resultType="java.lang.String">
+        select distinct iot_token from iot_device_diagnose_mission_ch where mission_id = #{missionId}
+    </select>
+
     <delete id="deleteCamerasByMissionId" parameterType="java.lang.String">
         delete from iot_device_diagnose_mission_ch where mission_id = #{missionId}
     </delete>

+ 4 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/DiagnoseThresholdChMapper.xml

@@ -152,6 +152,10 @@
         where threshold_code =  #{thresholdCode}
     </select>
 
+    <select id="selectIotTokensByThresholdCode" resultType="java.lang.String">
+        select distinct iot_token from iot_device_diagnose_threshold_ch where threshold_code = #{thresholdCode}
+    </select>
+
     <delete id="deleteCamerasByThresholdCode">
         delete from iot_device_diagnose_threshold_ch where threshold_code = #{thresholdCode}
     </delete>