输送线
This commit is contained in:
@@ -13,6 +13,7 @@ import com.ruoyi.common.domain.SendData2;
|
||||
import com.ruoyi.device.srgv.domain.DeviceSrgv;
|
||||
import com.ruoyi.job.charg.domain.SrgvChargingJob;
|
||||
import com.ruoyi.job.charg.service.ISrgvChargingJobService;
|
||||
import com.ruoyi.job.domain.MydoJob;
|
||||
import com.ruoyi.queue.srgv.domain.WcsSrgvQueue;
|
||||
import com.ruoyi.queue.srgv.domain.WcsSrgvQueueFinish;
|
||||
import com.ruoyi.queue.srgv.service.IWcsSrgvQueueFinishService;
|
||||
@@ -20,7 +21,6 @@ import com.ruoyi.queue.srgv.service.IWcsSrgvQueueService;
|
||||
import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead;
|
||||
import com.ruoyi.schedule.plcRead.srgv.roadUtil.PathFinder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.HashMap;
|
||||
@@ -34,6 +34,8 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
|
||||
public HashMap<String, List<DeviceSrgv>> sRgvCodeList;
|
||||
|
||||
public HashMap<String, List<String>> ssjCodeList;
|
||||
|
||||
public IWcsSrgvQueueService wcsSagvQueueMapper;
|
||||
|
||||
public IWcsSrgvQueueFinishService wcsSagvQueueFinishMapper;
|
||||
@@ -45,6 +47,10 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
|
||||
|
||||
public void init() {
|
||||
ArrayList<String> ssjCodes1 = new ArrayList<>();
|
||||
ssjCodes1.add("L1004");
|
||||
ssjCodes1.add("L1005");
|
||||
ssjCodeList.put("road", ssjCodes1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -64,8 +70,6 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
|
||||
createCarInQueue();
|
||||
|
||||
callEmptySRgv();
|
||||
|
||||
createCarOutQueue();
|
||||
|
||||
} else {
|
||||
@@ -77,6 +81,10 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
|
||||
}
|
||||
}
|
||||
for(String code:ssjCodeList.keySet()){
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(1500);
|
||||
} catch (InterruptedException e) {
|
||||
@@ -104,127 +112,18 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface {
|
||||
* 生成出库小车队列
|
||||
*/
|
||||
private void createCarOutQueue() {
|
||||
MydoJob param = new MydoJob();
|
||||
param.setInOut("2");
|
||||
for (MydoJob mydoJob : mydoJobService.selectInOrOutMydoJobList(param)) {
|
||||
if ("0".equals(mydoJob.getExecutionPhase())) {
|
||||
//生成任务
|
||||
String roadwayId = mydoJob.getRoadwayId();
|
||||
//判断1层是否存在空车
|
||||
DeviceSrgv currSRgv = null;
|
||||
for (String key : deviceSrgvMap.keySet()) {
|
||||
DeviceSrgv deviceSrgv = deviceSrgvMap.get(key);
|
||||
if (deviceSrgv.getCurrFloor().equals(Convert.toInt(roadwayId)) && deviceSrgv.getStatus() == 1) {
|
||||
currSRgv = deviceSrgv;
|
||||
}
|
||||
}
|
||||
//任务阶段是在入库ssj取货位置
|
||||
if (currSRgv == null) {
|
||||
//无空车
|
||||
//修改任务阶段 为入库无空车
|
||||
//mydoJob.setTaskNo(Convert.toStr(ssj.getTaskNo()));
|
||||
mydoJob.setStatus("3");
|
||||
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
mydoJob.setExecutionPhase("21");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
} else {
|
||||
//有空车
|
||||
//生成取货队列
|
||||
WcsSrgvQueue wcsSagvQueue = new WcsSrgvQueue();
|
||||
wcsSagvQueue.setGuid(IdUtil.simpleUUID());
|
||||
wcsSagvQueue.setTaskType("1");
|
||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSagvQueue);
|
||||
//mydoJob.setTaskNo(Convert.toStr(ssj.getTaskNo()));
|
||||
mydoJob.setStatus("3");
|
||||
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
//取货
|
||||
mydoJob.setExecutionPhase("02");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 呼叫空车
|
||||
*/
|
||||
private void callEmptySRgv() {
|
||||
MydoJob param = new MydoJob();
|
||||
param.setStatus("3");
|
||||
//入库无空车
|
||||
param.setExecutionPhase("11");
|
||||
for (MydoJob mydoJob : mydoJobService.selectMydoJobList(param)) {
|
||||
String roadwayId = mydoJob.getRoadwayId();
|
||||
boolean existsEmptySRgv = false;
|
||||
//校验对应楼层是否存在空车
|
||||
for (String key : deviceSrgvMap.keySet()) {
|
||||
DeviceSrgv deviceSrgv = deviceSrgvMap.get(key);
|
||||
if (deviceSrgv.getStatus() == 1 && deviceSrgv.getCurrFloor().equals(Convert.toInt(roadwayId))) {
|
||||
//存在则跳过
|
||||
existsEmptySRgv = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成入库小车队列
|
||||
*/
|
||||
private void createCarInQueue() {
|
||||
WcsPort param = new WcsPort();
|
||||
param.setPortRegion("1");
|
||||
param.setPortType("4");
|
||||
param.setSpare2("0");
|
||||
param.setStatus("1");
|
||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(param);
|
||||
if (CollUtil.isNotEmpty(wcsPorts)) {
|
||||
for (WcsPort wcsPort : wcsPorts) {
|
||||
DeviceSsj ssj = PlcSsjRead.deviceSsjMap.get(wcsPort.getPortCode());
|
||||
if (ssj.getRkqq() == 1 && ssj.getDw() == 1 && ssj.getTaskNo() > 0) {
|
||||
//判断1层是否存在空车
|
||||
DeviceSrgv currSRgv = null;
|
||||
for (String key : deviceSrgvMap.keySet()) {
|
||||
DeviceSrgv deviceSrgv = deviceSrgvMap.get(key);
|
||||
if (deviceSrgv.getCurrFloor() == 1 && deviceSrgv.getStatus() == 1) {
|
||||
currSRgv = deviceSrgv;
|
||||
}
|
||||
}
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(ssj.getTaskNo()));
|
||||
if ("01".equals(mydoJob.getExecutionPhase())) {
|
||||
//任务阶段是在入库ssj取货位置
|
||||
if (currSRgv == null) {
|
||||
//无空车
|
||||
//修改任务阶段 为入库无空车
|
||||
mydoJob.setTaskNo(Convert.toStr(ssj.getTaskNo()));
|
||||
mydoJob.setStatus("3");
|
||||
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
mydoJob.setExecutionPhase("11");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
} else {
|
||||
//有空车
|
||||
//生成取货队列
|
||||
WcsSrgvQueue wcsSagvQueue = new WcsSrgvQueue();
|
||||
wcsSagvQueue.setGuid(IdUtil.simpleUUID());
|
||||
wcsSagvQueue.setTaskType("1");
|
||||
wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSagvQueue);
|
||||
mydoJob.setTaskNo(Convert.toStr(ssj.getTaskNo()));
|
||||
mydoJob.setStatus("3");
|
||||
mydoJob.setStartTime(DateUtil.formatDateTime(new Date()));
|
||||
//取货
|
||||
mydoJob.setExecutionPhase("02");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user