Commit 96dc50cb authored by 何金镒's avatar 何金镒

场景 5

parent c81527b3
...@@ -98,7 +98,7 @@ public class DeviceTools { ...@@ -98,7 +98,7 @@ public class DeviceTools {
public String setDelayedShutdown(@ToolParam(description = "主机号")String ccuName, public String setDelayedShutdown(@ToolParam(description = "主机号")String ccuName,
@ToolParam(description = "设备ID")String devId, @ToolParam(description = "设备ID")String devId,
@ToolParam(description = "设备类型ID")String typeId, @ToolParam(description = "设备类型ID")String typeId,
@ToolParam(description = "多少分钟后关机,范围1-1440")int delayTime){ @ToolParam(description = "多少分钟后关机,范围30-1440,必须是30的倍数,最小是半小时")int delayTime){
log.info("mcp调用--->根据主机号和设备ID控制设备延时关机....ccuName:{},devId:{},type:{},delayTime:{}",ccuName,devId,typeId,delayTime); log.info("mcp调用--->根据主机号和设备ID控制设备延时关机....ccuName:{},devId:{},type:{},delayTime:{}",ccuName,devId,typeId,delayTime);
return konkeIotServer.setDelayedShutdown(CcuUtils.getCcuName(ccuName), devId, typeId,delayTime); return konkeIotServer.setDelayedShutdown(CcuUtils.getCcuName(ccuName), devId, typeId,delayTime);
} }
......
...@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene; import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene;
import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface TemporarySceneMapper extends BaseMapper<TemporaryScene> { public interface TemporarySceneMapper extends BaseMapper<TemporaryScene> {
...@@ -11,4 +14,14 @@ public interface TemporarySceneMapper extends BaseMapper<TemporaryScene> { ...@@ -11,4 +14,14 @@ public interface TemporarySceneMapper extends BaseMapper<TemporaryScene> {
@Delete("DELETE t1 FROM temporary_scene t1 INNER JOIN temporary_scene t2 WHERE t1.ccuId = t2.ccuId AND ( t1.createTime < t2.createTime OR ( t1.createTime = t2.createTime AND t1.id < t2.id ) )") @Delete("DELETE t1 FROM temporary_scene t1 INNER JOIN temporary_scene t2 WHERE t1.ccuId = t2.ccuId AND ( t1.createTime < t2.createTime OR ( t1.createTime = t2.createTime AND t1.id < t2.id ) )")
int delByCreateTime(); int delByCreateTime();
/**
* 如果用户自己保存,会将这条数据删除,若没删除,说明用户没有说保存,那么就需要删除,且要把主机中的数据也删除
* @return
*/
@Delete("DELETE FROM temporary_scene WHERE createTime < DATE_SUB(NOW(), INTERVAL 1 HOUR)")
int delOld();
@Select("SELECT * FROM temporary_scene WHERE createTime < DATE_SUB(NOW(), INTERVAL 1 HOUR)")
List<TemporaryScene> queryOld();
} }
...@@ -3,7 +3,13 @@ package com.ikonke.konkeaialibabamcp.service.mysqlservice; ...@@ -3,7 +3,13 @@ package com.ikonke.konkeaialibabamcp.service.mysqlservice;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene; import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene;
import java.util.List;
public interface ITemporarySceneService extends IService<TemporaryScene> { public interface ITemporarySceneService extends IService<TemporaryScene> {
int delByCreateTime(); int delByCreateTime();
int delOld();
List<TemporaryScene> queryOld();
} }
package com.ikonke.konkeaialibabamcp.service.mysqlservice.impl; package com.ikonke.konkeaialibabamcp.service.mysqlservice.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ikonke.konkeaialibabamcp.entity.mysql.SynDevice;
import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene; import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene;
import com.ikonke.konkeaialibabamcp.mapper.mysql.TemporarySceneMapper; import com.ikonke.konkeaialibabamcp.mapper.mysql.TemporarySceneMapper;
import com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService; import com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService;
...@@ -9,6 +8,7 @@ import org.springframework.stereotype.Service; ...@@ -9,6 +8,7 @@ import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@Service @Service
public class ITemporarySceneServiceImpl extends ServiceImpl<TemporarySceneMapper, TemporaryScene> implements ITemporarySceneService { public class ITemporarySceneServiceImpl extends ServiceImpl<TemporarySceneMapper, TemporaryScene> implements ITemporarySceneService {
...@@ -16,4 +16,15 @@ public class ITemporarySceneServiceImpl extends ServiceImpl<TemporarySceneMapper ...@@ -16,4 +16,15 @@ public class ITemporarySceneServiceImpl extends ServiceImpl<TemporarySceneMapper
public int delByCreateTime() { public int delByCreateTime() {
return baseMapper.delByCreateTime(); return baseMapper.delByCreateTime();
} }
@Override
public int delOld() {
return baseMapper.delOld();
}
@Override
public List<TemporaryScene> queryOld(){
return baseMapper.queryOld();
}
} }
package com.ikonke.konkeaialibabamcp.timedtasks; package com.ikonke.konkeaialibabamcp.timedtasks;
import com.ikonke.konkeaialibabamcp.entity.mysql.TemporaryScene;
import com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService; import com.ikonke.konkeaialibabamcp.service.mysqlservice.ITemporarySceneService;
import com.ikonke.konkeaialibabamcp.utils.KonkeIotUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
@Slf4j @Slf4j
@Component @Component
...@@ -15,6 +19,8 @@ public class TemporarySceneTask { ...@@ -15,6 +19,8 @@ public class TemporarySceneTask {
@Autowired @Autowired
private ITemporarySceneService temporarySceneService; private ITemporarySceneService temporarySceneService;
@Autowired
private KonkeIotUtils konkeIotServer;
/** /**
* 每5分钟再执行一次该定时器。 * 每5分钟再执行一次该定时器。
...@@ -23,6 +29,13 @@ public class TemporarySceneTask { ...@@ -23,6 +29,13 @@ public class TemporarySceneTask {
public void task() { public void task() {
log.info("开始定时任务:删除数据库中的旧的临时任务"); log.info("开始定时任务:删除数据库中的旧的临时任务");
int i = temporarySceneService.delByCreateTime(); int i = temporarySceneService.delByCreateTime();
List<TemporaryScene> temporaryScenes = temporarySceneService.queryOld();
if(!temporaryScenes.isEmpty()){
for(TemporaryScene scene : temporaryScenes){
konkeIotServer.delScene("自动删除一小时以上的", scene.getCcuId(), scene.getTemporarySceneId());
}
}
log.info("结束定时任务:删除数据库中的旧的临时任务数量"+i); log.info("结束定时任务:删除数据库中的旧的临时任务数量"+i);
} }
......
...@@ -313,6 +313,9 @@ public class KonkeIotUtils { ...@@ -313,6 +313,9 @@ public class KonkeIotUtils {
if(StrUtil.isBlank(ccuName) || StrUtil.isBlank(devId) || StrUtil.isBlank(operateId) || (delayTime<0 || delayTime>24*60)){ if(StrUtil.isBlank(ccuName) || StrUtil.isBlank(devId) || StrUtil.isBlank(operateId) || (delayTime<0 || delayTime>24*60)){
throw new StatefulException(-20, "参数不能为空"); throw new StatefulException(-20, "参数不能为空");
} }
if(delayTime % 30 != 0){
throw new StatefulException(-31, "延时时间只能是30的倍数");
}
if (getDeviceOnline(ccuName, devId)) { if (getDeviceOnline(ccuName, devId)) {
throw new StatefulException(-30, "设备已离线"); throw new StatefulException(-30, "设备已离线");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment