package com.zy.asrs.task;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.service.WrkMastService;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.asrs.task.handler.ReportToDismantleTheStackHandler;
|
import com.zy.core.cache.SlaveConnection;
|
import com.zy.core.enums.SlaveType;
|
import com.zy.core.model.protocol.StaProtocol;
|
import com.zy.core.thread.SiemensDevpThread;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.*;
|
|
/**
|
* Created by Monkey D. Luffy on 2023.07.25
|
* 徐工汉云..............以下.............上饶江铜.............拆垛信息上传
|
*/
|
@Slf4j
|
@Component
|
public class ReportToDismantleTheStackScheduler {
|
|
@Autowired
|
private ReportToDismantleTheStackHandler reportToDismantleTheStackHandler;
|
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Scheduled(cron = "0/1 * * * * ? ")
|
private void execute(){//拆垛信息上传
|
int[] staNos =new int[]{118,120,121};
|
List<Integer> integersStaArr = new ArrayList<>();
|
List<Long[]> stalistArr = new ArrayList<>();
|
for(Integer staNo : staNos){
|
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
|
StaProtocol staProtocol = devpThread.getStation().get(staNo);
|
if (staProtocol == null || !staProtocol.isAutoing() || staProtocol.getWorkNo()==0) {
|
continue;
|
}
|
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getWorkNo()));
|
if (Cools.isEmpty(wrkMast) || Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("0")){
|
continue;
|
}
|
Date modiTime = wrkMast.getModiTime();
|
stalistArr.add(new Long[]{staNo.longValue(), modiTime.getTime()});
|
}
|
if (!stalistArr.isEmpty() && stalistArr.size()>1){
|
// Collections.sort(stalistArr, (a, b) -> a[1] - b[1]); // 降序排列
|
|
Collections.sort(stalistArr, Comparator.comparingLong(arr -> arr[1]));
|
for (Long[] staNowArr : stalistArr){
|
integersStaArr.add(staNowArr[0].intValue());
|
}
|
}
|
for (int staNo : integersStaArr){
|
try{
|
ReturnT<String> result = reportToDismantleTheStackHandler.start2(staNo);
|
if (result.getCode()==200){
|
break;
|
}
|
}catch (Exception e){
|
log.error("站点"+staNo+"拆垛信息上传处理失败,异常信息:"+e);
|
}
|
}
|
}
|
|
}
|