update
This commit is contained in:
parent
261cb7a7e7
commit
dddb5e6b39
@ -343,7 +343,7 @@ public class LoopbackCommunicationAdapter
|
|||||||
sourcePoint = cmd.getStep().getSourcePoint().getName();
|
sourcePoint = cmd.getStep().getSourcePoint().getName();
|
||||||
|
|
||||||
//下发AGV移动指令
|
//下发AGV移动指令
|
||||||
// ExecuteMove.sendCmd(getProcessModel().getName(), cmd, getSerialNum());
|
ExecuteMove.sendCmd(getProcessModel().getName(), cmd, getSerialNum());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the simulation task if we're not in single step mode and not simulating already.
|
// Start the simulation task if we're not in single step mode and not simulating already.
|
||||||
@ -529,7 +529,7 @@ public class LoopbackCommunicationAdapter
|
|||||||
ACTION_STATUS = true;
|
ACTION_STATUS = true;
|
||||||
|
|
||||||
//下发动作
|
//下发动作
|
||||||
ExecuteAction.sendCmd(command.getTransportOrder().getName(), getProcessModel().getName(), getProcessModel().getPosition(), command.getOperation(), getSerialNum());
|
ExecuteAction.sendCmd(command.getTransportOrder().getWrappingSequence().getName(), getProcessModel().getName(), getProcessModel().getPosition(), command.getOperation(), getSerialNum());
|
||||||
|
|
||||||
//进入阻塞
|
//进入阻塞
|
||||||
while (ACTION_STATUS) {
|
while (ACTION_STATUS) {
|
||||||
|
@ -20,7 +20,7 @@ public class BaseService {
|
|||||||
* 生成进程内唯一的int型ID
|
* 生成进程内唯一的int型ID
|
||||||
* 优点:简单高效
|
* 优点:简单高效
|
||||||
* 限制:
|
* 限制:
|
||||||
* - 重启后可能重复
|
* - 重启后可能重复,但数据是内存中存在,重启即销毁
|
||||||
* - 超过21亿后会回绕(正常应用很难达到)
|
* - 超过21亿后会回绕(正常应用很难达到)
|
||||||
*/
|
*/
|
||||||
public static int generate() {
|
public static int generate() {
|
||||||
|
@ -11,13 +11,13 @@ public class ExecuteAction extends BaseService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发动作到平台
|
* 下发动作到平台
|
||||||
* @param orderName 车辆名称
|
* @param name 名称
|
||||||
* @param vehicleName 车辆名称
|
* @param vehicleName 车辆名称
|
||||||
* @param point 当前位置
|
* @param point 当前位置
|
||||||
* @param action 动作
|
* @param action 动作
|
||||||
* @param serialNum 序列号
|
* @param serialNum 序列号
|
||||||
*/
|
*/
|
||||||
public static void sendCmd(String orderName, String vehicleName, String point, String action, Integer serialNum) {
|
public static void sendCmd(String name, String vehicleName, String point, String action, Integer serialNum) {
|
||||||
|
|
||||||
String url = getUrl(vehicleName);
|
String url = getUrl(vehicleName);
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ public class ExecuteAction extends BaseService {
|
|||||||
String time = now.format(formatter);
|
String time = now.format(formatter);
|
||||||
|
|
||||||
RequestAction requestAction = new RequestAction();
|
RequestAction requestAction = new RequestAction();
|
||||||
requestAction.setOrder_name(orderName);
|
requestAction.setOrder_name(name);
|
||||||
requestAction.setAction(action);
|
requestAction.setAction(action);
|
||||||
requestAction.setPoint(point);
|
requestAction.setPoint(point);
|
||||||
|
|
||||||
|
@ -169,7 +169,23 @@ public class ExecuteMove extends BaseService {
|
|||||||
* 获取当前订单ID
|
* 获取当前订单ID
|
||||||
*/
|
*/
|
||||||
public static Integer getOrderID(String vehicleName) {
|
public static Integer getOrderID(String vehicleName) {
|
||||||
return orderInfoMap.get(vehicleName).getId();
|
|
||||||
|
if (orderInfoMap.containsKey(vehicleName)) {
|
||||||
|
return orderInfoMap.get(vehicleName).getId();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清理对应订单,实现平台接管后继续执行订单
|
||||||
|
*/
|
||||||
|
public static boolean resetOrder(String vehicleName) {
|
||||||
|
|
||||||
|
if (orderInfoMap.containsKey(vehicleName)) {
|
||||||
|
orderInfoMap.remove(vehicleName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -154,6 +154,7 @@ public class AdapterManage {
|
|||||||
agvInfoParams.setAgv_model(params.getInteger("agv_model"));
|
agvInfoParams.setAgv_model(params.getInteger("agv_model"));
|
||||||
agvInfoParams.setCharge_status(params.getInteger("charge_status"));
|
agvInfoParams.setCharge_status(params.getInteger("charge_status"));
|
||||||
agvInfoParams.setAction_status(params.getInteger("action_status"));
|
agvInfoParams.setAction_status(params.getInteger("action_status"));
|
||||||
|
agvInfoParams.setOrder_id(params.getInteger("order_id"));
|
||||||
|
|
||||||
return agvInfoParams;
|
return agvInfoParams;
|
||||||
}
|
}
|
||||||
|
@ -52,4 +52,8 @@ public class AgvInfoParams {
|
|||||||
* 执行动作状态:1=完成,2=执行中
|
* 执行动作状态:1=完成,2=执行中
|
||||||
*/
|
*/
|
||||||
private Integer action_status;
|
private Integer action_status;
|
||||||
|
/**
|
||||||
|
* 控制器最后执行订单ID,id=0即为未创建任务
|
||||||
|
*/
|
||||||
|
private Integer order_id;
|
||||||
}
|
}
|
||||||
|
@ -63,41 +63,52 @@ public class TransportOrderHandler {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据WMS任务创建订单序列和运输订单
|
* 根据WMS任务创建订单序列和运输订单
|
||||||
* @param orderName 订单名称
|
* @param name 订单序列名称
|
||||||
* @param body 结构体
|
* @param body 结构体
|
||||||
* @return 创建的订单
|
* @return 创建的订单
|
||||||
*/
|
*/
|
||||||
public TransportOrder createWmsTask(String orderName, String body){
|
public List<TransportOrder> createWmsTask(String name, String body){
|
||||||
|
|
||||||
//解析data
|
//解析data
|
||||||
String type = JSON.parseObject(body).getString("type");
|
String type = JSON.parseObject(body).getString("type");
|
||||||
String intendedVehicle = JSON.parseObject(body).getString("intendedVehicle") != null ? JSON.parseObject(body).getString("intendedVehicle") : null;
|
String intendedVehicle = JSON.parseObject(body).getString("intendedVehicle") != null ? JSON.parseObject(body).getString("intendedVehicle") : null;
|
||||||
Boolean dispensable = JSON.parseObject(body).getBoolean("dispensable") != null ? JSON.parseObject(body).getBoolean("dispensable") : false;
|
Boolean dispensable = JSON.parseObject(body).getBoolean("dispensable") != null ? JSON.parseObject(body).getBoolean("dispensable") : false;
|
||||||
|
// String wrappingSequence = JSON.parseObject(body).getString("wrappingSequence") != null ? JSON.parseObject(body).getString("wrappingSequence") : null;
|
||||||
String destinationsStr = JSON.parseObject(body).getString("destinations");
|
String destinationsStr = JSON.parseObject(body).getString("destinations");
|
||||||
List<PostTransportOrderInfoRequestTo> dataList = JSON.parseArray(destinationsStr, PostTransportOrderInfoRequestTo.class);
|
List<PostTransportOrderInfoRequestTo> dataList = JSON.parseArray(destinationsStr, PostTransportOrderInfoRequestTo.class);
|
||||||
|
|
||||||
//订单目标点结构体
|
//构建订单序列
|
||||||
List<Destination> destinationsList = new ArrayList<>();
|
PostOrderSequenceRequestTO postOrderSequenceRequestTO = new PostOrderSequenceRequestTO();
|
||||||
|
postOrderSequenceRequestTO.setIncompleteName(false);
|
||||||
|
if (intendedVehicle != null) {
|
||||||
|
postOrderSequenceRequestTO.setIntendedVehicle(intendedVehicle);
|
||||||
|
}
|
||||||
|
postOrderSequenceRequestTO.setType(type);
|
||||||
|
postOrderSequenceRequestTO.setFailureFatal(true);
|
||||||
|
//根据传入名称创建订单序列
|
||||||
|
OrderSequence orderSequence = this.createOrderSequence(name, postOrderSequenceRequestTO);
|
||||||
|
|
||||||
|
//构建订单对象
|
||||||
|
PostTransportOrderRequestTO postTransportOrderRequestTO = new PostTransportOrderRequestTO();
|
||||||
|
postTransportOrderRequestTO.setIncompleteName(true);
|
||||||
|
postTransportOrderRequestTO.setDispensable(dispensable);
|
||||||
|
postTransportOrderRequestTO.setDeadline(Instant.now());
|
||||||
|
postTransportOrderRequestTO.setWrappingSequence(orderSequence.getName());
|
||||||
|
postTransportOrderRequestTO.setType(type);
|
||||||
|
//根据传入点位创建多个订单
|
||||||
|
List<TransportOrder> orders = new ArrayList<>();
|
||||||
for (PostTransportOrderInfoRequestTo destination : dataList) {
|
for (PostTransportOrderInfoRequestTo destination : dataList) {
|
||||||
|
List<Destination> destinationsList = new ArrayList<>();
|
||||||
Destination newDestination = new Destination();
|
Destination newDestination = new Destination();
|
||||||
newDestination.setLocationName(destination.getLocationName());
|
newDestination.setLocationName(destination.getLocationName());
|
||||||
newDestination.setOperation(destination.getOperation());
|
newDestination.setOperation(destination.getOperation());
|
||||||
destinationsList.add(newDestination);
|
destinationsList.add(newDestination);
|
||||||
|
postTransportOrderRequestTO.setDestinations(destinationsList);
|
||||||
|
TransportOrder order = this.createOrder("", postTransportOrderRequestTO);
|
||||||
|
orders.add(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
//构建订单对象
|
return orders;
|
||||||
PostTransportOrderRequestTO postTransportOrderRequestTO = new PostTransportOrderRequestTO();
|
|
||||||
postTransportOrderRequestTO.setIncompleteName(false);
|
|
||||||
postTransportOrderRequestTO.setDispensable(dispensable);
|
|
||||||
postTransportOrderRequestTO.setDeadline(Instant.now());
|
|
||||||
if (intendedVehicle != null) {
|
|
||||||
postTransportOrderRequestTO.setIntendedVehicle(intendedVehicle);
|
|
||||||
}
|
|
||||||
postTransportOrderRequestTO.setType(type);
|
|
||||||
postTransportOrderRequestTO.setDestinations(destinationsList);
|
|
||||||
|
|
||||||
//创建运输订单
|
|
||||||
return this.createOrder(orderName, postTransportOrderRequestTO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TransportOrder createOrder(String name, PostTransportOrderRequestTO order)
|
public TransportOrder createOrder(String name, PostTransportOrderRequestTO order)
|
||||||
|
Loading…
Reference in New Issue
Block a user