update
This commit is contained in:
parent
261cb7a7e7
commit
dddb5e6b39
@ -343,7 +343,7 @@ public class LoopbackCommunicationAdapter
|
||||
sourcePoint = cmd.getStep().getSourcePoint().getName();
|
||||
|
||||
//下发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.
|
||||
@ -529,7 +529,7 @@ public class LoopbackCommunicationAdapter
|
||||
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) {
|
||||
|
@ -20,7 +20,7 @@ public class BaseService {
|
||||
* 生成进程内唯一的int型ID
|
||||
* 优点:简单高效
|
||||
* 限制:
|
||||
* - 重启后可能重复
|
||||
* - 重启后可能重复,但数据是内存中存在,重启即销毁
|
||||
* - 超过21亿后会回绕(正常应用很难达到)
|
||||
*/
|
||||
public static int generate() {
|
||||
|
@ -11,13 +11,13 @@ public class ExecuteAction extends BaseService {
|
||||
|
||||
/**
|
||||
* 下发动作到平台
|
||||
* @param orderName 车辆名称
|
||||
* @param name 名称
|
||||
* @param vehicleName 车辆名称
|
||||
* @param point 当前位置
|
||||
* @param action 动作
|
||||
* @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);
|
||||
|
||||
@ -27,7 +27,7 @@ public class ExecuteAction extends BaseService {
|
||||
String time = now.format(formatter);
|
||||
|
||||
RequestAction requestAction = new RequestAction();
|
||||
requestAction.setOrder_name(orderName);
|
||||
requestAction.setOrder_name(name);
|
||||
requestAction.setAction(action);
|
||||
requestAction.setPoint(point);
|
||||
|
||||
|
@ -169,7 +169,23 @@ public class ExecuteMove extends BaseService {
|
||||
* 获取当前订单ID
|
||||
*/
|
||||
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.setCharge_status(params.getInteger("charge_status"));
|
||||
agvInfoParams.setAction_status(params.getInteger("action_status"));
|
||||
agvInfoParams.setOrder_id(params.getInteger("order_id"));
|
||||
|
||||
return agvInfoParams;
|
||||
}
|
||||
|
@ -52,4 +52,8 @@ public class AgvInfoParams {
|
||||
* 执行动作状态:1=完成,2=执行中
|
||||
*/
|
||||
private Integer action_status;
|
||||
/**
|
||||
* 控制器最后执行订单ID,id=0即为未创建任务
|
||||
*/
|
||||
private Integer order_id;
|
||||
}
|
||||
|
@ -63,41 +63,52 @@ public class TransportOrderHandler {
|
||||
|
||||
/**
|
||||
* 根据WMS任务创建订单序列和运输订单
|
||||
* @param orderName 订单名称
|
||||
* @param name 订单序列名称
|
||||
* @param body 结构体
|
||||
* @return 创建的订单
|
||||
*/
|
||||
public TransportOrder createWmsTask(String orderName, String body){
|
||||
public List<TransportOrder> createWmsTask(String name, String body){
|
||||
|
||||
//解析data
|
||||
String type = JSON.parseObject(body).getString("type");
|
||||
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;
|
||||
// String wrappingSequence = JSON.parseObject(body).getString("wrappingSequence") != null ? JSON.parseObject(body).getString("wrappingSequence") : null;
|
||||
String destinationsStr = JSON.parseObject(body).getString("destinations");
|
||||
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) {
|
||||
List<Destination> destinationsList = new ArrayList<>();
|
||||
Destination newDestination = new Destination();
|
||||
newDestination.setLocationName(destination.getLocationName());
|
||||
newDestination.setOperation(destination.getOperation());
|
||||
destinationsList.add(newDestination);
|
||||
postTransportOrderRequestTO.setDestinations(destinationsList);
|
||||
TransportOrder order = this.createOrder("", postTransportOrderRequestTO);
|
||||
orders.add(order);
|
||||
}
|
||||
|
||||
//构建订单对象
|
||||
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);
|
||||
return orders;
|
||||
}
|
||||
|
||||
public TransportOrder createOrder(String name, PostTransportOrderRequestTO order)
|
||||
|
Loading…
Reference in New Issue
Block a user