This commit is contained in:
张怡蓉
2025-11-28 09:11:51 +08:00
parent 98fa4a4c2d
commit e5e87c1013
2 changed files with 16 additions and 27 deletions

View File

@@ -25,6 +25,8 @@ public interface IWcsSrgvQueueService
public WcsSrgvQueue selectWcsSrgvQueueByAgvId(String agvId); public WcsSrgvQueue selectWcsSrgvQueueByAgvId(String agvId);
/** /**
* 查询四向小车任务队列列表 * 查询四向小车任务队列列表
* *

View File

@@ -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 {
//充电之类得 不知道用不用
} }