add AGV设备监控

This commit is contained in:
张江玮
2023-09-26 17:46:31 +08:00
parent 5de2fde1fc
commit 68c075a4ce
6 changed files with 242 additions and 150 deletions

View File

@@ -1231,6 +1231,51 @@ public class DashboardService {
JSONArray trayDestacker = new JSONArray();
vehicleConveyorLine.put("trayDestacker", trayDestacker);
// AGV----------------------------------------------------------------------------------------------------------
JSONObject agv = new JSONObject();
result.put("agv", agv);
JSONArray agvArr = new JSONArray();
agv.put("agv", agvArr);
List<JSONObject> agvData = deviceData.stream().map(o -> (JSONObject) o).filter(o -> "AGV".equals(o.getString("type"))).sorted(Comparator.comparingInt(o -> o.getIntValue("name"))).collect(Collectors.toList());
for (JSONObject datum : agvData) {
JSONObject row = new JSONObject();
row.put("equipment", datum.getString("name"));
row.put("status", this.agvStatusToDictStatus(datum.getIntValue("state")));
row.put("equipmentName", datum.getString("device_name"));
row.put("statusChinese", this.agvStatusToChinese(datum.getIntValue("state")));
JSONArray rowData = new JSONArray();
row.put("data", rowData);
JSONObject rowDatum = new JSONObject();
rowDatum.put("key", "电量");
rowDatum.put("value", datum.getIntValue("energyLevel"));
rowData.add(rowDatum);
rowDatum = new JSONObject();
rowDatum.put("key", "角度");
rowDatum.put("value", datum.getIntValue("positionAngle"));
rowData.add(rowDatum);
rowDatum = new JSONObject();
rowDatum.put("key", "X坐标");
rowDatum.put("value", datum.getIntValue("positionX"));
rowData.add(rowDatum);
rowDatum = new JSONObject();
rowDatum.put("key", "Y坐标");
rowDatum.put("value", datum.getIntValue("positionY"));
rowData.add(rowDatum);
rowDatum = new JSONObject();
rowDatum.put("key", "故障信息");
rowDatum.put("value", datum.getJSONArray("faultInfo"));
rowData.add(rowDatum);
agvArr.add(row);
}
return result;
}
@@ -1743,4 +1788,40 @@ public class DashboardService {
return "运行";
}
}
private int agvStatusToDictStatus(int status) {
switch (status) {
case 2:
case 3:
return 1;
case 4:
case 5:
case 7:
return 2;
case 1:
return 3;
case 6:
return 4;
default:
return status;
}
}
private String agvStatusToChinese(int status) {
switch (status) {
case 2:
case 3:
return "运行";
case 4:
case 5:
case 7:
return "暂停";
case 1:
return "停机";
case 6:
return "故障";
default:
return "未知";
}
}
}