小车
This commit is contained in:
@@ -27,6 +27,9 @@ public interface IWcsSrgvQueueService
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询四向小车任务队列列表
|
||||
*
|
||||
|
||||
@@ -50,6 +50,8 @@ public class WcsSrgvQueueServiceImpl implements IWcsSrgvQueueService
|
||||
return wcsSrgvQueueMapper.selectWcsSrgvQueueByAgvId(agvId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询四向小车任务队列列表
|
||||
*
|
||||
|
||||
@@ -236,7 +236,56 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
//终点是提升机
|
||||
endSite = "tsj";
|
||||
}
|
||||
//生成小车取货队列
|
||||
WcsSrgvMap wcsSrgvMap1 = new WcsSrgvMap();
|
||||
wcsSrgvMap1.setRemark(mydoJob1.getExitId());
|
||||
List<WcsSrgvMap> wcsSrgvMaps1 = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMap1);
|
||||
String cargoPlaceSite = wcsSrgvMaps1.get(0).getSiteId();
|
||||
|
||||
List<DeviceSrgv> sameSiteDevices = deviceSrgvMap.values().stream()
|
||||
.filter(d -> d.getWorkMode() == 4
|
||||
&& d.getStatus() == 1
|
||||
&& d.getCurrSite().equals(cargoPlaceSite))
|
||||
.collect(Collectors.toList());
|
||||
if(!sameSiteDevices.isEmpty() &&!Objects.equals(sameSiteDevices.get(0).getDeviceId(), deviceSrgv.getDeviceId())){
|
||||
WcsSrgvMap wcsSrgvMap3 = new WcsSrgvMap();
|
||||
wcsSrgvMap3.setRemark("cache");
|
||||
List<WcsSrgvMap> wcsSrgvMaps3 = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMap3);
|
||||
for(WcsSrgvMap wcsSrgvMap4 : wcsSrgvMaps3){
|
||||
//deviceSrgvMap中所有对象的currSite都不等于wcsSrgvMap4的siteId的对象
|
||||
if(deviceSrgvMap.values().stream().noneMatch(d -> d.getCurrSite().equals(wcsSrgvMap4.getSiteId()))) {
|
||||
//生成小车到缓存点队列
|
||||
WcsSrgvQueue wcsSrgvQueue5 = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(sameSiteDevices.get(0).getDeviceId().toString());
|
||||
WcsSrgvQueue wcsSrgvQueue=new WcsSrgvQueue();
|
||||
wcsSrgvQueue.setCargoPlaceSite(wcsSrgvMap4.getSiteId());
|
||||
List<WcsSrgvQueue> wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueue);
|
||||
if (wcsSrgvQueue5 == null && wcsSrgvQueues.isEmpty()) {
|
||||
WcsSrgvQueue wcsSrgvQueue3 = new WcsSrgvQueue();
|
||||
wcsSrgvQueue3.setGuid(UUID.randomUUID().toString());
|
||||
wcsSrgvQueue3.setTaskNo("9999");
|
||||
wcsSrgvQueue3.setTaskType("1");
|
||||
wcsSrgvQueue3.setPriority(Long.parseLong("2"));
|
||||
wcsSrgvQueue3.setCargo("1");
|
||||
wcsSrgvQueue3.setIssued(issued);
|
||||
wcsSrgvQueue3.setExecutionStatus(executionStatus);
|
||||
wcsSrgvQueue3.setCargoPickSite(cargoPickSite);
|
||||
wcsSrgvQueue3.setCargoPlaceSite(wcsSrgvMap4.getSiteId());
|
||||
wcsSrgvQueue3.setStartSite(sameSiteDevices.get(0).getCurrSite());
|
||||
wcsSrgvQueue3.setEndSite(wcsSrgvMap4.getSiteId());
|
||||
wcsSrgvQueue3.setTheFloor(sameSiteDevices.get(0).getCurrFloor().toString());
|
||||
wcsSrgvQueue3.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||
wcsSrgvQueue3.setAgvId(sameSiteDevices.get(0).getDeviceId().toString());
|
||||
wcsSrgvQueue3.setDefault02("4");
|
||||
wcsSrgvQueue3.setDefault07(sameSiteDevices.get(0).getCurrFloor().toString());
|
||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSrgvQueue3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//生成小车取货队列
|
||||
WcsSrgvQueue wcsSrgvQueue = new WcsSrgvQueue();
|
||||
wcsSrgvQueue.setGuid(UUID.randomUUID().toString());
|
||||
wcsSrgvQueue.setTaskNo(mydoJob1.getTaskNo());
|
||||
@@ -246,10 +295,8 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
wcsSrgvQueue.setIssued(issued);
|
||||
wcsSrgvQueue.setExecutionStatus(executionStatus);
|
||||
wcsSrgvQueue.setCargoPickSite(cargoPickSite);
|
||||
WcsSrgvMap wcsSrgvMap1 = new WcsSrgvMap();
|
||||
wcsSrgvMap1.setRemark(mydoJob1.getExitId());
|
||||
List<WcsSrgvMap> wcsSrgvMaps1 = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMap1);
|
||||
wcsSrgvQueue.setCargoPlaceSite(wcsSrgvMaps1.get(0).getSiteId());
|
||||
|
||||
wcsSrgvQueue.setCargoPlaceSite(cargoPlaceSite);
|
||||
wcsSrgvQueue.setStartSite(deviceSrgv.getCurrSite());
|
||||
wcsSrgvQueue.setEndSite(endSite);
|
||||
wcsSrgvQueue.setTheFloor(deviceSrgv.getCurrFloor().toString());
|
||||
@@ -330,6 +377,53 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
// 小车不在1楼
|
||||
endSite = "tsj";
|
||||
}
|
||||
//筛选出deviceSrgvMap中deviceSrgv.getWorkMode() == 4并且deviceSrgv.getStatus() == 1并且deviceSrgv.getCurrSite() == cargoPickSite得对象,并排除掉其中deviceId与deviceSrgv.getDeviceId()相同的对象
|
||||
|
||||
List<DeviceSrgv> sameSiteDevices = deviceSrgvMap.values().stream()
|
||||
.filter(d -> d.getWorkMode() == 4
|
||||
&& d.getStatus() == 1
|
||||
&& d.getCurrSite().equals(cargoPickSite))
|
||||
.collect(Collectors.toList());
|
||||
if(!sameSiteDevices.isEmpty() && !Objects.equals(sameSiteDevices.get(0).getDeviceId(), deviceSrgv.getDeviceId())){
|
||||
WcsSrgvMap wcsSrgvMap3 = new WcsSrgvMap();
|
||||
wcsSrgvMap3.setRemark("cache");
|
||||
List<WcsSrgvMap> wcsSrgvMaps3 = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMap3);
|
||||
for(WcsSrgvMap wcsSrgvMap4 : wcsSrgvMaps3){
|
||||
//deviceSrgvMap中所有对象的currSite都不等于wcsSrgvMap4的siteId的对象
|
||||
if(deviceSrgvMap.values().stream().noneMatch(d -> d.getCurrSite().equals(wcsSrgvMap4.getSiteId()))) {
|
||||
WcsSrgvQueue wcsSrgvQueue5 = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(sameSiteDevices.get(0).getDeviceId().toString());
|
||||
WcsSrgvQueue wcsSrgvQueue = new WcsSrgvQueue();
|
||||
wcsSrgvQueue.setCargoPlaceSite(wcsSrgvMap4.getSiteId());
|
||||
List<WcsSrgvQueue> wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueue);
|
||||
if (wcsSrgvQueue5 == null && wcsSrgvQueues.isEmpty()) {
|
||||
//生成占位小车到缓存点队列
|
||||
WcsSrgvQueue wcsSrgvQueue3 = new WcsSrgvQueue();
|
||||
wcsSrgvQueue3.setGuid(UUID.randomUUID().toString());
|
||||
wcsSrgvQueue3.setTaskNo(mydoJob1.getTaskNo());
|
||||
wcsSrgvQueue3.setTaskType("1");
|
||||
wcsSrgvQueue3.setPriority(Long.parseLong("2"));
|
||||
wcsSrgvQueue3.setCargo("1");
|
||||
wcsSrgvQueue3.setIssued(issued);
|
||||
wcsSrgvQueue3.setExecutionStatus(executionStatus);
|
||||
wcsSrgvQueue3.setCargoPickSite(cargoPickSite);
|
||||
wcsSrgvQueue3.setCargoPlaceSite(wcsSrgvMap4.getSiteId());
|
||||
wcsSrgvQueue3.setStartSite(sameSiteDevices.get(0).getCurrSite());
|
||||
wcsSrgvQueue3.setEndSite(wcsSrgvMap4.getSiteId());
|
||||
wcsSrgvQueue3.setTheFloor(sameSiteDevices.get(0).getCurrFloor().toString());
|
||||
wcsSrgvQueue3.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||
wcsSrgvQueue3.setAgvId(sameSiteDevices.get(0).getDeviceId().toString());
|
||||
wcsSrgvQueue3.setDefault02("4");
|
||||
wcsSrgvQueue3.setDefault07(sameSiteDevices.get(0).getCurrFloor().toString());
|
||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSrgvQueue3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//生成小车取货队列
|
||||
WcsSrgvQueue wcsSrgvQueue = new WcsSrgvQueue();
|
||||
@@ -679,14 +773,37 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
* @param wcsSrgvQueue
|
||||
* @return
|
||||
*/
|
||||
private boolean finishTaskByQueue(String currSite, WcsSrgvQueue wcsSrgvQueue) {
|
||||
private void finishTaskByQueue(String currSite, WcsSrgvQueue wcsSrgvQueue) {
|
||||
|
||||
|
||||
//当前在放货站点
|
||||
//当前在终点
|
||||
if (Objects.equals(currSite, wcsSrgvQueue.getEndSite())) {
|
||||
String taskType = wcsSrgvQueue.getTaskType();
|
||||
String cargoPickSite = wcsSrgvQueue.getCargoPickSite();
|
||||
String cargoPlaceSite = wcsSrgvQueue.getCargoPlaceSite();
|
||||
WcsSrgvMap wcsSrgvMap = new WcsSrgvMap();
|
||||
wcsSrgvMap.setRemark("outCache");
|
||||
List<WcsSrgvMap> wcsSrgvMaps = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMap);
|
||||
|
||||
if(wcsSrgvMaps.stream().anyMatch(wcsSrgvMap1 -> wcsSrgvMap1.getSiteId().equals(currSite))){
|
||||
//生成小车从避让点到放货/取货位置,如果是空车就到取货位置,如果是满车就到放货位置
|
||||
wcsSrgvQueue.setExecutionStatus("4");
|
||||
wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo());
|
||||
wcsSrgvQueue.setIssued("0");
|
||||
wcsSrgvQueue.setExecutionStatus("1");
|
||||
wcsSrgvQueue.setStartSite(currSite);
|
||||
if("1".equals(taskType)){
|
||||
wcsSrgvQueue.setEndSite(cargoPickSite);
|
||||
}else if("2".equals(taskType)){
|
||||
wcsSrgvQueue.setEndSite(cargoPlaceSite);
|
||||
}
|
||||
wcsSrgvQueue.setTheFloor("1");
|
||||
wcsSrgvQueue.setDefault07("1");
|
||||
wcsSagvQueueMapper.updateWcsSrgvQueue(wcsSrgvQueue);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//空车现在位置是取货位置(移库取货,入库取货,出库取货),满车现在是放货位置
|
||||
if ("1".equals(taskType) && cargoPickSite.equals(currSite)) {
|
||||
@@ -749,13 +866,13 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid());
|
||||
|
||||
} else {
|
||||
//充电之类得 不知道用不用
|
||||
//充电之类的,不知道用不用
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user