|
|
|
|
@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@ -27,30 +28,61 @@ public class SteeringEngineService extends ServiceImpl<SteeringEngineMapper,Stee
|
|
|
|
|
|
|
|
|
|
void check(){
|
|
|
|
|
List<SteeringEngine> list = list();
|
|
|
|
|
Map<String,SteeringEngine> newMap = list.stream().collect(Collectors.toMap(SteeringEngine::getWorkunitdesc, v->v));
|
|
|
|
|
for (String streetId : newMap.keySet()){
|
|
|
|
|
//如果为空或状态不同,则进入随行记录
|
|
|
|
|
if(steeringEngineMap.get(streetId) ==null){
|
|
|
|
|
//记录
|
|
|
|
|
steeringEngineMap.put(streetId,newMap.get(streetId));
|
|
|
|
|
}else if(!steeringEngineMap.get(streetId).getWorkunitstatus().equals("0") && !steeringEngineMap.get(streetId).getWorkunitstatus().equals(newMap.get(streetId).getWorkunitstatus())){
|
|
|
|
|
|
|
|
|
|
//在跑随行
|
|
|
|
|
if(!newMap.get(streetId).getJobnum().equals("0")){
|
|
|
|
|
Map<String, SteeringEngine> newMap = list.stream()
|
|
|
|
|
.collect(Collectors.toMap(SteeringEngine::getWorkunitdesc, v -> v));
|
|
|
|
|
|
|
|
|
|
for (String streetId : newMap.keySet()) {
|
|
|
|
|
SteeringEngine newEngine = newMap.get(streetId);
|
|
|
|
|
SteeringEngine oldEngine = steeringEngineMap.get(streetId);
|
|
|
|
|
|
|
|
|
|
// 如果为空或状态不同,则进入随行记录
|
|
|
|
|
if (oldEngine == null) {
|
|
|
|
|
// 记录
|
|
|
|
|
steeringEngineMap.put(streetId, newEngine);
|
|
|
|
|
oldEngine= newEngine;
|
|
|
|
|
}
|
|
|
|
|
if (!Objects.equals(oldEngine.getJobnum(), newEngine.getJobnum())) {
|
|
|
|
|
// 在跑随行
|
|
|
|
|
if (!newEngine.getJobnum().equals("0")) {
|
|
|
|
|
log.info("随行开始");
|
|
|
|
|
plcService.orderStart(SteeringEngine.getPlcCmdInfo(newMap.get(streetId)));
|
|
|
|
|
plcService.orderStart(SteeringEngine.getPlcCmdInfo(newEngine));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//随行结束
|
|
|
|
|
// 随行结束
|
|
|
|
|
else {
|
|
|
|
|
log.info("随行结束");
|
|
|
|
|
PlcCmdInfo plcCmdInfo = SteeringEngine.getPlcCmdInfo(newMap.get(streetId));
|
|
|
|
|
plcCmdInfo.setOrderNum(steeringEngineMap.get(streetId).getPltnum());
|
|
|
|
|
plcService.orderStop(SteeringEngine.getPlcCmdInfo(newMap.get(streetId)));
|
|
|
|
|
PlcCmdInfo plcCmdInfo = SteeringEngine.getPlcCmdInfo(newEngine);
|
|
|
|
|
plcCmdInfo.setOrderNum(oldEngine.getPltnum());
|
|
|
|
|
plcService.orderStop(plcCmdInfo);
|
|
|
|
|
}
|
|
|
|
|
// 记录
|
|
|
|
|
steeringEngineMap.put(streetId, newEngine);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkSteeringEngines() {
|
|
|
|
|
|
|
|
|
|
List<SteeringEngine> steeringEngines = list();
|
|
|
|
|
for (SteeringEngine steeringEngine : steeringEngines) {
|
|
|
|
|
String streetId = steeringEngine.getWorkunitdesc();
|
|
|
|
|
String jobNum = steeringEngine.getJobnum();
|
|
|
|
|
|
|
|
|
|
//记录
|
|
|
|
|
steeringEngineMap.put(streetId,newMap.get(streetId));
|
|
|
|
|
if (jobNum != null && !jobNum.equals("0")) {
|
|
|
|
|
// 随行开始
|
|
|
|
|
if (!steeringEngineMap.containsKey(streetId) || steeringEngineMap.get(streetId).getJobnum().equals("0")) {
|
|
|
|
|
log.info("随行开始, streetId: {}", streetId);
|
|
|
|
|
plcService.orderStart(SteeringEngine.getPlcCmdInfo(steeringEngine));
|
|
|
|
|
steeringEngineMap.put(streetId, steeringEngine);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 随行结束
|
|
|
|
|
if (steeringEngineMap.containsKey(streetId) && !steeringEngineMap.get(streetId).getJobnum().equals("0")) {
|
|
|
|
|
log.info("随行结束, streetId: {}", streetId);
|
|
|
|
|
PlcCmdInfo plcCmdInfo = SteeringEngine.getPlcCmdInfo(steeringEngine);
|
|
|
|
|
plcCmdInfo.setOrderNum(steeringEngineMap.get(streetId).getPltnum());
|
|
|
|
|
plcService.orderStop(plcCmdInfo);
|
|
|
|
|
steeringEngineMap.remove(streetId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|