89 lines
3.3 KiB
Java
Raw Normal View History

2023-02-16 15:28:15 +08:00
package com.zhgd.xmgl.task;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.environment.entity.SprayDev;
import com.zhgd.xmgl.modules.environment.mapper.SprayDevMapper;
import com.zhgd.xmgl.modules.environment.mapper.SprayDevTimingTaskMapper;
import com.zhgd.xmgl.util.DustUtils;
import lombok.extern.log4j.Log4j;
2024-03-30 18:46:27 +08:00
import lombok.extern.slf4j.Slf4j;
2023-02-16 15:28:15 +08:00
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @program: wisdomSite
* @description: 雾炮喷淋设备定时任务
* @author: Mr.Peng
* @create: 2021-07-07 19:17
**/
2024-03-30 18:46:27 +08:00
@Slf4j
2023-02-16 15:28:15 +08:00
@Component
public class SprayDevTask {
@Autowired
private SprayDevMapper sprayDevMapper;
@Autowired
private SprayDevTimingTaskMapper sprayDevTimingTaskMapper;
/**
* 雾炮喷淋设备定时任务执行
*/
@Scheduled(cron = "0 0/3 * * * ?")
@SchedulerLock(name = "executeSprayDevTask", lockAtMostFor = 1000*60*2, lockAtLeastFor = 1000*60*1)
public void executeTask(){
try{
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int weekDay = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (weekDay == 0) {
weekDay = 7;
}
List<EntityMap> list=sprayDevTimingTaskMapper.selectSprayDevTimingTaskList(weekDay);
if(list!=null&&list.size()>0){
for(EntityMap data:list){
Integer switchStatus= MapUtils.getInteger(data,"switchStatus");
String type="0";
if(switchStatus==1){
type="-1";
}
boolean falg=false;
Integer deviceType=MapUtils.getInteger(data,"deviceType");
if(deviceType==2){
String result = DustUtils.sendDualChannelDevOperation(MapUtils.getString(data,"deviceId"), type,MapUtils.getInteger(data,"openChannelNo"),MapUtils.getInteger(data,"closeChannelNo"));
if ("success".equals(result)) {
falg=true;
}
}else{
String result = DustUtils.sendSingleChannelDevOperation(MapUtils.getString(data,"deviceId"), type);
if ("success".equals(result)) {
falg=true;
}
}
if(falg) {
SprayDev sprayDev = new SprayDev();
sprayDev.setSwitchStatus(switchStatus);
sprayDev.setId(MapUtils.getLong(data, "sprayDevId"));
sprayDevMapper.updateById(sprayDev);
}
//将只执行一次的任务删除
if("1".equals(MapUtils.getString(data, "isRepeat"))){
sprayDevTimingTaskMapper.deleteById(MapUtils.getString(data, "id"));
}
}
}
}catch (Exception e){
2024-04-14 21:05:01 +08:00
log.error("error", e);
2023-02-16 15:28:15 +08:00
}
}
}