package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.BasCrnError; import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.entity.BasErrLog; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.service.BasCrnErrorService; import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.BasErrLogService; import com.zy.asrs.service.TaskWrkService; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.Date; import java.util.List; /** * 定时获取堆垛机报警,进行记录 */ @Slf4j @Component public class BasErrLogScheduler { @Autowired private BasErrLogService basErrLogService; @Autowired private BasCrnpService basCrnpService; @Autowired private TaskWrkService taskWrkService; @Autowired private BasCrnErrorService basCrnErrorService; @Scheduled(cron = "0/3 * * * * ? ") public void execute() throws IOException { //对有异常的堆垛机进行异常记录 List basCrnps=basCrnpService.selectList(new EntityWrapper().ge("crn_err",1)); if(!Cools.isEmpty(basCrnps)){ for(BasCrnp basCrnp:basCrnps){ Integer wrkNo=basCrnp.getWrkNo(); Integer ioType = 0; Long wrkSts= 0L; String error=""; if(Cools.isEmpty(basCrnp.getRetrieveMk())||basCrnp.getRetrieveMk().equals("N")){ BasCrnError basCrnError=basCrnErrorService.selectOne(new EntityWrapper().eq("error_code",Math.toIntExact(basCrnp.getCrnErr()))); if(!Cools.isEmpty(basCrnError)){ error = basCrnError.getErrName(); } BasErrLog basErrLog=new BasErrLog(); if(basCrnp.getWrkNo()>0){ TaskWrk taskWrk=taskWrkService.selectOne(new EntityWrapper() .eq("crn_no",basCrnp.getCrnNo()) .eq("wrk_no",basCrnp.getWrkNo())); if(taskWrk!=null){ wrkNo=taskWrk.getWrkNo(); ioType=taskWrk.getIoType(); wrkSts=taskWrk.getWrkSts().longValue(); } } basErrLog.setWrkNo(wrkNo); basErrLog.setWrkSts(wrkSts); basErrLog.setIoType(ioType); basErrLog.setStartTime(new Date()); basErrLog.setCrnNo(basCrnp.getCrnNo()); basErrLog.setErrCode(Math.toIntExact(basCrnp.getCrnErr())); basErrLog.setError(error); if(basErrLogService.insert(basErrLog)){ basCrnp.setRetrieveMk("Y"); basCrnpService.updateById(basCrnp); } } } } //对没异常的堆垛机进行异常记号复位 List basCrnps1 = basCrnpService.selectList(new EntityWrapper().eq("crn_err", 0).eq("retrieve_mk", "Y")); for(BasCrnp basCrnp:basCrnps1){ basCrnp.setRetrieveMk("N"); basCrnpService.updateById(basCrnp); } } }