package com.js.kbt.task; import java.text.SimpleDateFormat; import java.util.Date; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.springframework.stereotype.Service; import com.js.kbt.mapper.TbMouldMapper; import com.js.kbt.model.TbMould; import com.js.kbt.model.TbMouldExample; @Service public class MyTask { @Resource(name = "tbMouldMapper") private TbMouldMapper tbMouldMapper; Logger log = Logger.getLogger(MyTask.class); // @Scheduled(fixedRate = 1*60*1000)标签不能用,会导致Bean定义冲突报错 public void doTask() throws Exception { Date now = new Date(); log.info("定时任务:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now)); //规则是, 运动状态下,上次接受,超过2.5个小时,不到6个小时的模具设备,状态设置为5-异常,6小时以上的,状态设置为掉线 now.setHours(now.getHours() -2); now.setMinutes(now.getMinutes()-30); TbMouldExample example = new TbMouldExample(); example.createCriteria().andStateEqualTo("1").andLastRecTimeLessThanOrEqualTo(now); TbMould mould = new TbMould(); mould.setState("5");//超过1小时仍然是运行状态的,要改成异常。 int cnt = tbMouldMapper.updateByExampleSelective(mould, example); log.info("更新了"+cnt+"条异常"); //超过6小时,仍然是异常状态的,改成掉线 now = new Date(); now.setHours(now.getHours() - 6); example.clear(); example.createCriteria().andStateEqualTo("5").andLastRecTimeLessThanOrEqualTo(now); mould.setState("6"); cnt = tbMouldMapper.updateByExampleSelective(mould, example); log.info("更新了"+cnt+"条掉线"); } }