小车
This commit is contained in:
@@ -25,6 +25,8 @@ public interface IWcsSrgvQueueService
|
|||||||
public WcsSrgvQueue selectWcsSrgvQueueByAgvId(String agvId);
|
public WcsSrgvQueue selectWcsSrgvQueueByAgvId(String agvId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询四向小车任务队列列表
|
* 查询四向小车任务队列列表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -199,29 +199,26 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
MydoJob mydoJob1 = mydoJobs.get(0);
|
MydoJob mydoJob1 = mydoJobs.get(0);
|
||||||
// 查询是否有已下发的该任务号队列
|
// 查询是否有已下发的该任务号队列
|
||||||
WcsSrgvQueue wcsSrgvQueue1 = wcsSagvQueueMapper.selectWcsSrgvQueueByTaskNo(mydoJob1.getTaskNo());
|
WcsSrgvQueue wcsSrgvQueue1 = wcsSagvQueueMapper.selectWcsSrgvQueueByTaskNo(mydoJob1.getTaskNo());
|
||||||
|
|
||||||
|
|
||||||
if (wcsSrgvQueue1 == null) {
|
if (wcsSrgvQueue1 == null) {
|
||||||
ConcurrentHashMap<String, DeviceSrgv> deviceSrgvMap = PlcSrgvRead.deviceSrgvMap;
|
ConcurrentHashMap<String, DeviceSrgv> deviceSrgvMap = PlcSrgvRead.deviceSrgvMap;
|
||||||
List<DeviceSrgv> deviceSrgvList = deviceSrgvMap.values().stream().filter(deviceSrgv -> deviceSrgv.getStatus() == 1 && deviceSrgv.getWorkMode() == 4).collect(Collectors.toList());
|
List<DeviceSrgv> deviceSrgvList = deviceSrgvMap.values().stream().filter(deviceSrgv -> deviceSrgv.getWorkMode() == 4).collect(Collectors.toList());
|
||||||
if (!deviceSrgvList.isEmpty()) {
|
if (!deviceSrgvList.isEmpty()) {
|
||||||
DeviceSrgv deviceSrgv =null;
|
DeviceSrgv deviceSrgv =null;
|
||||||
for (DeviceSrgv deviceSrgv1 : deviceSrgvList) {
|
for (DeviceSrgv deviceSrgv1 : deviceSrgvList) {
|
||||||
WcsSrgvQueue wcsSrgvQueue = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(deviceSrgv1.getDeviceId().toString());
|
|
||||||
if (wcsSrgvQueue == null) {
|
|
||||||
//如果有currFloor等于mydoJob1的theFloor的就选择,如果没有选择deviceSrgvList中currFloor最小的
|
|
||||||
if (deviceSrgv1.getCurrFloor().toString().equals(mydoJob1.getTheFloor())) {
|
if (deviceSrgv1.getCurrFloor().toString().equals(mydoJob1.getTheFloor())) {
|
||||||
deviceSrgv = deviceSrgv1;
|
deviceSrgv = deviceSrgv1;
|
||||||
break; // 找到了相同楼层的直接选它
|
break; // 找到了相同楼层的直接选它
|
||||||
} else if (deviceSrgv == null || deviceSrgv1.getCurrFloor() < deviceSrgv.getCurrFloor()) {
|
} else if (deviceSrgv == null || deviceSrgv1.getCurrFloor() < deviceSrgv.getCurrFloor()) {
|
||||||
deviceSrgv = deviceSrgv1; // 更新为更小楼层的小车
|
deviceSrgv = deviceSrgv1; // 更新为更小楼层的小车
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WcsSrgvQueue wcsSrgvQueue2 = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(deviceSrgv.getDeviceId().toString());
|
||||||
|
if (wcsSrgvQueue2 == null && deviceSrgv.getStatus()==1) {
|
||||||
|
|
||||||
//查询1楼是否有空闲联机自动的小车,且1楼小车不在入库站点
|
//查询小车是否为1楼,且1楼小车不在入库站点
|
||||||
String endSite = "";
|
String endSite = "";
|
||||||
WcsSrgvMap wcsSrgvMap = new WcsSrgvMap();
|
WcsSrgvMap wcsSrgvMap = new WcsSrgvMap();
|
||||||
wcsSrgvMap.setRemark(mydoJob1.getEntranceId());
|
wcsSrgvMap.setRemark(mydoJob1.getEntranceId());
|
||||||
@@ -264,6 +261,7 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSrgvQueue);
|
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSrgvQueue);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,22 +514,9 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
* 1、不处理终点是提升机站点的四向车
|
* 1、不处理终点是提升机站点的四向车
|
||||||
* 2、处理终点不是提升机站点的
|
* 2、处理终点不是提升机站点的
|
||||||
* */
|
* */
|
||||||
boolean taskFinishFlag = finishTaskByQueue(deviceSrgv.getCurrSite(), wcsSrgvQueue);
|
|
||||||
|
|
||||||
if (taskFinishFlag) {
|
finishTaskByQueue(deviceSrgv.getCurrSite(), wcsSrgvQueue);
|
||||||
String spare2 = deviceSrgv.getSpare2();
|
|
||||||
if ("-".equals(spare2)) {
|
|
||||||
//换层 不删除队列
|
|
||||||
wcsSrgvQueue.setExecutionStatus("2");
|
|
||||||
wcsSagvQueueMapper.updateWcsSrgvQueue(wcsSrgvQueue);
|
|
||||||
} else {
|
|
||||||
WcsSrgvQueueFinish wcsSrgvQueueFinish = new WcsSrgvQueueFinish();
|
|
||||||
BeanUtil.copyProperties(wcsSrgvQueue, wcsSrgvQueueFinish);
|
|
||||||
wcsSrgvQueueFinish.setFinishDate(DateUtil.now());
|
|
||||||
wcsSagvQueueFinishMapper.insertWcsSrgvQueueFinish(wcsSrgvQueueFinish);
|
|
||||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -602,16 +587,18 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
//请求wms生成库存
|
//请求wms生成库存
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "7"://移库,变动库存,删除队列,插入历史表
|
case "7"://移库,变动库存
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
//删除队列,插入历史表
|
||||||
|
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||||
|
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
//充电之类得 不知道用不用
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user