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<BasCrnp> basCrnps=basCrnpService.selectList(new EntityWrapper<BasCrnp>().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<BasCrnError>().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<TaskWrk>()
|
.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<BasCrnp> basCrnps1 = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_err", 0).eq("retrieve_mk", "Y"));
|
for(BasCrnp basCrnp:basCrnps1){
|
basCrnp.setRetrieveMk("N");
|
basCrnpService.updateById(basCrnp);
|
}
|
}
|
}
|