|
@@ -23,6 +23,7 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import static com.ruoyi.ams.agv.ndc.service.ChargerButtService.*;
|
|
import static com.ruoyi.ams.agv.ndc.service.ChargerButtService.*;
|
|
|
|
+import static com.ruoyi.ams.agv.ndc.service.impl.StatusUpdateServiceImpl.AGV_ACTION.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Created by IntelliJ IDEA.
|
|
* Created by IntelliJ IDEA.
|
|
@@ -46,15 +47,17 @@ public class SocketBufferServiceImpl implements SocketBufferService {
|
|
private RedisCache redisCache;
|
|
private RedisCache redisCache;
|
|
|
|
|
|
// 创建一个线程池
|
|
// 创建一个线程池
|
|
- private ExecutorService executorService;
|
|
|
|
|
|
+ private static ExecutorService executorService;
|
|
|
|
|
|
- @Override
|
|
|
|
- public List<Order> bufferSeparator(byte[] buffer) {
|
|
|
|
|
|
+ static {
|
|
// 创建一个线程池
|
|
// 创建一个线程池
|
|
- executorService = new ThreadPoolExecutor(5, 20
|
|
|
|
|
|
+ executorService = new ThreadPoolExecutor(5, 30
|
|
, 60L, TimeUnit.SECONDS
|
|
, 60L, TimeUnit.SECONDS
|
|
- , new SynchronousQueue<Runnable>());
|
|
|
|
|
|
+ , new SynchronousQueue<Runnable>(true));
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<Order> bufferSeparator(byte[] buffer) {
|
|
List<Order> orderList = new ArrayList<>();
|
|
List<Order> orderList = new ArrayList<>();
|
|
String bufferStr = ByteUtil.byteArray2HexString(buffer);
|
|
String bufferStr = ByteUtil.byteArray2HexString(buffer);
|
|
//通过固定的头部 87CD0008 将多条消息拆分开
|
|
//通过固定的头部 87CD0008 将多条消息拆分开
|
|
@@ -155,7 +158,10 @@ public class SocketBufferServiceImpl implements SocketBufferService {
|
|
taskBeanUpdate.setIsDelete(null);
|
|
taskBeanUpdate.setIsDelete(null);
|
|
amsTaskService.updateAmsTask(taskBeanUpdate);
|
|
amsTaskService.updateAmsTask(taskBeanUpdate);
|
|
//任务状态回调
|
|
//任务状态回调
|
|
- statusUpdateService.updateStatus(taskBean.getId().longValue(), icarNo);
|
|
|
|
|
|
+ long taskId_85 = taskBean.getId().longValue();
|
|
|
|
+ executorService.execute(() -> {
|
|
|
|
+ statusUpdateService.updateStatus(taskId_85, icarNo);
|
|
|
|
+ });
|
|
break;
|
|
break;
|
|
case 86://user event Order Receive 任务开始
|
|
case 86://user event Order Receive 任务开始
|
|
case 87://user event FETCH(LP1) is Invalid!!
|
|
case 87://user event FETCH(LP1) is Invalid!!
|
|
@@ -171,16 +177,20 @@ public class SocketBufferServiceImpl implements SocketBufferService {
|
|
|
|
|
|
taskBean.setAciIndex(Integer.parseInt(event.getLp1()));
|
|
taskBean.setAciIndex(Integer.parseInt(event.getLp1()));
|
|
taskBean = amsTaskService.selectAmsTaskByModel(taskBean);
|
|
taskBean = amsTaskService.selectAmsTaskByModel(taskBean);
|
|
-
|
|
|
|
- AmsTask taskBeanUpdate01 = new AmsTask();
|
|
|
|
- taskBeanUpdate01.setId(taskBean.getId());
|
|
|
|
- taskBeanUpdate01.setEvent(eventId);
|
|
|
|
- taskBeanUpdate01.setServerAck(0);
|
|
|
|
- taskBeanUpdate01.setSystemStatus(null);
|
|
|
|
- taskBeanUpdate01.setIsDelete(null);
|
|
|
|
- amsTaskService.updateAmsTask(taskBeanUpdate01);
|
|
|
|
-
|
|
|
|
- statusUpdateService.updateStatus(taskBean.getId().longValue(), icarNo);
|
|
|
|
|
|
+ if (taskBean != null) {
|
|
|
|
+ AmsTask taskBeanUpdate01 = new AmsTask();
|
|
|
|
+ taskBeanUpdate01.setId(taskBean.getId());
|
|
|
|
+ taskBeanUpdate01.setEvent(eventId);
|
|
|
|
+ taskBeanUpdate01.setServerAck(0);
|
|
|
|
+ taskBeanUpdate01.setSystemStatus(null);
|
|
|
|
+ taskBeanUpdate01.setIsDelete(null);
|
|
|
|
+ amsTaskService.updateAmsTask(taskBeanUpdate01);
|
|
|
|
+
|
|
|
|
+ long taskId = taskBean.getId().longValue();
|
|
|
|
+ executorService.execute(() -> {
|
|
|
|
+ statusUpdateService.updateStatus(taskId, icarNo);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 112://user event Carrier status
|
|
case 112://user event Carrier status
|
|
//carStatus.setSpeed(ByteUtil.getInt(buffer, 34));
|
|
//carStatus.setSpeed(ByteUtil.getInt(buffer, 34));
|
|
@@ -201,7 +211,9 @@ public class SocketBufferServiceImpl implements SocketBufferService {
|
|
log.info("aciIndex:" + aciIndex + "查询不到对应的60任务");
|
|
log.info("aciIndex:" + aciIndex + "查询不到对应的60任务");
|
|
} else {
|
|
} else {
|
|
//解析卸货确认状态
|
|
//解析卸货确认状态
|
|
- // agvUnloadingConfirmService.confirmAnalysis(task60.getTaskNo(), aciIndex, "unload", icarNo);
|
|
|
|
|
|
+ executorService.execute(() -> {
|
|
|
|
+ statusUpdateService.confirmAnalysis(task60.getTaskNo(), aciIndex, PICKUP.getValue(), icarNo);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case 115:
|
|
case 115:
|
|
@@ -216,8 +228,10 @@ public class SocketBufferServiceImpl implements SocketBufferService {
|
|
if (task60Pick == null) {
|
|
if (task60Pick == null) {
|
|
log.info("aciIndex:" + aciIndexPick + "查询不到对应的60任务");
|
|
log.info("aciIndex:" + aciIndexPick + "查询不到对应的60任务");
|
|
} else {
|
|
} else {
|
|
- //解析取货确认状态
|
|
|
|
- // agvUnloadingConfirmService.confirmAnalysis(task60Pick.getTaskNo(), aciIndexPick, "pickup", icarNo);
|
|
|
|
|
|
+ //解析卸货确认状态
|
|
|
|
+ executorService.execute(() -> {
|
|
|
|
+ statusUpdateService.confirmAnalysis(task60Pick.getTaskNo(), aciIndexPick, UNLOAD.getValue(), icarNo);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case 122:
|
|
case 122:
|