输送线
This commit is contained in:
@@ -23,6 +23,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Slf4j
|
||||
public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
@@ -49,9 +52,9 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
|
||||
init();
|
||||
while (isRun) {
|
||||
for (String type : sRgvCodeList.keySet()) {
|
||||
for (String code : sRgvCodeList.keySet()) {
|
||||
|
||||
for (DeviceSrgv deviceSrgv : sRgvCodeList.get(type)) {
|
||||
for (DeviceSrgv deviceSrgv : sRgvCodeList.get(code)) {
|
||||
try {
|
||||
if (ObjUtil.isNotNull(deviceSrgv)) {
|
||||
//循环所有楼层
|
||||
@@ -195,7 +198,7 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wsq);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -766,8 +769,13 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
/**
|
||||
* 小车完成队列
|
||||
*/
|
||||
private void completeCarTask(DeviceSrgv deviceSrgv,int floor) {
|
||||
if (deviceSrgv.getWorkMode()==5){
|
||||
private void completeCarTask(DeviceSrgv deviceSrgv, int floor) {
|
||||
//小车联机
|
||||
if (deviceSrgv.getWorkMode() == 5) {
|
||||
|
||||
int agvId = deviceSrgv.getDeviceId();
|
||||
String currSite = deviceSrgv.getCurrSite();
|
||||
int status = deviceSrgv.getStatus();
|
||||
//22到达充电位置 23到达换层目标
|
||||
if (deviceSrgv.getStatus() == 1 || (deviceSrgv.getStatus() == 2 && (deviceSrgv.getWorkPhase() == 22 || deviceSrgv.getWorkPhase() == 23))) {
|
||||
WcsSrgvQueue param = new WcsSrgvQueue();
|
||||
@@ -812,14 +820,149 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
* @return
|
||||
*/
|
||||
private boolean finishTaskByQueue(String currSite, WcsSrgvQueue wcsSrgvQueue, int floor) {
|
||||
if (currSite.equals(wcsSrgvQueue.getEndSite())){
|
||||
//当前在放货站点
|
||||
WcsPort param = new WcsPort();
|
||||
param.setPortCode(currSite);
|
||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(param);
|
||||
if (CollUtil.isNotEmpty(wcsPorts)){
|
||||
int result = 0;
|
||||
|
||||
//当前在放货站点
|
||||
if(Objects.equals(currSite,wcsSrgvQueue.getEndSite())){
|
||||
//如果,放货站点是提升机,记录提升机中转点
|
||||
WcsPort wcsPort=new WcsPort();
|
||||
wcsPort.setSpare4(currSite);
|
||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPort);
|
||||
if(!wcsPorts.isEmpty()){
|
||||
for(WcsPort wcsPort1:wcsPorts){
|
||||
//出库任务、移库出库任务
|
||||
WcsPort wcsPort2 = new WcsPort();
|
||||
wcsPort2.setId(wcsPort1.getId());
|
||||
wcsPort2.setStatus("1");//占用
|
||||
wcsPort2.setSpare1(wcsSrgvQueue.getTaskNo());//任务号
|
||||
wcsPort2.setSpare5("2");//出库 默认
|
||||
//换层移库的货
|
||||
if("11".equals(wcsSrgvQueue.getDefault05()) || "21".equals(wcsSrgvQueue.getDefault05())){
|
||||
//11代表换层移库的货
|
||||
wcsPort2.setSpare5("4");//换层
|
||||
// wcsPort2.setProductType("1");
|
||||
}
|
||||
if("12".equals(wcsSrgvQueue.getDefault05())){
|
||||
//12代表换层移库的托盘
|
||||
wcsPort2.setSpare5("4");//换层
|
||||
// wcsTransitPoint1.setProductType("2");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// WcsTransitPoint wcsTransitPoint = new WcsTransitPoint();
|
||||
// wcsTransitPoint.setDeviceSite(currSite);
|
||||
// List<WcsTransitPoint> wcsTransitPoints = transitPointMapper.selectWcsTransitPointList(wcsTransitPoint);
|
||||
// if(wcsTransitPoints.size()>0){
|
||||
//
|
||||
// for (WcsTransitPoint transitPoint : wcsTransitPoints) {
|
||||
//
|
||||
// //出库任务、移库出库任务
|
||||
//
|
||||
// WcsTransitPoint wcsTransitPoint1 = new WcsTransitPoint();
|
||||
// wcsTransitPoint1.setGuid(transitPoint.getGuid());
|
||||
// wcsTransitPoint1.setStatus("1");
|
||||
// wcsTransitPoint1.setTaskNo(sagvQueue.getTaskNo());
|
||||
// wcsTransitPoint1.setTaskType("2");//出库 默认
|
||||
//
|
||||
// //换层移库的货
|
||||
// if("11".equals(sagvQueue.getDefault05()) || "21".equals(sagvQueue.getDefault05())){
|
||||
// //11代表换层移库的货
|
||||
// wcsTransitPoint1.setTaskType("4");//换层
|
||||
// wcsTransitPoint1.setProductType("1");
|
||||
// }
|
||||
// if("12".equals(sagvQueue.getDefault05())){
|
||||
// //12代表换层移库的托盘
|
||||
// wcsTransitPoint1.setTaskType("4");//换层
|
||||
// wcsTransitPoint1.setProductType("2");
|
||||
// }
|
||||
// wcsTransitPoint1.setMsg("3");
|
||||
// int i = transitPointMapper.updateWcsTransitPoint(wcsTransitPoint1);
|
||||
// result = result+i;
|
||||
// }
|
||||
// }else {
|
||||
//
|
||||
// String rgvTaskType = sagvQueue.getDefault02();//1入;2出;3充电;4点到点;7移库;8换层
|
||||
// if(Objects.equals(rgvTaskType,"4")){
|
||||
// String default05 = sagvQueue.getDefault05();
|
||||
// //点到点任务处理
|
||||
// if((default05!=null) && !Objects.equals("13",default05)){
|
||||
// //生成新任务
|
||||
// WcsSagvQueue wsq = new WcsSagvQueue();
|
||||
// wsq.setGuid(IdUtil.fastSimpleUUID());
|
||||
// wsq.setTaskNo(sagvQueue.getDefault04());
|
||||
// wsq.setTaskType("2");//载货
|
||||
// wsq.setPriority(10);
|
||||
// wsq.setCargo("2");//出库
|
||||
// wsq.setIssued("0");
|
||||
// wsq.setPathInfo(null);
|
||||
// wsq.setExecutionStatus("1");
|
||||
// wsq.setCargoPickSite(sagvQueue.getCargoPickSite());
|
||||
// //String cargoPlaceSite = sagvQueue.getCargoPlaceSite();
|
||||
// //String tarEndSite = sagvQueue.getUpDownSite() != null ? sagvQueue.getUpDownSite() : cargoPlaceSite;
|
||||
// wsq.setCargoPlaceSite(sagvQueue.getCargoPlaceSite());
|
||||
// wsq.setStartSite(sagvQueue.getCargoPickSite());
|
||||
// wsq.setEndSite(sagvQueue.getCargoPlaceSite());
|
||||
// wsq.setTheFloor(floor+"");
|
||||
// wsq.setTrunPath(null);
|
||||
// wsq.setUpDownSite(sagvQueue.getCargoPlaceSite());
|
||||
// wsq.setCreateDate(DateUtil.now());
|
||||
// wsq.setAgvId(sagvQueue.getAgvId());
|
||||
//
|
||||
// String default051 = sagvQueue.getDefault05();
|
||||
// if("7".equals(default051)){
|
||||
// wsq.setCargo("3");//移库
|
||||
// }
|
||||
// wsq.setDefault02(default051);//2出库 7移库 4点到点
|
||||
// if("11".equals(default051) || "12".equals(default051)){
|
||||
// wsq.setDefault02("2");//出库
|
||||
// wsq.setDefault05(default051);
|
||||
// }
|
||||
// //判断取货站点是否是当前站点
|
||||
//
|
||||
// int i = wcsSagvQueueMapper.insertWcsSagvQueue(wsq);
|
||||
// result = result +i;
|
||||
//
|
||||
// //更新作业
|
||||
// WcsJob wcsJob = new WcsJob();
|
||||
// wcsJob.setTaskNo(sagvQueue.getDefault04());
|
||||
// wcsJob.setTaskStatus("2");//待执行的
|
||||
// wcsJob.setExePhase("21");//允许下发到wms
|
||||
// wcsJob.setStartDate(DateUtil.now());
|
||||
// wcsJobMapper.updateWcsJobByTask(wcsJob);
|
||||
//
|
||||
// }else if(Objects.equals("13",default05)){
|
||||
// //是车点到点,任务,删除作业
|
||||
// wcsJobMapper.deleteWcsJobByTask(sagvQueue.getTaskNo());
|
||||
// result = result+1;
|
||||
// }else{
|
||||
// result = result+1;
|
||||
// }
|
||||
|
||||
// }else {
|
||||
// //是入库、其他
|
||||
// WcsJob wcsJob = new WcsJob();
|
||||
// wcsJob.setTaskNo(sagvQueue.getTaskNo());
|
||||
// List<WcsJob> wcsJobs = wcsJobMapper.selectWcsJobList(wcsJob);
|
||||
// if(wcsJobs.size()>0){
|
||||
// //完成作业
|
||||
// for (WcsJob job : wcsJobs) {
|
||||
// WcsJob wcsJob1 = new WcsJob();
|
||||
// wcsJob1.setGuid(job.getGuid());
|
||||
// wcsJob1.setTaskStatus("4");
|
||||
// wcsJob1.setExePhase("21");//允许发送WMS
|
||||
// int i = wcsJobMapper.updateWcsJob(wcsJob1);
|
||||
// result = result+i;
|
||||
// }
|
||||
// }else {
|
||||
// result = result+1;
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -829,11 +972,15 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
* @param deviceSrgv
|
||||
*/
|
||||
private void resQueue(DeviceSrgv deviceSrgv, int floor) {
|
||||
//任务号
|
||||
int taskNo = deviceSrgv.getTaskNo();
|
||||
//当前站点
|
||||
String currSite = deviceSrgv.getCurrSite();
|
||||
//小车编码
|
||||
Integer deviceId = deviceSrgv.getDeviceId();
|
||||
|
||||
if (taskNo>999 && !"000000".equals(currSite)){
|
||||
//如果已下发并且小车已离开起点,证明已下发成功,更改队列信息为已下发,更新开始时间
|
||||
if (taskNo > 999 && !"000000".equals(currSite)) {
|
||||
//查到该任务号未下发的该队列
|
||||
WcsSrgvQueue param = new WcsSrgvQueue();
|
||||
param.setTheFloor(Convert.toStr(floor));
|
||||
param.setTaskNo(Convert.toStr(taskNo));
|
||||
|
||||
Reference in New Issue
Block a user