opt: 仙工机器人信息设备监控显示优化
This commit is contained in:
@@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.acs.agv.server.NDCAgvService;
|
import org.nl.acs.agv.server.NDCAgvService;
|
||||||
import org.nl.acs.agv.server.XianGongAgvService;
|
import org.nl.acs.agv.server.XianGongAgvService;
|
||||||
|
import org.nl.acs.agv.server.impl.XianGongAgvServiceImpl;
|
||||||
import org.nl.acs.common.base.CommonFinalParam;
|
import org.nl.acs.common.base.CommonFinalParam;
|
||||||
import org.nl.acs.device.service.DeviceService;
|
import org.nl.acs.device.service.DeviceService;
|
||||||
import org.nl.acs.device_driver.DeviceDriver;
|
import org.nl.acs.device_driver.DeviceDriver;
|
||||||
@@ -28,6 +29,8 @@ import org.nl.config.SpringContextHolder;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,7 +59,7 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device
|
|||||||
@Autowired
|
@Autowired
|
||||||
NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
|
NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
|
||||||
@Autowired
|
@Autowired
|
||||||
private XianGongAgvService xianGongAgvService;
|
XianGongAgvService xianGongAgvService = SpringContextHolder.getBean(XianGongAgvService.class);
|
||||||
|
|
||||||
Integer hasGoods = 0;
|
Integer hasGoods = 0;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
@@ -127,27 +130,56 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device
|
|||||||
/**
|
/**
|
||||||
* 是否推送场景的状态 0=可推送 1=正在更新场景 2=正在执行运单
|
* 是否推送场景的状态 0=可推送 1=正在更新场景 2=正在执行运单
|
||||||
*/
|
*/
|
||||||
private String upload_scene_status;
|
private String upload_scene_status = "";
|
||||||
/**
|
/**
|
||||||
* 机器人当前运单
|
* 机器人当前运单
|
||||||
*/
|
*/
|
||||||
private String current_order;
|
private String current_order = "";
|
||||||
/**
|
/**
|
||||||
* 机器人连接状态 0表示断连 1表示连接上
|
* 机器人连接状态 0表示断连 1表示连接上
|
||||||
*/
|
*/
|
||||||
private String connection_status;
|
private String connection_status = "";
|
||||||
/**
|
/**
|
||||||
* 机器人可接单状态 true=可接单 false=不可接单
|
* 机器人可接单状态 true=可接单 false=不可接单
|
||||||
*/
|
*/
|
||||||
private String dispatchable;
|
private boolean dispatchable = false;
|
||||||
/**
|
/**
|
||||||
* core出错标识
|
* core出错标识
|
||||||
*/
|
*/
|
||||||
private boolean is_error;
|
private boolean is_error = false;
|
||||||
/**
|
/**
|
||||||
* 是否正在执行用户下发的运单
|
* 是否正在执行用户下发的运单
|
||||||
*/
|
*/
|
||||||
private boolean procBusiness;
|
private boolean procBusiness = false;
|
||||||
|
/**
|
||||||
|
* 机器人当前地图不在场景中
|
||||||
|
*/
|
||||||
|
private boolean current_map_invalid = false;
|
||||||
|
/**
|
||||||
|
* 机器人是否断连
|
||||||
|
*/
|
||||||
|
private boolean disconnect = false;
|
||||||
|
/**
|
||||||
|
* 1 = api 设置可接单,2 = api 设置不可接单(小车占用资源), 3 = api 设置不可接单(小车不占用资源)
|
||||||
|
*/
|
||||||
|
private int dispatchable_status = 0;
|
||||||
|
/**
|
||||||
|
* 低电量
|
||||||
|
*/
|
||||||
|
private boolean low_battery = false;
|
||||||
|
/**
|
||||||
|
* 暂停运单
|
||||||
|
*/
|
||||||
|
private boolean suspended = false;
|
||||||
|
/**
|
||||||
|
* 未确认定位
|
||||||
|
*/
|
||||||
|
private boolean unconfirmed_reloc = false;
|
||||||
|
/**
|
||||||
|
* 0: 控制权在core手上 1; 控制权被其他人抢走; 2: 控制权没有被抢占
|
||||||
|
*/
|
||||||
|
private int unlock = 0;
|
||||||
|
|
||||||
|
|
||||||
String device_code = null;
|
String device_code = null;
|
||||||
String container;
|
String container;
|
||||||
@@ -178,11 +210,15 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getDeviceStatusName() {
|
public JSONObject getDeviceStatusName() {
|
||||||
getAgvStatus();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
JSONObject jo = new JSONObject();
|
try{
|
||||||
|
getAgvStatus();
|
||||||
|
}catch (Exception e){
|
||||||
|
message = "获取机器人状态报错";
|
||||||
|
}
|
||||||
String isError;
|
String isError;
|
||||||
if (is_error) {
|
if (is_error) {
|
||||||
isError = "报错";
|
isError = "出错,不执行任何运单";
|
||||||
} else {
|
} else {
|
||||||
isError = "正常";
|
isError = "正常";
|
||||||
}
|
}
|
||||||
@@ -193,12 +229,21 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device
|
|||||||
} else if (CommonFinalParam.DELETE.equals(upload_scene_status)) {
|
} else if (CommonFinalParam.DELETE.equals(upload_scene_status)) {
|
||||||
upload_scene_status = "可推送";
|
upload_scene_status = "可推送";
|
||||||
}
|
}
|
||||||
jo.put("is_error", isError);
|
map.put("errors", isError);
|
||||||
jo.put("upload_scene_status", upload_scene_status);
|
map.put("upload_scene_status", upload_scene_status);
|
||||||
jo.put("procBusiness", procBusiness);
|
map.put("procBusiness", procBusiness ? "是": "否");
|
||||||
jo.put("current_order", current_order);
|
map.put("current_order", current_order);
|
||||||
jo.put("connection_status", connection_status);
|
map.put("connection_status", "1".equals(connection_status) ? "连接上" : "断连");
|
||||||
jo.put("dispatchable", dispatchable);
|
map.put("dispatchable", dispatchable ? "可接单" : "不可接单");
|
||||||
|
map.put("dispatchable_status", dispatchable_status == 1?"设置可接单" : dispatchable_status == 2?"设置不可接单(小车占用资源)" : dispatchable_status == 3?"设置不可接单(小车不占用资源)" : "未知");
|
||||||
|
map.put("current_map_invalid", !current_map_invalid ? "机器人不在地图场景中": "机器人在地图场景中");
|
||||||
|
map.put("disconnect", !disconnect ? "机器人断连" : "机器人连接上");
|
||||||
|
map.put("low_battery", !low_battery ? "低电量": "正常");
|
||||||
|
map.put("suspended", !suspended ? "订单被暂停,需要人工手动恢复": "正常");
|
||||||
|
map.put("message", message);
|
||||||
|
map.put("unconfirmed_reloc", !unconfirmed_reloc ? "未确认定位" : "正常");
|
||||||
|
map.put("unlock", unlock == 0 ? "控制权在core手上" : unlock == 1 ? "控制权被其他人抢走" : unlock == 2 ?"控制权没有被抢占" : "未知");
|
||||||
|
JSONObject jo = new JSONObject(map);
|
||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,7 +259,7 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device
|
|||||||
*/
|
*/
|
||||||
private void getAgvStatus() {
|
private void getAgvStatus() {
|
||||||
HttpResponse robotInfo = xianGongAgvService.getRobotInfo(this.getDevice().getDevice_name());
|
HttpResponse robotInfo = xianGongAgvService.getRobotInfo(this.getDevice().getDevice_name());
|
||||||
if (robotInfo.getStatus() == 200) {
|
if (ObjectUtil.isNotEmpty(robotInfo) && robotInfo.getStatus() == 200) {
|
||||||
JSONObject jsonObject = JSONObject.parseObject(robotInfo.body());
|
JSONObject jsonObject = JSONObject.parseObject(robotInfo.body());
|
||||||
String report = jsonObject.getString("report");
|
String report = jsonObject.getString("report");
|
||||||
//core出错标识
|
//core出错标识
|
||||||
@@ -231,9 +276,26 @@ public class XgAgvCarDeviceDriver extends AbstractDeviceDriver implements Device
|
|||||||
//机器人连接状态 0表示断连 1表示连接上
|
//机器人连接状态 0表示断连 1表示连接上
|
||||||
connection_status = json.getString("connection_status");
|
connection_status = json.getString("connection_status");
|
||||||
//机器人可接单状态 true=可接单 false=不可接单
|
//机器人可接单状态 true=可接单 false=不可接单
|
||||||
dispatchable = json.getString("dispatchable");
|
dispatchable = json.getBooleanValue("dispatchable");
|
||||||
|
//机器人不可接单原因
|
||||||
|
JSONObject undispatchableReason = json.getJSONObject("undispatchable_reason");
|
||||||
|
//机器人当前地图不在场景中
|
||||||
|
current_map_invalid = undispatchableReason.getBooleanValue("current_map_invalid");
|
||||||
|
//网络断连
|
||||||
|
disconnect = undispatchableReason.getBooleanValue("disconnect");
|
||||||
|
//可接单状态: 0 = api 设置可接单, 1 = api 设置不可接单
|
||||||
|
dispatchable_status = undispatchableReason.getIntValue("dispatchable_status");
|
||||||
|
//低电量
|
||||||
|
low_battery = undispatchableReason.getBooleanValue("low_battery");
|
||||||
|
//当前车子的订单被暂停了,需要人为手动恢复
|
||||||
|
suspended = undispatchableReason.getBooleanValue("suspended");
|
||||||
|
//未确认定位
|
||||||
|
unconfirmed_reloc = undispatchableReason.getBooleanValue("unconfirmed_reloc");
|
||||||
|
//0: 控制权在core手上 , 1:控制权被其他人抢走
|
||||||
|
unlock = undispatchableReason.getIntValue("unlock");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
message = "请求机器人状态失败";
|
||||||
log.info("请求{}机器人状态失败", this.getDevice().getDevice_name());
|
log.info("请求{}机器人状态失败", this.getDevice().getDevice_name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -760,6 +760,45 @@ export default {
|
|||||||
} else if (val === 'inst_message') {
|
} else if (val === 'inst_message') {
|
||||||
const obj = { name: '当前指令信息', value: data[val] }
|
const obj = { name: '当前指令信息', value: data[val] }
|
||||||
this.arr.push(obj)
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'errors') {
|
||||||
|
const obj = { name: 'Core出错标识位', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'upload_scene_status') {
|
||||||
|
const obj = { name: '是否推送场景运单', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'procBusiness') {
|
||||||
|
const obj = { name: '是否在执行用户下的运单', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'current_order') {
|
||||||
|
const obj = { name: '机器人当前运单', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'connection_status') {
|
||||||
|
const obj = { name: '机器人连接状态', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'dispatchable') {
|
||||||
|
const obj = { name: '机器人可接单状态', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'dispatchable_status') {
|
||||||
|
const obj = { name: '是否可接单', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'current_map_invalid') {
|
||||||
|
const obj = { name: '机器人是否在场景', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'disconnect') {
|
||||||
|
const obj = { name: '机器人是否断连', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'low_battery') {
|
||||||
|
const obj = { name: '机器人电量状态', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'suspended') {
|
||||||
|
const obj = { name: '暂停运单', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'unconfirmed_reloc') {
|
||||||
|
const obj = { name: '定位确认', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
|
} else if (val === 'unlock') {
|
||||||
|
const obj = { name: '控制权', value: data[val] }
|
||||||
|
this.arr.push(obj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user