2024-04-14 21:05:01 +08:00

89 lines
3.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
import lombok.extern.slf4j.Slf4j;
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
**/
@Slf4j
@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){
log.error("error", e);
}
}
}