输送线
This commit is contained in:
@@ -23,6 +23,9 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||||
@@ -49,9 +52,9 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
|
|
||||||
init();
|
init();
|
||||||
while (isRun) {
|
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 {
|
try {
|
||||||
if (ObjUtil.isNotNull(deviceSrgv)) {
|
if (ObjUtil.isNotNull(deviceSrgv)) {
|
||||||
//循环所有楼层
|
//循环所有楼层
|
||||||
@@ -766,8 +769,13 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
/**
|
/**
|
||||||
* 小车完成队列
|
* 小车完成队列
|
||||||
*/
|
*/
|
||||||
private void completeCarTask(DeviceSrgv deviceSrgv,int floor) {
|
private void completeCarTask(DeviceSrgv deviceSrgv, int floor) {
|
||||||
if (deviceSrgv.getWorkMode()==5){
|
//小车联机
|
||||||
|
if (deviceSrgv.getWorkMode() == 5) {
|
||||||
|
|
||||||
|
int agvId = deviceSrgv.getDeviceId();
|
||||||
|
String currSite = deviceSrgv.getCurrSite();
|
||||||
|
int status = deviceSrgv.getStatus();
|
||||||
//22到达充电位置 23到达换层目标
|
//22到达充电位置 23到达换层目标
|
||||||
if (deviceSrgv.getStatus() == 1 || (deviceSrgv.getStatus() == 2 && (deviceSrgv.getWorkPhase() == 22 || deviceSrgv.getWorkPhase() == 23))) {
|
if (deviceSrgv.getStatus() == 1 || (deviceSrgv.getStatus() == 2 && (deviceSrgv.getWorkPhase() == 22 || deviceSrgv.getWorkPhase() == 23))) {
|
||||||
WcsSrgvQueue param = new WcsSrgvQueue();
|
WcsSrgvQueue param = new WcsSrgvQueue();
|
||||||
@@ -812,14 +820,149 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private boolean finishTaskByQueue(String currSite, WcsSrgvQueue wcsSrgvQueue, int floor) {
|
private boolean finishTaskByQueue(String currSite, WcsSrgvQueue wcsSrgvQueue, int floor) {
|
||||||
if (currSite.equals(wcsSrgvQueue.getEndSite())){
|
int result = 0;
|
||||||
//当前在放货站点
|
|
||||||
WcsPort param = new WcsPort();
|
//当前在放货站点
|
||||||
param.setPortCode(currSite);
|
if(Objects.equals(currSite,wcsSrgvQueue.getEndSite())){
|
||||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(param);
|
//如果,放货站点是提升机,记录提升机中转点
|
||||||
if (CollUtil.isNotEmpty(wcsPorts)){
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -829,11 +972,15 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
|||||||
* @param deviceSrgv
|
* @param deviceSrgv
|
||||||
*/
|
*/
|
||||||
private void resQueue(DeviceSrgv deviceSrgv, int floor) {
|
private void resQueue(DeviceSrgv deviceSrgv, int floor) {
|
||||||
|
//任务号
|
||||||
int taskNo = deviceSrgv.getTaskNo();
|
int taskNo = deviceSrgv.getTaskNo();
|
||||||
|
//当前站点
|
||||||
String currSite = deviceSrgv.getCurrSite();
|
String currSite = deviceSrgv.getCurrSite();
|
||||||
|
//小车编码
|
||||||
Integer deviceId = deviceSrgv.getDeviceId();
|
Integer deviceId = deviceSrgv.getDeviceId();
|
||||||
|
//如果已下发并且小车已离开起点,证明已下发成功,更改队列信息为已下发,更新开始时间
|
||||||
if (taskNo>999 && !"000000".equals(currSite)){
|
if (taskNo > 999 && !"000000".equals(currSite)) {
|
||||||
|
//查到该任务号未下发的该队列
|
||||||
WcsSrgvQueue param = new WcsSrgvQueue();
|
WcsSrgvQueue param = new WcsSrgvQueue();
|
||||||
param.setTheFloor(Convert.toStr(floor));
|
param.setTheFloor(Convert.toStr(floor));
|
||||||
param.setTaskNo(Convert.toStr(taskNo));
|
param.setTaskNo(Convert.toStr(taskNo));
|
||||||
|
|||||||
Reference in New Issue
Block a user