opt:优化全局头部状态栏接口显示

This commit is contained in:
2023-12-18 09:25:02 +08:00
parent 1ad728015d
commit 1e67172511
13 changed files with 646 additions and 699 deletions

View File

@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>hl_one_wms</artifactId>
<artifactId>gt_agv_plus</artifactId>
<groupId>org.nl</groupId>
<version>1.0-SNAPSHOT</version>
</parent>

View File

@@ -36,8 +36,8 @@ public class HomeController {
@Log("查询头部")
@ApiOperation("查询头部")
//@PreAuthorize("@el.check('sect:list')")
public ResponseEntity<Object> queryHead(@RequestBody Map<String, String> whereJson) {
return new ResponseEntity<>(homeService.queryHead(whereJson), HttpStatus.OK);
public ResponseEntity<Object> queryHead() {
return new ResponseEntity<>(homeService.queryHead(), HttpStatus.OK);
}
@PostMapping("/queryHomePage")
@Log("查询首页")

View File

@@ -1,40 +0,0 @@
package org.nl.agv.rest;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue;
public class SortingExample {
public static void main(String[] args) {
// 假设 itemArray 是你的JSONArray
JSONArray itemArray = new JSONArray();
// 假设你有一个 Queue 用于存储排序后的元素
Queue<JSONObject> sortedQueue = new LinkedBlockingQueue<>();
// 将JSONArray中的元素按照num字段从小到大进行排序
List<JSONObject> listToSort = new ArrayList<>();
for (int i = 0; i < itemArray.size(); i++) {
listToSort.add(itemArray.getJSONObject(i));
}
// 使用Comparator按照num字段从小到大排序
Collections.sort(listToSort, Comparator.comparingInt(o -> o.getIntValue("num")));
// 将排序后的元素放入队列中
sortedQueue.addAll(listToSort);
// 遍历队列中的元素,按照顺序执行相关操作
while (!sortedQueue.isEmpty()) {
JSONObject element = sortedQueue.poll();
// 在这里执行你需要的操作例如处理元素中的num字段
int num = element.getIntValue("num");
// 执行其他操作...
}
}
}

View File

@@ -17,7 +17,7 @@ public interface HomeService {
* @param
* @return Map<String, Object>
*/
Map<String, Object> queryHead(Map<String, String> jsonObject);
Map<String, Object> queryHead();
/**
* 查询首页
*

View File

@@ -66,96 +66,96 @@ public class ErrorServiceImpl implements ErrorService{
}
//@Override
public Map<String,Object> querryError1(Map<String,String> jsonObject) {
String error_status = "无故障";
try {
JSONObject debugInfoJson = HomeServiceImpl.debugInfoJson;
int Warning_Code = debugInfoJson.getInteger("Warning_Code");
int ObstacleTouchState = debugInfoJson.getInteger("ObstacleTouchState");
JSONArray ja = new JSONArray();
String error_code = "";
//bit0 障碍物报警 barrier
if(Warning_Code % 2 == 1) {
error_status = "有故障";
error_code = "barrier";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
}
//bit1 起点报警 startPoint
if((Warning_Code >> 2) % 2 == 1) {
error_status = "有故障";
error_code = "startPoint";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
}
//bit2 急停开关报警 stop
if((Warning_Code >> 10) % 2 == 1) {
error_status = "有故障";
error_code = "stop";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
}
//bit3 触边开关报警 touchSwith
if((ObstacleTouchState >> 1) % 2 == 1) {
error_status = "有故障";
error_code = "touchSwith";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
}
//bit0 速度异常 speedError
if((Warning_Code >> 6) % 2 == 1) {
error_status = "有故障";
error_code = "speedError";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
} //bit0 定位异常 locationError
if((Warning_Code >> 7) % 2 == 1) {
error_status = "";
error_code = "startPoint";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
}
//bit0 路径异常 wayError
if((Warning_Code >> 8) % 2 == 1) {
error_status = "有故障";
error_code = "wayError";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
ja.add(row);
}
//电池异常 batteryError
if((Warning_Code >> 11) % 2 == 1) {
error_status = "有故障";
error_code = "batteryError";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
row.put("error_content", debugInfoJson.getString("PWR_Warn"));
ja.add(row);
}
//CURTIS异常 CURTIS
if((Warning_Code >> 24) % 2 == 1) {
error_status = "有故障";
error_code = "CURTIS";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
row.put("error_content", debugInfoJson.getString("Curtis_Warning_Code_Speed"));
ja.add(row);
}
//CAN通讯异常 CAN
if((Warning_Code >> 19) % 2 == 1) {
error_status = "有故障";
error_code = "CAN";
JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
row.put("error_content", debugInfoJson.getString("VehicleCtrl_CAN_Err_Info"));
ja.add(row);
}
JSONObject returnjo = new JSONObject();
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("QuerySuccess", null));
returnjo.put("result", ja);
returnjo.put("error_status", error_status);
return returnjo;
}
catch(Exception e) {
Log.error("通信失败4:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
}
}
// public Map<String,Object> querryError1(Map<String,String> jsonObject) {
// String error_status = "无故障";
// try {
// JSONObject debugInfoJson = HomeServiceImpl.debugInfoJson;
// int Warning_Code = debugInfoJson.getInteger("Warning_Code");
// int ObstacleTouchState = debugInfoJson.getInteger("ObstacleTouchState");
// JSONArray ja = new JSONArray();
// String error_code = "";
// //bit0 障碍物报警 barrier
// if(Warning_Code % 2 == 1) {
// error_status = "有故障";
// error_code = "barrier";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// }
// //bit1 起点报警 startPoint
// if((Warning_Code >> 2) % 2 == 1) {
// error_status = "有故障";
// error_code = "startPoint";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// }
// //bit2 急停开关报警 stop
// if((Warning_Code >> 10) % 2 == 1) {
// error_status = "有故障";
// error_code = "stop";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// }
// //bit3 触边开关报警 touchSwith
// if((ObstacleTouchState >> 1) % 2 == 1) {
// error_status = "有故障";
// error_code = "touchSwith";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// }
// //bit0 速度异常 speedError
// if((Warning_Code >> 6) % 2 == 1) {
// error_status = "有故障";
// error_code = "speedError";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// } //bit0 定位异常 locationError
// if((Warning_Code >> 7) % 2 == 1) {
// error_status = "是";
// error_code = "startPoint";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// }
// //bit0 路径异常 wayError
// if((Warning_Code >> 8) % 2 == 1) {
// error_status = "有故障";
// error_code = "wayError";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// ja.add(row);
// }
// //电池异常 batteryError
// if((Warning_Code >> 11) % 2 == 1) {
// error_status = "有故障";
// error_code = "batteryError";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// row.put("error_content", debugInfoJson.getString("PWR_Warn"));
// ja.add(row);
// }
// //CURTIS异常 CURTIS
// if((Warning_Code >> 24) % 2 == 1) {
// error_status = "有故障";
// error_code = "CURTIS";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// row.put("error_content", debugInfoJson.getString("Curtis_Warning_Code_Speed"));
// ja.add(row);
// }
// //CAN通讯异常 CAN
// if((Warning_Code >> 19) % 2 == 1) {
// error_status = "有故障";
// error_code = "CAN";
// JSONObject row = WQL.getWO("QAGVERROR").addParam("flag", "1").addParam("error_code", error_code).process().uniqueResult(0);
// row.put("error_content", debugInfoJson.getString("VehicleCtrl_CAN_Err_Info"));
// ja.add(row);
// }
// JSONObject returnjo = new JSONObject();
// returnjo.put("code", "1");
// returnjo.put("desc", LangUtils.getMsgLanguage("QuerySuccess", null));
// returnjo.put("result", ja);
// returnjo.put("error_status", error_status);
// return returnjo;
// }
// catch(Exception e) {
// Log.error("通信失败4:" + e.getMessage());
// throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
// }
// }
}

View File

@@ -22,10 +22,10 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.esotericsoftware.minlog.Log;
import edu.wpi.rail.jrosbridge.services.ServiceResponse;
import lombok.RequiredArgsConstructor;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.agv.entity.HomeInfo;
import org.nl.agv.enu.*;
@@ -39,25 +39,23 @@ import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.core.bean.WQLObject;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ThreadPoolExecutor;
import static org.nl.common.utils.LangUtils.getLanguage;
/**
* @author qinx
* @date 2021-09-23
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class HomeServiceImpl implements HomeService {
@@ -66,6 +64,7 @@ public class HomeServiceImpl implements HomeService {
private ThreadPoolExecutor pool;
//定时器查询调试信息放入json其他地方直接调用
public static JSONObject debugInfoJson = new JSONObject();
public static JSONObject debugInfoJsonQuick = new JSONObject();
public HomeServiceImpl(ThreadPoolExecutor pool) {
this.pool = pool;
@@ -79,13 +78,28 @@ public class HomeServiceImpl implements HomeService {
*/
@Override
public Map<String, Object> queryHomePage(Map<String, String> jsonObject) {
String lang = LocaleContextHolder.getLocale().getLanguage();
HomeInfo homeInfo = new HomeInfo();
JSONObject returnjo = new JSONObject();
JSONObject row = new JSONObject();
try {
CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
CompletableFuture.runAsync(this::handleTaskStatus, pool);
//查询调试信息
CompletableFuture.runAsync(() -> {
try {
qeryDebuggerInfo();
} catch (Exception e) {
//记录异常日志
log.error("queryHomePage-查询调试信息失败:{}", e.getMessage());
}
}, pool);
//执行任务操作
CompletableFuture.runAsync(() -> {
try {
handleTaskStatus();
} catch (Exception e) {
//记录异常日志
log.error("queryHomePage-执行任务操作失败:{}", e.getMessage());
}
}, pool);
List<JSONObject> allTasks = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0").getResultJSONArray(0).toJavaList(JSONObject.class);
// 执行中任务
Optional<JSONObject> taskingOptional = allTasks.stream().filter(task -> TaskStatusEnum.RUNNING.getCode().equals(task.getString("task_status")) && !TaskTypeEnum.REST.getCode().equals(task.getString("task_type"))).findFirst();
@@ -175,8 +189,8 @@ public class HomeServiceImpl implements HomeService {
returnjo.put("result", homeInfo);
return returnjo;
} catch (Exception e) {
Log.error("通信失败1:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
log.error("queryHomePage-查询首页:{}",e.getMessage());
throw new BadRequestException(e.getMessage() == null ? "queryHomePage:" + LangUtils.getMsgLanguage("CommunicationFail", null) : "queryHomePage:" + e.getMessage());
}
}
@@ -241,172 +255,19 @@ public class HomeServiceImpl implements HomeService {
homeInfo.setEn_automatic_status_name(LangUtils.getLanguage("Automatic", "en"));
homeInfo.setZh_automatic_status_name(LangUtils.getLanguage("Automatic", "zh"));
} else if (StrUtil.equals(automaticStatus, "5")) {
homeInfo.setAgvrun_status_name("IO");
homeInfo.setEn_agvrun_status_name("IO");
homeInfo.setZh_agvrun_status_name("IO");
homeInfo.setAutomatic_status_name("IO");
homeInfo.setEn_automatic_status_name("IO");
homeInfo.setZh_automatic_status_name("IO");
}
}
public Map<String, Object> queryHomePage1(Map<String, String> jsonObject) {
String button_code = "";
String button_name = "";
String agvrun_status_name = "";
String automatic_status_name = "";
String device_info = "";
String task_name = "";
String task_info = "";
Integer electric = 0;
String speed = "";
String error_name = "正常运行";
JSONObject returnjo = new JSONObject();
JSONObject row = new JSONObject();
try {
//查询调试信息
CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
JSONObject tasking = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and task_type!='2'").uniqueResult(0);
// 1 无任务 2 有任务未执行 3 执行中
String task_status = "";
//1确认完成 2确认完成继续下个任务3继续搬运4返回休息点
String date = DateUtil.today();
if (tasking == null) {
task_status = "无任务";
}
//JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type!='2'").uniqueResult(0);
JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type!='2' order by seq_num ").uniqueResult(0);
if (tasked != null) {
task_status = "有任务未执行";
}
if (tasking != null) {
task_status = "执行中";
task_name = "任务号:" + tasking.getString("task_code");
task_info = "目标点:" + tasking.getString("next_point_code");
}
// else if(tasked!=null)
// {
// task_name = "任务号:" + tasked.getString("task_code");
// task_info = "目标点:" + tasked.getString("next_point_code");
// }
JSONObject unManFinishTask = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='02' and is_manualfinished='0'and task_type!='2'").uniqueResult(0);
//没有未执行任务,且需要人工完成
if (unManFinishTask != null && tasked == null) {
button_code = "1";
button_name = "确认完成";
}
//存在未执行任务,且需要人工完成当前任务
if (unManFinishTask != null && tasked != null) {
button_code = "2";
button_name = "确认完成继续下个任务";
}
//任务都完成了,但是还有未完成的任务
if (unManFinishTask == null && tasked != null) {
button_code = "3";
button_name = "继续搬运";
}
//不存在需要人工完成的任务,且不存在未完成的任务
if (unManFinishTask == null && tasked == null) {
button_code = "4";
button_name = "返回休息点";
//假如所有的任务都完成,包括返回休息点的任务,且最后一个完成任务的时间是返回休息电的任务也不显示
JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 ", "update_time desc").uniqueResult(0);
if (doingtaskjo != null && "2".equals(doingtaskjo.getString("task_type"))) {
button_code = "";
button_name = "";
}
}
//假如有执行中的任务,则不显示
JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and is_manualfinished='0'").uniqueResult(0);
if (doingtaskjo != null) {
button_code = "";
button_name = "";
}
String task_num = "待执行0";
//分母 今天所有的任务,分子今天未完成的任务
JSONArray alltaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type!='2' and date ='" + date + "'").getResultJSONArray(0);
if (alltaskja.size() > 0) {
JSONArray todaytaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type!='2' and date ='" + date + "' and task_status='00'").getResultJSONArray(0);
String alltask_num = String.valueOf(alltaskja.size());
String todaytask_num = String.valueOf(todaytaskja.size());
task_num = "待执行" + todaytask_num + "/" + alltask_num;
}
if (debugInfoJson.size() > 0) {
//车辆运行还是待机是PathFollow_Enable 1为运行 0为待机
String agvrun_status = debugInfoJson.getString("PathFollow_Enable");
if (StrUtil.equals(agvrun_status, "1")) {
automatic_status_name = "运行";
}
if (StrUtil.equals(agvrun_status, "0")) {
automatic_status_name = "待机";
}
//手自动是Sys_Mode 3 REMA手动 4自动 5 IO手持方式的手动这个车不装
String automatic_status = debugInfoJson.getString("Sys_Mode");
if (StrUtil.equals(automatic_status, "3")) {
agvrun_status_name = "手动";
}
if (StrUtil.equals(automatic_status, "4")) {
agvrun_status_name = "自动";
}
if (StrUtil.equals(automatic_status, "5")) {
agvrun_status_name = "IO";
}
//速度
speed = debugInfoJson.getString("Speedm_Tmp") == null ? "0" : debugInfoJson.getString("Speedm_Tmp");
BigDecimal e = new BigDecimal(speed).setScale(3, RoundingMode.HALF_UP);
row.put("speed", e + "m/s");
//agv状态枚举
row.put("agvrun_status", agvrun_status);
//agv状态名称1为运行 0为待机
row.put("agvrun_status_name", agvrun_status_name);
//agv操纵枚举
row.put("automatic_status", automatic_status);
//agv操纵名称3 REMA手动 4自动
row.put("automatic_status_name", automatic_status_name);
//假如电量低于30 ,则返回休息电
electric = debugInfoJson.getInteger("PWR_Percent");
//电量
row.put("electric", electric);
if (electric < 30) {
button_code = "4";
button_name = "返回休息点";
}
String Env_CustomName = debugInfoJson.getString("Env_CustomName");
String Env_VehicleType = debugInfoJson.getString("Env_VehicleType");
//设备名称
device_info = Env_CustomName + Env_VehicleType;
}
ErrorServiceImpl errorServiceImpl = new ErrorServiceImpl();
Map error = errorServiceImpl.querryError(null);
JSONArray errorResult = JSONArray.parseArray(JSON.toJSONString(error.get("result")));
if (errorResult.size() > 0) {
error_name = errorResult.getJSONObject(0).getString("error_name");
}
//row.put("agv_error", (String) error.get("error_status"));
//故障信息
row.put("error_name", error_name);
//设备信息
row.put("device_info", device_info);
//任务状态
row.put("task_status", task_status);
//当前任务
row.put("task_name", task_name);
row.put("task_info", task_info);
row.put("task_num", task_num);
row.put("button_code", button_code);
row.put("button_name", button_name);
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("OperationSuccess", null));
returnjo.put("result", row);
return returnjo;
} catch (Exception e) {
Log.error("通信失败3:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
}
}
@Override
public Map<String, Object> clickSave(Map<String, String> jsonObject) {
try {
WQLObject taskTable = WQLObject.getWQLObject("ST_TASK_INFO");
String button_code = (String) jsonObject.get("button_code");
String button_code = jsonObject.get("button_code");
JSONObject returnjo = new JSONObject();
//1确认完成
if (StrUtil.equals(button_code, "1")) {
@@ -537,6 +398,10 @@ public class HomeServiceImpl implements HomeService {
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("OperationSuccess", null));
return returnjo;
} catch (Exception e) {
log.error("clickSave-首页确认操作:{}",e.getMessage());
throw new BadRequestException(e.getMessage() == null ? "clickSave:" + LangUtils.getMsgLanguage("CommunicationFail", null) : "clickSave:"+e.getMessage());
}
}
@@ -544,34 +409,56 @@ public class HomeServiceImpl implements HomeService {
* 已合并至queryHomePage
*/
@Override
public Map<String, Object> queryHead(Map<String, String> jsonObject) {
public Map<String, Object> queryHead() {
JSONObject returnjo = new JSONObject();
JSONObject result = new JSONObject();
String agvrun_status_name = "";
String en_agvrun_status_name = "";
String zh_agvrun_status_name = "";
String automatic_status_name = "";
String en_automatic_status_name = "";
String zh_automatic_status_name = "";
String electric = "50";
CompletableFuture.runAsync(() -> {
try {
handleTaskStatus();
} catch (Exception e) {
e.printStackTrace();
//记录异常日志
}
}, pool);
electric = debugInfoJsonQuick.getString("PWR_Percent");
//车辆运行还是待机是PathFollow_Enable 1为运行 0为待机
String agvrun_status = debugInfoJson.getString("PathFollow_Enable");
if (StrUtil.equals(agvrun_status, "1")) {
automatic_status_name = "运行";
}
if (StrUtil.equals(agvrun_status, "0")) {
automatic_status_name = "待机";
if (StrUtil.equals(debugInfoJsonQuick.getString("PathFollow_Enable"), "1")) {
agvrun_status_name = LangUtils.getLanguage("Run", null);
en_agvrun_status_name = LangUtils.getLanguage("Run", "en");
zh_agvrun_status_name = LangUtils.getLanguage("Run", "zh");
} else {
agvrun_status_name = LangUtils.getLanguage("Standby", null);
en_agvrun_status_name = LangUtils.getLanguage("Standby", "en");
zh_agvrun_status_name = LangUtils.getLanguage("Standby", "zh");
}
//手自动是Sys_Mode 3 REMA手动 4自动 5 IO手持方式的手动这个车不装
String automatic_status = debugInfoJson.getString("Sys_Mode");
if (StrUtil.equals(automatic_status, "3")) {
agvrun_status_name = "手动";
if (StrUtil.equals(debugInfoJsonQuick.getString("Sys_Mode"), "3")) {
automatic_status_name = LangUtils.getLanguage("Manual", null);
en_automatic_status_name = LangUtils.getLanguage("Manual", "en");
zh_automatic_status_name = LangUtils.getLanguage("Manual", "zh");
} else if (StrUtil.equals(debugInfoJsonQuick.getString("Sys_Mode"), "4")) {
automatic_status_name = LangUtils.getLanguage("Automatic", null);
en_automatic_status_name = LangUtils.getLanguage("Automatic", "en");
zh_automatic_status_name = LangUtils.getLanguage("Automatic", "zh");
} else if (StrUtil.equals(debugInfoJsonQuick.getString("Sys_Mode"), "5")) {
automatic_status_name = "IO";
en_automatic_status_name = "IO";
zh_automatic_status_name = "IO";
}
if (StrUtil.equals(automatic_status, "4")) {
agvrun_status_name = "自动";
}
if (StrUtil.equals(automatic_status, "5")) {
agvrun_status_name = "IO手持方式的手动";
}
result.put("agvrun_status", agvrun_status);
result.put("electric", electric);
result.put("agvrun_status_name", agvrun_status_name);
result.put("automatic_status", automatic_status);
result.put("en_agvrun_status_name", en_agvrun_status_name);
result.put("zh_agvrun_status_name", zh_agvrun_status_name);
result.put("automatic_status_name", automatic_status_name);
result.put("en_automatic_status_name", en_automatic_status_name);
result.put("zh_automatic_status_name", zh_automatic_status_name);
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("OperationSuccess", null));
returnjo.put("result", result);
@@ -582,113 +469,102 @@ public class HomeServiceImpl implements HomeService {
public void qeryDebuggerInfo() {
//todo RosJons模拟数据用正式需改回
//String result1 = HttpUtil.get("http://localhost:8011/api/pcsIfPurchaseorder/queryApt");
try {
Map<String, String> urlInfo = RosUtil.getRosHostInfo();
String result;
if ("prod".equals(isProd)) {
result = HttpUtil.get(urlInfo.get("javaUrl"));
} else {
result = "{\"Msg_DisplayState\":{\"AGV_ID\":255,\"Auto_In_Line_State\":0,\"Bosch_Car_Global_Theta\":-90.19221757272916,\"Bosch_Car_Global_rx\":-1.0619603784858553,\"Bosch_Car_Global_ry\":0.0020978358374357303,\"Bosch_Loc_State\":-2,\"Bosch_No_Rec_State\":0,\"Bosch_raw_age\":0.01389455795288086,\"Bosch_raw_epoch\":1,\"Bosch_raw_locState\":-2,\"Bosch_raw_qw\":0.9999999908132869,\"Bosch_raw_qx\":0.0,\"Bosch_raw_qy\":0.0,\"Bosch_raw_qz\":0.00013554861104682667,\"Bosch_raw_timestamp\":1695633231.1093392,\"Bosch_raw_uniqueId\":0,\"Bosch_raw_x\":0.0008994877773440588,\"Bosch_raw_x_odo\":0.0008994877773440588,\"Bosch_raw_y\":0.0006906610801896382,\"Bosch_raw_y_odo\":0.0006906610801896382,\"Bosch_raw_yaw\":0.00027109722292381746,\"Bosch_raw_yaw_odo\":0.0006906610801896382,\"Bosch_raw_z\":0.0,\"CAD_Or_TCS_Ctrl\":0,\"Car_Global_Theta\":-90.19221757272916,\"Car_Global_rx\":-1.0619603784858553,\"Car_Global_ry\":0.0020978358374357303,\"CurNodeID\":11,\"Cur_Stop_Info1_Authorized_Pass\":1,\"Cur_Stop_Info1_High_Precious_Enable\":1,\"Cur_Stop_Info1_Reached_Stop\":0,\"Cur_Stop_Info1_Set_Patht\":0.0,\"Cur_Stop_Info1_Set_Pathx\":0.0,\"Cur_Stop_Info1_Set_Pathy\":0.0,\"Cur_Stop_Info1_Single_Request_Sch\":0,\"Cur_Stop_Info1_Single_Stop_Sch\":0,\"Cur_Stop_Info1_StopEndNode\":0,\"Cur_Stop_Info1_StopStartNode\":0,\"Cur_Stop_Info1_Stop_Endt\":0.0,\"Cur_Stop_Info1_Stop_Endx\":0.0,\"Cur_Stop_Info1_Stop_Endy\":0.0,\"Cur_Stop_Info1_Stop_Num\":0,\"Cur_Stop_Info2_Authorized_Pass\":1,\"Cur_Stop_Info2_High_Precious_Enable\":1,\"Cur_Stop_Info2_Reached_Stop\":0,\"Cur_Stop_Info2_Set_Patht\":0.0,\"Cur_Stop_Info2_Set_Pathx\":0.0,\"Cur_Stop_Info2_Set_Pathy\":0.0,\"Cur_Stop_Info2_Single_Request_Sch\":0,\"Cur_Stop_Info2_Single_Stop_Sch\":0,\"Cur_Stop_Info2_StopEndNode\":0,\"Cur_Stop_Info2_StopStartNode\":0,\"Cur_Stop_Info2_Stop_Endt\":0.0,\"Cur_Stop_Info2_Stop_Endx\":0.0,\"Cur_Stop_Info2_Stop_Endy\":0.0,\"Cur_Stop_Info2_Stop_Num\":0,\"Curtis_Warning_Code_Pump\":0,\"Curtis_Warning_Code_Speed\":82,\"Curtis_Warning_Code_Steer\":0,\"EndNode\":0,\"Env_CustomName\":\"NobleLift\",\"Env_HMIUseJavaApp\":\"true\",\"Env_LearnEnable\":\"true\",\"Env_Lu_ROS_IP2\":\"\",\"Env_SoftwareVersion\":\"[Version]Magic4.1[Info]2023_09_21_20_41_37_Lu_ROS_magic4_waypointab_v31\",\"Env_VehicleType\":\"PS10LMT_HuaHai\",\"Get_Nav350_Curr_Layer\":0,\"Language\":1022739087,\"LastAltitudeExpectValue_mm\":0,\"LastGantryXExpectValue_mm\":0,\"LastGantryYExpectValue_mm\":0,\"Lateral_Deviation_m\":0.0,\"License_Info\":\"EC060800FFFBEBBF 6B7685747EBC EC060800FFFBEBBF 6B7685747EBC 2021/8/26 13:46:47 2021/8/26 13:46:47 1 UserClass5 Magic4_1\",\"LindeAgwSteerCenterPivotPlateAng\":0,\"LindeAgwSteerErrorFlag\":0,\"LindeAgwSteerModeSelectorState\":0,\"LindeAgwTracLiftErrorFlag\":0,\"LindeAgwTracLiftModeSelectorState\":0,\"LindeDriveErrCode1\":0,\"LindeDriveErrCode2\":0,\"LindeDriveErrCode3\":0,\"LindeDriveErrCode4\":0,\"LindeLiftErrCode1\":0,\"LindeLiftErrCode2\":0,\"LindeLiftErrCode3\":0,\"LindeLiftErrCode4\":0,\"LindeSteerErrCode1\":0,\"LindeSteerErrCode2\":0,\"LindeSteerErrCode3\":0,\"LindeSteerErrCode4\":0,\"Login_Info\":\"\",\"Min_Dist\":0.0,\"MissionCompleteAltitude_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryX_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryY_mm_RemoteOrHMI_FB\":0,\"Navi_Method\":3,\"ObstacleDetectState\":0,\"ObstacleTouchState\":0,\"Out_Of_Path_Times\":0,\"PFC_Sch\":0,\"PFC_State\":\"[PathFollow_Control_Handle_WLANJSON][PathFollow_Schedule_WLANJSON=0]\\n\",\"PLC_Warning_Code\":0,\"PWR_Percent\":100,\"PWR_Warn\":0,\"PathFollow_Enable\":0,\"PathFollow_Expect_AltitudeCtrlEnable\":0,\"PathFollow_Expect_GantryXCtrlEnable\":0,\"PathFollow_Expect_GantryYCtrlEnable\":0,\"Plate_Check_Err_Code\":0,\"ReachState\":0,\"RealAutoChargeState\":0,\"Ref_std_rt\":0.0,\"Ref_std_rx\":0.0,\"Ref_std_ry\":0.0,\"Remote_Or_HMI_Ctrl\":1,\"SVreal_angle\":0.0,\"Sche_JSON_Sche_Enable\":0,\"Speedm_Tmp\":0.0,\"StartNode\":0,\"Sub_Warning_Code0\":0,\"Sys_Mode\":4,\"Task_Sch\":0,\"Task_State\":\"\",\"Update_Sch\":0,\"Update_State\":\"\",\"VehicleCtrlExpThrottle\":0,\"VehicleCtrlRealAltitude_mm\":998,\"VehicleCtrlRealCustomStateByte0\":0,\"VehicleCtrlRealCustomStateByte1\":0,\"VehicleCtrlRealCustomStateByte2\":0,\"VehicleCtrlRealCustomStateByte3\":0,\"VehicleCtrlRealGantryX_mm\":0,\"VehicleCtrlRealGantryY_mm\":0,\"VehicleCtrlRealJoyEnable\":0,\"VehicleCtrlRealRCEnable\":0,\"VehicleCtrl_CAN_Err_Info\":0,\"Vertical_Deviation_deg\":0.0,\"Warning_Code\":754529,\"header\":{\"frame_id\":\"\",\"seq\":1904,\"stamp\":{\"nsec\":160948865,\"sec\":1695633231}}}}";
}
JSONObject json = JSONObject.parseObject(result);
JSONObject jo = JSONObject.parseObject(json.getString("Msg_DisplayState"));
debugInfoJson.put("Msg_Timestamp", jo.getJSONObject("header").getJSONObject("stamp").getString("sec"));
debugInfoJson.put("AGV_ID", jo.getString("AGV_ID"));
debugInfoJson.put("Sys_Mode", jo.getString("Sys_Mode"));
debugInfoJson.put("screen", jo.getString("Remote_Or_HMI_Ctrl"));
debugInfoJson.put("tcs", jo.getString("CAD_Or_TCS_Ctrl"));
debugInfoJson.put("sche", jo.getString("Sche_JSON_Sche_Enable"));
debugInfoJson.put("rc", jo.getString("VehicleCtrlRealRCEnable"));
debugInfoJson.put("joy", jo.getString("VehicleCtrlRealJoyEnable"));
debugInfoJson.put("VehicleCtrlExpThrottle", jo.getString("VehicleCtrlExpThrottle"));
debugInfoJson.put("Warning_Code", jo.getString("Warning_Code"));
debugInfoJson.put("Car_Global_rx", jo.getString("Car_Global_rx"));
debugInfoJson.put("Car_Global_ry", jo.getString("Car_Global_ry"));
debugInfoJson.put("Car_Global_Theta", jo.getString("Car_Global_Theta"));
debugInfoJson.put("Lateral_Deviation_m", jo.getString("Lateral_Deviation_m"));
debugInfoJson.put("Vertical_Deviation_deg", jo.getString("Vertical_Deviation_deg"));
debugInfoJson.put("Out_Of_Path_Times", jo.getString("Out_Of_Path_Times"));
debugInfoJson.put("PLC_Warning_Code", jo.getString("PLC_Warning_Code"));
debugInfoJson.put("Min_Dist", jo.getString("Min_Dist"));
debugInfoJson.put("Auto_In_Line_State", jo.getString("Auto_In_Line_State"));
debugInfoJson.put("PathFollow_Enable", jo.getString("PathFollow_Enable"));
debugInfoJson.put("StartNode", jo.getString("StartNode"));
debugInfoJson.put("EndNode", jo.getString("EndNode"));
debugInfoJson.put("RealAutoChargeState", jo.getString("RealAutoChargeState"));
debugInfoJson.put("PWR_Percent", jo.getString("PWR_Percent"));
debugInfoJson.put("SVreal_angle", jo.getString("SVreal_angle"));
debugInfoJson.put("Speedm_Tmp", jo.getString("Speedm_Tmp"));
debugInfoJson.put("VehicleCtrlRealAltitude_mm", jo.getString("VehicleCtrlRealAltitude_mm"));
debugInfoJson.put("ReachState", jo.getString("ReachState"));
debugInfoJson.put("ObstacleDetectState", jo.getString("ObstacleDetectState"));
debugInfoJson.put("ObstacleTouchState", jo.getString("ObstacleTouchState"));
debugInfoJson.put("PWR_Warn", jo.getString("PWR_Warn"));
debugInfoJson.put("VehicleCtrl_CAN_Err_Info", jo.getString("VehicleCtrl_CAN_Err_Info"));
debugInfoJson.put("Curtis_Warning_Code_Speed", jo.getString("Curtis_Warning_Code_Speed"));
debugInfoJson.put("Curtis_Warning_Code_Steer", jo.getString("Curtis_Warning_Code_Steer"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte0", jo.getString("VehicleCtrlRealCustomStateByte0"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte1", jo.getString("VehicleCtrlRealCustomStateByte1"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte2", jo.getString("VehicleCtrlRealCustomStateByte2"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte3", jo.getString("VehicleCtrlRealCustomStateByte3"));
debugInfoJson.put("MissionCompleteAltitude_mm_RemoteOrHMI_FB", jo.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB"));
debugInfoJson.put("LastAltitudeExpectValue_mm", jo.getString("LastAltitudeExpectValue_mm"));
debugInfoJson.put("Get_Nav350_Curr_Layer", jo.getString("Get_Nav350_Curr_Layer"));
debugInfoJson.put("Update_Sch", jo.getString("Update_Sch"));
debugInfoJson.put("Update_State", jo.getString("Update_State"));
debugInfoJson.put("Task_Sch", jo.getString("Task_Sch"));
debugInfoJson.put("Task_State", jo.getString("Task_State"));
debugInfoJson.put("PFC_Sch", jo.getString("PFC_Sch"));
debugInfoJson.put("PFC_State", jo.getString("PFC_State"));
debugInfoJson.put("License_Info", jo.getString("License_Info"));
debugInfoJson.put("Env_CustomName", jo.getString("Env_CustomName"));
debugInfoJson.put("Env_VehicleType", jo.getString("Env_VehicleType"));
debugInfoJson.put("Env_SoftwareVersion", jo.getString("Env_SoftwareVersion"));
debugInfoJson.put("Remote_Or_HMI_Ctrl", jo.getString("Remote_Or_HMI_Ctrl"));
debugInfoJson.put("CAD_Or_TCS_Ctrl", jo.getString("CAD_Or_TCS_Ctrl"));
debugInfoJson.put("Sche_JSON_Sche_Enable", jo.getString("Sche_JSON_Sche_Enable"));
debugInfoJson.put("VehicleCtrlRealRCEnable", jo.getString("VehicleCtrlRealRCEnable"));
debugInfoJson.put("VehicleCtrlRealJoyEnable", jo.getString("VehicleCtrlRealJoyEnable"));
debugInfoJson.put("CurNodeID", jo.getString("CurNodeID"));
//handleTaskStatus;
} catch (Exception e) {
Log.error("通信失败5:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
Map<String, String> urlInfo = RosUtil.getRosHostInfo();
String result;
if ("prod".equals(isProd)) {
result = HttpUtil.get(urlInfo.get("javaUrl"));
} else {
result = "{\"Msg_DisplayState\":{\"AGV_ID\":255,\"Auto_In_Line_State\":0,\"Bosch_Car_Global_Theta\":-90.19221757272916,\"Bosch_Car_Global_rx\":-1.0619603784858553,\"Bosch_Car_Global_ry\":0.0020978358374357303,\"Bosch_Loc_State\":-2,\"Bosch_No_Rec_State\":0,\"Bosch_raw_age\":0.01389455795288086,\"Bosch_raw_epoch\":1,\"Bosch_raw_locState\":-2,\"Bosch_raw_qw\":0.9999999908132869,\"Bosch_raw_qx\":0.0,\"Bosch_raw_qy\":0.0,\"Bosch_raw_qz\":0.00013554861104682667,\"Bosch_raw_timestamp\":1695633231.1093392,\"Bosch_raw_uniqueId\":0,\"Bosch_raw_x\":0.0008994877773440588,\"Bosch_raw_x_odo\":0.0008994877773440588,\"Bosch_raw_y\":0.0006906610801896382,\"Bosch_raw_y_odo\":0.0006906610801896382,\"Bosch_raw_yaw\":0.00027109722292381746,\"Bosch_raw_yaw_odo\":0.0006906610801896382,\"Bosch_raw_z\":0.0,\"CAD_Or_TCS_Ctrl\":0,\"Car_Global_Theta\":-90.19221757272916,\"Car_Global_rx\":-1.0619603784858553,\"Car_Global_ry\":0.0020978358374357303,\"CurNodeID\":11,\"Cur_Stop_Info1_Authorized_Pass\":1,\"Cur_Stop_Info1_High_Precious_Enable\":1,\"Cur_Stop_Info1_Reached_Stop\":0,\"Cur_Stop_Info1_Set_Patht\":0.0,\"Cur_Stop_Info1_Set_Pathx\":0.0,\"Cur_Stop_Info1_Set_Pathy\":0.0,\"Cur_Stop_Info1_Single_Request_Sch\":0,\"Cur_Stop_Info1_Single_Stop_Sch\":0,\"Cur_Stop_Info1_StopEndNode\":0,\"Cur_Stop_Info1_StopStartNode\":0,\"Cur_Stop_Info1_Stop_Endt\":0.0,\"Cur_Stop_Info1_Stop_Endx\":0.0,\"Cur_Stop_Info1_Stop_Endy\":0.0,\"Cur_Stop_Info1_Stop_Num\":0,\"Cur_Stop_Info2_Authorized_Pass\":1,\"Cur_Stop_Info2_High_Precious_Enable\":1,\"Cur_Stop_Info2_Reached_Stop\":0,\"Cur_Stop_Info2_Set_Patht\":0.0,\"Cur_Stop_Info2_Set_Pathx\":0.0,\"Cur_Stop_Info2_Set_Pathy\":0.0,\"Cur_Stop_Info2_Single_Request_Sch\":0,\"Cur_Stop_Info2_Single_Stop_Sch\":0,\"Cur_Stop_Info2_StopEndNode\":0,\"Cur_Stop_Info2_StopStartNode\":0,\"Cur_Stop_Info2_Stop_Endt\":0.0,\"Cur_Stop_Info2_Stop_Endx\":0.0,\"Cur_Stop_Info2_Stop_Endy\":0.0,\"Cur_Stop_Info2_Stop_Num\":0,\"Curtis_Warning_Code_Pump\":0,\"Curtis_Warning_Code_Speed\":82,\"Curtis_Warning_Code_Steer\":0,\"EndNode\":0,\"Env_CustomName\":\"NobleLift\",\"Env_HMIUseJavaApp\":\"true\",\"Env_LearnEnable\":\"true\",\"Env_Lu_ROS_IP2\":\"\",\"Env_SoftwareVersion\":\"[Version]Magic4.1[Info]2023_09_21_20_41_37_Lu_ROS_magic4_waypointab_v31\",\"Env_VehicleType\":\"PS10LMT_HuaHai\",\"Get_Nav350_Curr_Layer\":0,\"Language\":1022739087,\"LastAltitudeExpectValue_mm\":0,\"LastGantryXExpectValue_mm\":0,\"LastGantryYExpectValue_mm\":0,\"Lateral_Deviation_m\":0.0,\"License_Info\":\"EC060800FFFBEBBF 6B7685747EBC EC060800FFFBEBBF 6B7685747EBC 2021/8/26 13:46:47 2021/8/26 13:46:47 1 UserClass5 Magic4_1\",\"LindeAgwSteerCenterPivotPlateAng\":0,\"LindeAgwSteerErrorFlag\":0,\"LindeAgwSteerModeSelectorState\":0,\"LindeAgwTracLiftErrorFlag\":0,\"LindeAgwTracLiftModeSelectorState\":0,\"LindeDriveErrCode1\":0,\"LindeDriveErrCode2\":0,\"LindeDriveErrCode3\":0,\"LindeDriveErrCode4\":0,\"LindeLiftErrCode1\":0,\"LindeLiftErrCode2\":0,\"LindeLiftErrCode3\":0,\"LindeLiftErrCode4\":0,\"LindeSteerErrCode1\":0,\"LindeSteerErrCode2\":0,\"LindeSteerErrCode3\":0,\"LindeSteerErrCode4\":0,\"Login_Info\":\"\",\"Min_Dist\":0.0,\"MissionCompleteAltitude_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryX_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryY_mm_RemoteOrHMI_FB\":0,\"Navi_Method\":3,\"ObstacleDetectState\":0,\"ObstacleTouchState\":0,\"Out_Of_Path_Times\":0,\"PFC_Sch\":0,\"PFC_State\":\"[PathFollow_Control_Handle_WLANJSON][PathFollow_Schedule_WLANJSON=0]\\n\",\"PLC_Warning_Code\":0,\"PWR_Percent\":99,\"PWR_Warn\":0,\"PathFollow_Enable\":0,\"PathFollow_Expect_AltitudeCtrlEnable\":0,\"PathFollow_Expect_GantryXCtrlEnable\":0,\"PathFollow_Expect_GantryYCtrlEnable\":0,\"Plate_Check_Err_Code\":0,\"ReachState\":0,\"RealAutoChargeState\":0,\"Ref_std_rt\":0.0,\"Ref_std_rx\":0.0,\"Ref_std_ry\":0.0,\"Remote_Or_HMI_Ctrl\":1,\"SVreal_angle\":0.0,\"Sche_JSON_Sche_Enable\":0,\"Speedm_Tmp\":0.0,\"StartNode\":0,\"Sub_Warning_Code0\":0,\"Sys_Mode\":4,\"Task_Sch\":0,\"Task_State\":\"\",\"Update_Sch\":0,\"Update_State\":\"\",\"VehicleCtrlExpThrottle\":0,\"VehicleCtrlRealAltitude_mm\":998,\"VehicleCtrlRealCustomStateByte0\":0,\"VehicleCtrlRealCustomStateByte1\":0,\"VehicleCtrlRealCustomStateByte2\":0,\"VehicleCtrlRealCustomStateByte3\":0,\"VehicleCtrlRealGantryX_mm\":0,\"VehicleCtrlRealGantryY_mm\":0,\"VehicleCtrlRealJoyEnable\":0,\"VehicleCtrlRealRCEnable\":0,\"VehicleCtrl_CAN_Err_Info\":0,\"Vertical_Deviation_deg\":0.0,\"Warning_Code\":754529,\"header\":{\"frame_id\":\"\",\"seq\":1904,\"stamp\":{\"nsec\":160948865,\"sec\":1695633231}}}}";
}
JSONObject json = JSONObject.parseObject(result);
JSONObject jo = JSONObject.parseObject(json.getString("Msg_DisplayState"));
debugInfoJson.put("Msg_Timestamp", jo.getJSONObject("header").getJSONObject("stamp").getString("sec"));
debugInfoJson.put("AGV_ID", jo.getString("AGV_ID"));
debugInfoJson.put("Sys_Mode", jo.getString("Sys_Mode"));
debugInfoJson.put("screen", jo.getString("Remote_Or_HMI_Ctrl"));
debugInfoJson.put("tcs", jo.getString("CAD_Or_TCS_Ctrl"));
debugInfoJson.put("sche", jo.getString("Sche_JSON_Sche_Enable"));
debugInfoJson.put("rc", jo.getString("VehicleCtrlRealRCEnable"));
debugInfoJson.put("joy", jo.getString("VehicleCtrlRealJoyEnable"));
debugInfoJson.put("VehicleCtrlExpThrottle", jo.getString("VehicleCtrlExpThrottle"));
debugInfoJson.put("Warning_Code", jo.getString("Warning_Code"));
debugInfoJson.put("Car_Global_rx", jo.getString("Car_Global_rx"));
debugInfoJson.put("Car_Global_ry", jo.getString("Car_Global_ry"));
debugInfoJson.put("Car_Global_Theta", jo.getString("Car_Global_Theta"));
debugInfoJson.put("Lateral_Deviation_m", jo.getString("Lateral_Deviation_m"));
debugInfoJson.put("Vertical_Deviation_deg", jo.getString("Vertical_Deviation_deg"));
debugInfoJson.put("Out_Of_Path_Times", jo.getString("Out_Of_Path_Times"));
debugInfoJson.put("PLC_Warning_Code", jo.getString("PLC_Warning_Code"));
debugInfoJson.put("Min_Dist", jo.getString("Min_Dist"));
debugInfoJson.put("Auto_In_Line_State", jo.getString("Auto_In_Line_State"));
debugInfoJson.put("PathFollow_Enable", jo.getString("PathFollow_Enable"));
debugInfoJson.put("StartNode", jo.getString("StartNode"));
debugInfoJson.put("EndNode", jo.getString("EndNode"));
debugInfoJson.put("RealAutoChargeState", jo.getString("RealAutoChargeState"));
debugInfoJson.put("PWR_Percent", jo.getString("PWR_Percent"));
debugInfoJson.put("SVreal_angle", jo.getString("SVreal_angle"));
debugInfoJson.put("Speedm_Tmp", jo.getString("Speedm_Tmp"));
debugInfoJson.put("VehicleCtrlRealAltitude_mm", jo.getString("VehicleCtrlRealAltitude_mm"));
debugInfoJson.put("ReachState", jo.getString("ReachState"));
debugInfoJson.put("ObstacleDetectState", jo.getString("ObstacleDetectState"));
debugInfoJson.put("ObstacleTouchState", jo.getString("ObstacleTouchState"));
debugInfoJson.put("PWR_Warn", jo.getString("PWR_Warn"));
debugInfoJson.put("VehicleCtrl_CAN_Err_Info", jo.getString("VehicleCtrl_CAN_Err_Info"));
debugInfoJson.put("Curtis_Warning_Code_Speed", jo.getString("Curtis_Warning_Code_Speed"));
debugInfoJson.put("Curtis_Warning_Code_Steer", jo.getString("Curtis_Warning_Code_Steer"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte0", jo.getString("VehicleCtrlRealCustomStateByte0"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte1", jo.getString("VehicleCtrlRealCustomStateByte1"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte2", jo.getString("VehicleCtrlRealCustomStateByte2"));
debugInfoJson.put("VehicleCtrlRealCustomStateByte3", jo.getString("VehicleCtrlRealCustomStateByte3"));
debugInfoJson.put("MissionCompleteAltitude_mm_RemoteOrHMI_FB", jo.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB"));
debugInfoJson.put("LastAltitudeExpectValue_mm", jo.getString("LastAltitudeExpectValue_mm"));
debugInfoJson.put("Get_Nav350_Curr_Layer", jo.getString("Get_Nav350_Curr_Layer"));
debugInfoJson.put("Update_Sch", jo.getString("Update_Sch"));
debugInfoJson.put("Update_State", jo.getString("Update_State"));
debugInfoJson.put("Task_Sch", jo.getString("Task_Sch"));
debugInfoJson.put("Task_State", jo.getString("Task_State"));
debugInfoJson.put("PFC_Sch", jo.getString("PFC_Sch"));
debugInfoJson.put("PFC_State", jo.getString("PFC_State"));
debugInfoJson.put("License_Info", jo.getString("License_Info"));
debugInfoJson.put("Env_CustomName", jo.getString("Env_CustomName"));
debugInfoJson.put("Env_VehicleType", jo.getString("Env_VehicleType"));
debugInfoJson.put("Env_SoftwareVersion", jo.getString("Env_SoftwareVersion"));
debugInfoJson.put("Remote_Or_HMI_Ctrl", jo.getString("Remote_Or_HMI_Ctrl"));
debugInfoJson.put("CAD_Or_TCS_Ctrl", jo.getString("CAD_Or_TCS_Ctrl"));
debugInfoJson.put("Sche_JSON_Sche_Enable", jo.getString("Sche_JSON_Sche_Enable"));
debugInfoJson.put("VehicleCtrlRealRCEnable", jo.getString("VehicleCtrlRealRCEnable"));
debugInfoJson.put("VehicleCtrlRealJoyEnable", jo.getString("VehicleCtrlRealJoyEnable"));
debugInfoJson.put("CurNodeID", jo.getString("CurNodeID"));
//handleTaskStatus;
}
public JSONObject qeryDebuggerInfoQuick() {
private void qeryDebuggerInfoQuick() {
//todo RosJons模拟数据用正式需改回
//String result1 = HttpUtil.get("http://localhost:8011/api/pcsIfPurchaseorder/queryApt");
try {
Map<String, String> urlInfo = RosUtil.getRosHostInfo();
String result;
if ("prod".equals(isProd)) {
result = HttpUtil.get(urlInfo.get("javaUrl"));
} else {
result = "{\"Msg_DisplayState\":{\"AGV_ID\":255,\"Auto_In_Line_State\":0,\"Bosch_Car_Global_Theta\":-90.19221757272916,\"Bosch_Car_Global_rx\":-1.0619603784858553,\"Bosch_Car_Global_ry\":0.0020978358374357303,\"Bosch_Loc_State\":-2,\"Bosch_No_Rec_State\":0,\"Bosch_raw_age\":0.01389455795288086,\"Bosch_raw_epoch\":1,\"Bosch_raw_locState\":-2,\"Bosch_raw_qw\":0.9999999908132869,\"Bosch_raw_qx\":0.0,\"Bosch_raw_qy\":0.0,\"Bosch_raw_qz\":0.00013554861104682667,\"Bosch_raw_timestamp\":1695633231.1093392,\"Bosch_raw_uniqueId\":0,\"Bosch_raw_x\":0.0008994877773440588,\"Bosch_raw_x_odo\":0.0008994877773440588,\"Bosch_raw_y\":0.0006906610801896382,\"Bosch_raw_y_odo\":0.0006906610801896382,\"Bosch_raw_yaw\":0.00027109722292381746,\"Bosch_raw_yaw_odo\":0.0006906610801896382,\"Bosch_raw_z\":0.0,\"CAD_Or_TCS_Ctrl\":0,\"Car_Global_Theta\":-90.19221757272916,\"Car_Global_rx\":-1.0619603784858553,\"Car_Global_ry\":0.0020978358374357303,\"CurNodeID\":11,\"Cur_Stop_Info1_Authorized_Pass\":1,\"Cur_Stop_Info1_High_Precious_Enable\":1,\"Cur_Stop_Info1_Reached_Stop\":0,\"Cur_Stop_Info1_Set_Patht\":0.0,\"Cur_Stop_Info1_Set_Pathx\":0.0,\"Cur_Stop_Info1_Set_Pathy\":0.0,\"Cur_Stop_Info1_Single_Request_Sch\":0,\"Cur_Stop_Info1_Single_Stop_Sch\":0,\"Cur_Stop_Info1_StopEndNode\":0,\"Cur_Stop_Info1_StopStartNode\":0,\"Cur_Stop_Info1_Stop_Endt\":0.0,\"Cur_Stop_Info1_Stop_Endx\":0.0,\"Cur_Stop_Info1_Stop_Endy\":0.0,\"Cur_Stop_Info1_Stop_Num\":0,\"Cur_Stop_Info2_Authorized_Pass\":1,\"Cur_Stop_Info2_High_Precious_Enable\":1,\"Cur_Stop_Info2_Reached_Stop\":0,\"Cur_Stop_Info2_Set_Patht\":0.0,\"Cur_Stop_Info2_Set_Pathx\":0.0,\"Cur_Stop_Info2_Set_Pathy\":0.0,\"Cur_Stop_Info2_Single_Request_Sch\":0,\"Cur_Stop_Info2_Single_Stop_Sch\":0,\"Cur_Stop_Info2_StopEndNode\":0,\"Cur_Stop_Info2_StopStartNode\":0,\"Cur_Stop_Info2_Stop_Endt\":0.0,\"Cur_Stop_Info2_Stop_Endx\":0.0,\"Cur_Stop_Info2_Stop_Endy\":0.0,\"Cur_Stop_Info2_Stop_Num\":0,\"Curtis_Warning_Code_Pump\":0,\"Curtis_Warning_Code_Speed\":82,\"Curtis_Warning_Code_Steer\":0,\"EndNode\":0,\"Env_CustomName\":\"NobleLift\",\"Env_HMIUseJavaApp\":\"true\",\"Env_LearnEnable\":\"true\",\"Env_Lu_ROS_IP2\":\"\",\"Env_SoftwareVersion\":\"[Version]Magic4.1[Info]2023_09_21_20_41_37_Lu_ROS_magic4_waypointab_v31\",\"Env_VehicleType\":\"PS10LMT_HuaHai\",\"Get_Nav350_Curr_Layer\":0,\"Language\":1022739087,\"LastAltitudeExpectValue_mm\":0,\"LastGantryXExpectValue_mm\":0,\"LastGantryYExpectValue_mm\":0,\"Lateral_Deviation_m\":0.0,\"License_Info\":\"EC060800FFFBEBBF 6B7685747EBC EC060800FFFBEBBF 6B7685747EBC 2021/8/26 13:46:47 2021/8/26 13:46:47 1 UserClass5 Magic4_1\",\"LindeAgwSteerCenterPivotPlateAng\":0,\"LindeAgwSteerErrorFlag\":0,\"LindeAgwSteerModeSelectorState\":0,\"LindeAgwTracLiftErrorFlag\":0,\"LindeAgwTracLiftModeSelectorState\":0,\"LindeDriveErrCode1\":0,\"LindeDriveErrCode2\":0,\"LindeDriveErrCode3\":0,\"LindeDriveErrCode4\":0,\"LindeLiftErrCode1\":0,\"LindeLiftErrCode2\":0,\"LindeLiftErrCode3\":0,\"LindeLiftErrCode4\":0,\"LindeSteerErrCode1\":0,\"LindeSteerErrCode2\":0,\"LindeSteerErrCode3\":0,\"LindeSteerErrCode4\":0,\"Login_Info\":\"\",\"Min_Dist\":0.0,\"MissionCompleteAltitude_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryX_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryY_mm_RemoteOrHMI_FB\":0,\"Navi_Method\":3,\"ObstacleDetectState\":0,\"ObstacleTouchState\":0,\"Out_Of_Path_Times\":0,\"PFC_Sch\":0,\"PFC_State\":\"[PathFollow_Control_Handle_WLANJSON][PathFollow_Schedule_WLANJSON=0]\\n\",\"PLC_Warning_Code\":0,\"PWR_Percent\":100,\"PWR_Warn\":0,\"PathFollow_Enable\":0,\"PathFollow_Expect_AltitudeCtrlEnable\":0,\"PathFollow_Expect_GantryXCtrlEnable\":0,\"PathFollow_Expect_GantryYCtrlEnable\":0,\"Plate_Check_Err_Code\":0,\"ReachState\":0,\"RealAutoChargeState\":0,\"Ref_std_rt\":0.0,\"Ref_std_rx\":0.0,\"Ref_std_ry\":0.0,\"Remote_Or_HMI_Ctrl\":1,\"SVreal_angle\":0.0,\"Sche_JSON_Sche_Enable\":0,\"Speedm_Tmp\":0.0,\"StartNode\":0,\"Sub_Warning_Code0\":0,\"Sys_Mode\":4,\"Task_Sch\":0,\"Task_State\":\"\",\"Update_Sch\":0,\"Update_State\":\"\",\"VehicleCtrlExpThrottle\":0,\"VehicleCtrlRealAltitude_mm\":998,\"VehicleCtrlRealCustomStateByte0\":0,\"VehicleCtrlRealCustomStateByte1\":0,\"VehicleCtrlRealCustomStateByte2\":0,\"VehicleCtrlRealCustomStateByte3\":0,\"VehicleCtrlRealGantryX_mm\":0,\"VehicleCtrlRealGantryY_mm\":0,\"VehicleCtrlRealJoyEnable\":0,\"VehicleCtrlRealRCEnable\":0,\"VehicleCtrl_CAN_Err_Info\":0,\"Vertical_Deviation_deg\":0.0,\"Warning_Code\":754529,\"header\":{\"frame_id\":\"\",\"seq\":1904,\"stamp\":{\"nsec\":160948865,\"sec\":1695633231}}}}";
}
JSONObject json = JSONObject.parseObject(result);
JSONObject jo = JSONObject.parseObject(json.getString("Msg_DisplayState"));
JSONObject debugInfoJsons = new JSONObject();
debugInfoJsons.put("PathFollow_Enable", jo.getString("PathFollow_Enable"));
debugInfoJsons.put("MissionCompleteAltitude_mm_RemoteOrHMI_FB", jo.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB"));
debugInfoJsons.put("CurNodeID", jo.getString("CurNodeID"));
return debugInfoJsons;
} catch (Exception e) {
Log.error("通信失败6:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
Map<String, String> urlInfo = RosUtil.getRosHostInfo();
String result;
if ("prod".equals(isProd)) {
result = HttpUtil.get(urlInfo.get("javaUrl"));
} else {
result = "{\"Msg_DisplayState\":{\"AGV_ID\":255,\"Auto_In_Line_State\":0,\"Bosch_Car_Global_Theta\":-90.19221757272916,\"Bosch_Car_Global_rx\":-1.0619603784858553,\"Bosch_Car_Global_ry\":0.0020978358374357303,\"Bosch_Loc_State\":-2,\"Bosch_No_Rec_State\":0,\"Bosch_raw_age\":0.01389455795288086,\"Bosch_raw_epoch\":1,\"Bosch_raw_locState\":-2,\"Bosch_raw_qw\":0.9999999908132869,\"Bosch_raw_qx\":0.0,\"Bosch_raw_qy\":0.0,\"Bosch_raw_qz\":0.00013554861104682667,\"Bosch_raw_timestamp\":1695633231.1093392,\"Bosch_raw_uniqueId\":0,\"Bosch_raw_x\":0.0008994877773440588,\"Bosch_raw_x_odo\":0.0008994877773440588,\"Bosch_raw_y\":0.0006906610801896382,\"Bosch_raw_y_odo\":0.0006906610801896382,\"Bosch_raw_yaw\":0.00027109722292381746,\"Bosch_raw_yaw_odo\":0.0006906610801896382,\"Bosch_raw_z\":0.0,\"CAD_Or_TCS_Ctrl\":0,\"Car_Global_Theta\":-90.19221757272916,\"Car_Global_rx\":-1.0619603784858553,\"Car_Global_ry\":0.0020978358374357303,\"CurNodeID\":11,\"Cur_Stop_Info1_Authorized_Pass\":1,\"Cur_Stop_Info1_High_Precious_Enable\":1,\"Cur_Stop_Info1_Reached_Stop\":0,\"Cur_Stop_Info1_Set_Patht\":0.0,\"Cur_Stop_Info1_Set_Pathx\":0.0,\"Cur_Stop_Info1_Set_Pathy\":0.0,\"Cur_Stop_Info1_Single_Request_Sch\":0,\"Cur_Stop_Info1_Single_Stop_Sch\":0,\"Cur_Stop_Info1_StopEndNode\":0,\"Cur_Stop_Info1_StopStartNode\":0,\"Cur_Stop_Info1_Stop_Endt\":0.0,\"Cur_Stop_Info1_Stop_Endx\":0.0,\"Cur_Stop_Info1_Stop_Endy\":0.0,\"Cur_Stop_Info1_Stop_Num\":0,\"Cur_Stop_Info2_Authorized_Pass\":1,\"Cur_Stop_Info2_High_Precious_Enable\":1,\"Cur_Stop_Info2_Reached_Stop\":0,\"Cur_Stop_Info2_Set_Patht\":0.0,\"Cur_Stop_Info2_Set_Pathx\":0.0,\"Cur_Stop_Info2_Set_Pathy\":0.0,\"Cur_Stop_Info2_Single_Request_Sch\":0,\"Cur_Stop_Info2_Single_Stop_Sch\":0,\"Cur_Stop_Info2_StopEndNode\":0,\"Cur_Stop_Info2_StopStartNode\":0,\"Cur_Stop_Info2_Stop_Endt\":0.0,\"Cur_Stop_Info2_Stop_Endx\":0.0,\"Cur_Stop_Info2_Stop_Endy\":0.0,\"Cur_Stop_Info2_Stop_Num\":0,\"Curtis_Warning_Code_Pump\":0,\"Curtis_Warning_Code_Speed\":82,\"Curtis_Warning_Code_Steer\":0,\"EndNode\":0,\"Env_CustomName\":\"NobleLift\",\"Env_HMIUseJavaApp\":\"true\",\"Env_LearnEnable\":\"true\",\"Env_Lu_ROS_IP2\":\"\",\"Env_SoftwareVersion\":\"[Version]Magic4.1[Info]2023_09_21_20_41_37_Lu_ROS_magic4_waypointab_v31\",\"Env_VehicleType\":\"PS10LMT_HuaHai\",\"Get_Nav350_Curr_Layer\":0,\"Language\":1022739087,\"LastAltitudeExpectValue_mm\":0,\"LastGantryXExpectValue_mm\":0,\"LastGantryYExpectValue_mm\":0,\"Lateral_Deviation_m\":0.0,\"License_Info\":\"EC060800FFFBEBBF 6B7685747EBC EC060800FFFBEBBF 6B7685747EBC 2021/8/26 13:46:47 2021/8/26 13:46:47 1 UserClass5 Magic4_1\",\"LindeAgwSteerCenterPivotPlateAng\":0,\"LindeAgwSteerErrorFlag\":0,\"LindeAgwSteerModeSelectorState\":0,\"LindeAgwTracLiftErrorFlag\":0,\"LindeAgwTracLiftModeSelectorState\":0,\"LindeDriveErrCode1\":0,\"LindeDriveErrCode2\":0,\"LindeDriveErrCode3\":0,\"LindeDriveErrCode4\":0,\"LindeLiftErrCode1\":0,\"LindeLiftErrCode2\":0,\"LindeLiftErrCode3\":0,\"LindeLiftErrCode4\":0,\"LindeSteerErrCode1\":0,\"LindeSteerErrCode2\":0,\"LindeSteerErrCode3\":0,\"LindeSteerErrCode4\":0,\"Login_Info\":\"\",\"Min_Dist\":0.0,\"MissionCompleteAltitude_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryX_mm_RemoteOrHMI_FB\":0,\"MissionCompleteGantryY_mm_RemoteOrHMI_FB\":0,\"Navi_Method\":3,\"ObstacleDetectState\":0,\"ObstacleTouchState\":0,\"Out_Of_Path_Times\":0,\"PFC_Sch\":0,\"PFC_State\":\"[PathFollow_Control_Handle_WLANJSON][PathFollow_Schedule_WLANJSON=0]\\n\",\"PLC_Warning_Code\":0,\"PWR_Percent\":99,\"PWR_Warn\":0,\"PathFollow_Enable\":0,\"PathFollow_Expect_AltitudeCtrlEnable\":0,\"PathFollow_Expect_GantryXCtrlEnable\":0,\"PathFollow_Expect_GantryYCtrlEnable\":0,\"Plate_Check_Err_Code\":0,\"ReachState\":0,\"RealAutoChargeState\":0,\"Ref_std_rt\":0.0,\"Ref_std_rx\":0.0,\"Ref_std_ry\":0.0,\"Remote_Or_HMI_Ctrl\":1,\"SVreal_angle\":0.0,\"Sche_JSON_Sche_Enable\":0,\"Speedm_Tmp\":0.0,\"StartNode\":0,\"Sub_Warning_Code0\":0,\"Sys_Mode\":4,\"Task_Sch\":0,\"Task_State\":\"\",\"Update_Sch\":0,\"Update_State\":\"\",\"VehicleCtrlExpThrottle\":0,\"VehicleCtrlRealAltitude_mm\":998,\"VehicleCtrlRealCustomStateByte0\":0,\"VehicleCtrlRealCustomStateByte1\":0,\"VehicleCtrlRealCustomStateByte2\":0,\"VehicleCtrlRealCustomStateByte3\":0,\"VehicleCtrlRealGantryX_mm\":0,\"VehicleCtrlRealGantryY_mm\":0,\"VehicleCtrlRealJoyEnable\":0,\"VehicleCtrlRealRCEnable\":0,\"VehicleCtrl_CAN_Err_Info\":0,\"Vertical_Deviation_deg\":0.0,\"Warning_Code\":754529,\"header\":{\"frame_id\":\"\",\"seq\":1904,\"stamp\":{\"nsec\":160948865,\"sec\":1695633231}}}}";
}
JSONObject json = JSONObject.parseObject(result);
JSONObject jo = JSONObject.parseObject(json.getString("Msg_DisplayState"));
debugInfoJsonQuick.put("PathFollow_Enable", jo.getString("PathFollow_Enable"));
debugInfoJsonQuick.put("Sys_Mode", jo.getString("Sys_Mode"));
debugInfoJsonQuick.put("PWR_Percent", jo.getString("PWR_Percent"));
debugInfoJsonQuick.put("MissionCompleteAltitude_mm_RemoteOrHMI_FB", jo.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB"));
}
@Transactional(rollbackFor = Exception.class)
public void handleTaskStatus() {
JSONObject debugInfoJsons = qeryDebuggerInfoQuick();
JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0);
qeryDebuggerInfoQuick();
//小车停止,且已到达目标点位
if (ObjectUtil.isNotEmpty(taskjo) && StrUtil.equals("0", debugInfoJsons.getString("PathFollow_Enable")) && debugInfoJsons.getString("CurNodeID").equals(taskjo.getString("next_point_code"))) {
if (ObjectUtil.isNotEmpty(taskjo) && StrUtil.equals("0", debugInfoJsonQuick.getString("PathFollow_Enable")) && debugInfoJsonQuick.getString("CurNodeID").equals(taskjo.getString("next_point_code"))) {
//叉腿高度
String legHeight = debugInfoJsons.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB") == null ? "0" : debugInfoJsons.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB");
String legHeight = debugInfoJsonQuick.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB") == null ? "0" : debugInfoJsonQuick.getString("MissionCompleteAltitude_mm_RemoteOrHMI_FB");
//legHeight = "20";
//普通任务
if (TaskTypeEnum.COMMON.getCode().equals(taskjo.getString("task_type"))) {
@@ -710,9 +586,9 @@ public class HomeServiceImpl implements HomeService {
String error = TaskSendBackStatusEnum.getName(resultflag);
}
}
debugInfoJsons = qeryDebuggerInfoQuick();
qeryDebuggerInfoQuick();
//叉腿抬高动作已下发且高度为10或20且待机发送返程任务
if (((Integer.parseInt(legHeight) == 20)) && StrUtil.equals("0", debugInfoJsons.getString("PathFollow_Enable")) && "0".equals(taskjo.getString("step"))) {
if (((Integer.parseInt(legHeight) == 20)) && StrUtil.equals("0", debugInfoJsonQuick.getString("PathFollow_Enable")) && "0".equals(taskjo.getString("step"))) {
createReturnTask(taskjo);
}
} else {
@@ -729,9 +605,9 @@ public class HomeServiceImpl implements HomeService {
String error = TaskSendBackStatusEnum.getName(resultflag);
}
}
debugInfoJsons = qeryDebuggerInfoQuick();
qeryDebuggerInfoQuick();
//叉腿抬高动作已下发且高度为10或20且待机发送返程任务
if (((Integer.parseInt(legHeight) == 10)) && StrUtil.equals("0", debugInfoJsons.getString("PathFollow_Enable")) && "0".equals(taskjo.getString("step"))) {
if (((Integer.parseInt(legHeight) == 10)) && StrUtil.equals("0", debugInfoJsonQuick.getString("PathFollow_Enable")) && "0".equals(taskjo.getString("step"))) {
createReturnTask(taskjo);
}
}
@@ -802,7 +678,160 @@ public class HomeServiceImpl implements HomeService {
//System.out.println("花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
}
// public Map<String, Object> queryHomePage1(Map<String, String> jsonObject) {
// String button_code = "";
// String button_name = "";
// String agvrun_status_name = "";
// String automatic_status_name = "";
// String device_info = "";
// String task_name = "";
// String task_info = "";
// Integer electric = 0;
// String speed = "";
// String error_name = "正常运行";
// JSONObject returnjo = new JSONObject();
// JSONObject row = new JSONObject();
// try {
// //查询调试信息
// CompletableFuture.runAsync(this::qeryDebuggerInfo, pool);
// JSONObject tasking = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and task_type!='2'").uniqueResult(0);
// // 1 无任务 2 有任务未执行 3 执行中
// String task_status = "";
// //1确认完成 2确认完成继续下个任务3继续搬运4返回休息点
// String date = DateUtil.today();
// if (tasking == null) {
// task_status = "无任务";
// }
// //JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type!='2'").uniqueResult(0);
// JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type!='2' order by seq_num ").uniqueResult(0);
// if (tasked != null) {
// task_status = "有任务未执行";
// }
// if (tasking != null) {
// task_status = "执行中";
// task_name = "任务号:" + tasking.getString("task_code");
// task_info = "目标点:" + tasking.getString("next_point_code");
// }
// // else if(tasked!=null)
// // {
// // task_name = "任务号:" + tasked.getString("task_code");
// // task_info = "目标点:" + tasked.getString("next_point_code");
// // }
// JSONObject unManFinishTask = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='02' and is_manualfinished='0'and task_type!='2'").uniqueResult(0);
// //没有未执行任务,且需要人工完成
// if (unManFinishTask != null && tasked == null) {
// button_code = "1";
// button_name = "确认完成";
// }
// //存在未执行任务,且需要人工完成当前任务
// if (unManFinishTask != null && tasked != null) {
// button_code = "2";
// button_name = "确认完成继续下个任务";
// }
// //任务都完成了,但是还有未完成的任务
// if (unManFinishTask == null && tasked != null) {
// button_code = "3";
// button_name = "继续搬运";
// }
// //不存在需要人工完成的任务,且不存在未完成的任务
// if (unManFinishTask == null && tasked == null) {
// button_code = "4";
// button_name = "返回休息点";
// //假如所有的任务都完成,包括返回休息点的任务,且最后一个完成任务的时间是返回休息电的任务也不显示
// JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 ", "update_time desc").uniqueResult(0);
// if (doingtaskjo != null && "2".equals(doingtaskjo.getString("task_type"))) {
// button_code = "";
// button_name = "";
// }
// }
// //假如有执行中的任务,则不显示
// JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and is_manualfinished='0'").uniqueResult(0);
// if (doingtaskjo != null) {
// button_code = "";
// button_name = "";
// }
// String task_num = "待执行0";
// //分母 今天所有的任务,分子今天未完成的任务
// JSONArray alltaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type!='2' and date ='" + date + "'").getResultJSONArray(0);
// if (alltaskja.size() > 0) {
// JSONArray todaytaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type!='2' and date ='" + date + "' and task_status='00'").getResultJSONArray(0);
// String alltask_num = String.valueOf(alltaskja.size());
// String todaytask_num = String.valueOf(todaytaskja.size());
// task_num = "待执行" + todaytask_num + "/" + alltask_num;
// }
// if (debugInfoJson.size() > 0) {
// //车辆运行还是待机是PathFollow_Enable 1为运行 0为待机
// String agvrun_status = debugInfoJson.getString("PathFollow_Enable");
// if (StrUtil.equals(agvrun_status, "1")) {
// automatic_status_name = "运行";
// }
// if (StrUtil.equals(agvrun_status, "0")) {
// automatic_status_name = "待机";
// }
// //手自动是Sys_Mode 3 REMA手动 4自动 5 IO手持方式的手动这个车不装
// String automatic_status = debugInfoJson.getString("Sys_Mode");
// if (StrUtil.equals(automatic_status, "3")) {
// agvrun_status_name = "手动";
// }
// if (StrUtil.equals(automatic_status, "4")) {
// agvrun_status_name = "自动";
// }
// if (StrUtil.equals(automatic_status, "5")) {
// agvrun_status_name = "IO";
// }
// //速度
// speed = debugInfoJson.getString("Speedm_Tmp") == null ? "0" : debugInfoJson.getString("Speedm_Tmp");
// BigDecimal e = new BigDecimal(speed).setScale(3, RoundingMode.HALF_UP);
// row.put("speed", e + "m/s");
// //agv状态枚举
// row.put("agvrun_status", agvrun_status);
// //agv状态名称1为运行 0为待机
// row.put("agvrun_status_name", agvrun_status_name);
// //agv操纵枚举
// row.put("automatic_status", automatic_status);
// //agv操纵名称3 REMA手动 4自动
// row.put("automatic_status_name", automatic_status_name);
// //假如电量低于30 ,则返回休息电
// electric = debugInfoJson.getInteger("PWR_Percent");
// //电量
// row.put("electric", electric);
// if (electric < 30) {
// button_code = "4";
// button_name = "返回休息点";
// }
// String Env_CustomName = debugInfoJson.getString("Env_CustomName");
// String Env_VehicleType = debugInfoJson.getString("Env_VehicleType");
// //设备名称
// device_info = Env_CustomName + Env_VehicleType;
// }
// ErrorServiceImpl errorServiceImpl = new ErrorServiceImpl();
// Map error = errorServiceImpl.querryError(null);
// JSONArray errorResult = JSONArray.parseArray(JSON.toJSONString(error.get("result")));
// if (errorResult.size() > 0) {
// error_name = errorResult.getJSONObject(0).getString("error_name");
// }
// //row.put("agv_error", (String) error.get("error_status"));
// //故障信息
// row.put("error_name", error_name);
// //设备信息
// row.put("device_info", device_info);
// //任务状态
// row.put("task_status", task_status);
// //当前任务
// row.put("task_name", task_name);
// row.put("task_info", task_info);
// row.put("task_num", task_num);
// row.put("button_code", button_code);
// row.put("button_name", button_name);
// returnjo.put("code", "1");
// returnjo.put("desc", LangUtils.getMsgLanguage("OperationSuccess", null));
// returnjo.put("result", row);
// return returnjo;
// } catch (Exception e) {
// Log.error("通信失败3:" + e.getMessage());
// throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
// }
// }
// public void QueryDebuggerInfo2() {
// debugInfoJson = new JSONObject();
// Ros ros = RosUtil.getRos();

View File

@@ -24,6 +24,7 @@ import cn.hutool.core.util.StrUtil;
import edu.wpi.rail.jrosbridge.services.ServiceResponse;
import lombok.RequiredArgsConstructor;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.agv.enu.TaskTypeEnum;
import org.nl.agv.service.TaskService;
@@ -44,15 +45,18 @@ import static org.nl.common.utils.LangUtils.getLanguage;
* @author zhanghouying
* @date 2019-08-24
*/
@Slf4j
@Service
@RequiredArgsConstructor
@EnableScheduling
public class TaskServiceServiceImpl implements TaskService {
public static JSONObject pointJson = new JSONObject();
/**
* 获取点位
*/
@Override
public Map<String, Object> queryPoint(Map<String, String> jsonObject) {
JSONObject jsonObject1 = new JSONObject();
JSONObject returnjo = new JSONObject();
try {
String rest_pointcode = "";
@@ -82,73 +86,20 @@ public class TaskServiceServiceImpl implements TaskService {
}
arr.add(row);
}
jsonObject1.put("result_info", result_info);
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("QuerySuccess", null));
returnjo.put("rest_pointcode", rest_pointcode);
returnjo.put("result", arr);
} catch (Exception ex) {
String error = ex.getMessage();
} catch (Exception e) {
log.error("queryPoint-获取点位:{}",e.getMessage());
throw new BadRequestException(e.getMessage() == null ? "queryPoint:" + LangUtils.getMsgLanguage("CommunicationFail", null) :"queryPoint:" + e.getMessage());
}
return returnjo;
}
// @Override
// public Map<String, Object> confirmPoint1(Map<String, String> jsonObject) {
// String pointCode = jsonObject.get("point_code");
// JSONObject returnjo = new JSONObject();
// if (StrUtil.isEmpty(pointCode)) {
// throw new BadRequestException("站点不能为空!");
// }
// //查询未完成的指令有多少条
// int num = WQL.getWO("QAGVERROR").addParam("flag", "3").process().uniqueResult(0).getInteger("num");
// //查询最多的任务数量
// int maxTaskNum = WQLObject.getWQLObject("ST_SYSTEM_PARAM").query("1=1").uniqueResult(0).getInteger("max_task_num");
// if (num >= maxTaskNum) {
// returnjo.put("code", "1");
// returnjo.put("desc", "未执行的任务数量达到上限!");
// return returnjo;
// }
// JSONObject taskjo = new JSONObject();
// int seqNum = 1;
// String task_status = "00";
// String task_status_name = "生成未执行";
// //查询未完成最大的顺序号
// JSONObject taskrow = WQLObject.getWQLObject("ST_TASK_INFO").query("is_manualfinished=0", "seq_num desc").uniqueResult(0);
// if (ObjectUtil.isNotEmpty(taskrow)) {
// seqNum = taskrow.getInteger("seq_num") + 1;
// }
// if (ObjectUtil.isEmpty(taskrow)) {
// //只有第一条下发给agv
// String a = "HMIStepOrRTPathFollow:0;" + pointCode + ";1#";
// ServiceResponse send = sendToAgvUtil.send(a);
// JSONObject resjo = JSONObject.parseObject(send.toString());
// if (StrUtil.equals("0", resjo.getString("result"))) {
// task_status_name = "执行中";
// task_status = "01";
// }
// JSONObject change = sendToAgvUtil.change(pointCode);
// //sendToAgvUtil.sendtask(change.getString("first"), change.getString("last"));
// }
// taskjo.put("task_uuid", IdUtil.simpleUUID());
// taskjo.put("task_code", CodeUtil.getNewCode("TASK_NO"));
// taskjo.put("task_status", task_status);
// taskjo.put("task_status_name", task_status_name);
// taskjo.put("next_point_code", pointCode);
// taskjo.put("task_type", "1");
// taskjo.put("is_delete", "0");
// taskjo.put("seq_num", seqNum);
// taskjo.put("date", DateUtil.today());
// taskjo.put("create_time", DateUtil.now());
// taskjo.put("is_agvfinished", "0");
// taskjo.put("is_manualfinished", "0");
// taskjo.put("create_by", SecurityUtils.getCurrentNickName());
// WQLObject.getWQLObject("ST_TASK_INFO").insert(taskjo);
// returnjo.put("code", "1");
// returnjo.put("desc", "新增成功!");
// return returnjo;
// }
/**
* 下发任务
*/
@Override
public Map<String, Object> confirmPoint(Map<String, String> jsonObject) {
String point_code = jsonObject.get("point_code");
@@ -256,9 +207,9 @@ public class TaskServiceServiceImpl implements TaskService {
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("OperationSuccess", null));
return returnjo;
} catch (Exception ex) {
String error = ex.getMessage();
throw new BadRequestException(ex.getMessage());
} catch (Exception e) {
log.error("confirmPoint-下发任务:{}",e.getMessage());
throw new BadRequestException(e.getMessage() == null ? "confirmPoint:" + LangUtils.getMsgLanguage("CommunicationFail", null) : "confirmPoint:" + e.getMessage());
}
}
@@ -297,7 +248,7 @@ public class TaskServiceServiceImpl implements TaskService {
@Override
public Map<String, Object> deleteTask(Map<String, String> jsonObject) {
String task_num = (String) jsonObject.get("task_num");
String task_num = jsonObject.get("task_num");
JSONObject returnjo = new JSONObject();
if (StrUtil.isEmpty(task_num)) {
returnjo.put("code", "0");
@@ -366,6 +317,62 @@ public class TaskServiceServiceImpl implements TaskService {
return returnjo;
}
// @Override
// public Map<String, Object> confirmPoint1(Map<String, String> jsonObject) {
// String pointCode = jsonObject.get("point_code");
// JSONObject returnjo = new JSONObject();
// if (StrUtil.isEmpty(pointCode)) {
// throw new BadRequestException("站点不能为空!");
// }
// //查询未完成的指令有多少条
// int num = WQL.getWO("QAGVERROR").addParam("flag", "3").process().uniqueResult(0).getInteger("num");
// //查询最多的任务数量
// int maxTaskNum = WQLObject.getWQLObject("ST_SYSTEM_PARAM").query("1=1").uniqueResult(0).getInteger("max_task_num");
// if (num >= maxTaskNum) {
// returnjo.put("code", "1");
// returnjo.put("desc", "未执行的任务数量达到上限!");
// return returnjo;
// }
// JSONObject taskjo = new JSONObject();
// int seqNum = 1;
// String task_status = "00";
// String task_status_name = "生成未执行";
// //查询未完成最大的顺序号
// JSONObject taskrow = WQLObject.getWQLObject("ST_TASK_INFO").query("is_manualfinished=0", "seq_num desc").uniqueResult(0);
// if (ObjectUtil.isNotEmpty(taskrow)) {
// seqNum = taskrow.getInteger("seq_num") + 1;
// }
// if (ObjectUtil.isEmpty(taskrow)) {
// //只有第一条下发给agv
// String a = "HMIStepOrRTPathFollow:0;" + pointCode + ";1#";
// ServiceResponse send = sendToAgvUtil.send(a);
// JSONObject resjo = JSONObject.parseObject(send.toString());
// if (StrUtil.equals("0", resjo.getString("result"))) {
// task_status_name = "执行中";
// task_status = "01";
// }
// JSONObject change = sendToAgvUtil.change(pointCode);
// //sendToAgvUtil.sendtask(change.getString("first"), change.getString("last"));
// }
// taskjo.put("task_uuid", IdUtil.simpleUUID());
// taskjo.put("task_code", CodeUtil.getNewCode("TASK_NO"));
// taskjo.put("task_status", task_status);
// taskjo.put("task_status_name", task_status_name);
// taskjo.put("next_point_code", pointCode);
// taskjo.put("task_type", "1");
// taskjo.put("is_delete", "0");
// taskjo.put("seq_num", seqNum);
// taskjo.put("date", DateUtil.today());
// taskjo.put("create_time", DateUtil.now());
// taskjo.put("is_agvfinished", "0");
// taskjo.put("is_manualfinished", "0");
// taskjo.put("create_by", SecurityUtils.getCurrentNickName());
// WQLObject.getWQLObject("ST_TASK_INFO").insert(taskjo);
// returnjo.put("code", "1");
// returnjo.put("desc", "新增成功!");
// return returnjo;
// }
// public static String getLanguage(String type, String langDefined) {
// String lang = StringUtils.isBlank(langDefined) ? LocaleContextHolder.getLocale().getLanguage() : langDefined;
// String name = "";

View File

@@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSONObject;
import com.esotericsoftware.minlog.Log;
import edu.wpi.rail.jrosbridge.services.ServiceResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.agv.enu.EnEnum;
import org.nl.agv.enu.LanguageEnum;
@@ -45,6 +46,7 @@ import static org.nl.common.utils.LangUtils.getLanguage;
* @author qinx
* @date 2019-08-24
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class VehicleInfoServiceImpl implements VehicleInfoService {
@@ -90,72 +92,77 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
return returnjo;
}
@Override
public Map<String, Object> queryControlStatus(Map<String, String> jsonObject) {
return null;
}
/**
* 车辆控制操作
*/
@Override
public Map<String, Object> Shut_down(Map<String, String> jsonObject) {
ServiceResponse response = new ServiceResponse();
// 1-关机、2-显示屏控制、3-TCS控制、4-RC控制、5-Joy控制
if (ObjectUtil.isNotEmpty(jsonObject)) {
String enable = "0".equals(jsonObject.get("bool")) ? "false#" : "true#";
VehicleOperateEnum status = VehicleOperateEnum.getType(jsonObject.get("type"));
switch (status) {
//关机
case OFF:
response = sendToAgvUtil.send("PowerOff");
break;
case SCREEN:
response = sendToAgvUtil.send("Remote_Or_HMI_Ctrl:" + enable);
break;
case TCS:
response = sendToAgvUtil.send("CAD_Or_TCS_Ctrl:" + enable);
break;
case SCHE:
response = sendToAgvUtil.send("Sche_JSON_Sche_Enable:" + enable);
break;
case RC:
response = sendToAgvUtil.send("VehicleCtrlRealRCEnable:" + enable);
break;
case JOY:
response = sendToAgvUtil.send("VehicleCtrlRealJoyEnable:" + enable);
break;
//退出
case QUITNOW:
response = sendToAgvUtil.send("QuitNow");
break;
//软启动(任务重置)
case REBORNINIT:
response = sendToAgvUtil.send("HMIRebornInitNow");
break;
//跳过起点
case STARTCHECK:
response = sendToAgvUtil.send("HMIStartCheckNow");
break;
//重启
case REBOOT:
response = sendToAgvUtil.send("PowerReboot");
break;
//全屏
case FULL:
response = sendToAgvUtil.send("FullScreenNow");
break;
//跳过托盘检测
case SKIPPLATE:
response = sendToAgvUtil.send("SkipPlateCheckNow");
break;
default:
break;
try {
ServiceResponse response = new ServiceResponse();
// 1-关机、2-显示屏控制、3-TCS控制、4-RC控制、5-Joy控制
if (ObjectUtil.isNotEmpty(jsonObject)) {
String enable = "0".equals(jsonObject.get("bool")) ? "false#" : "true#";
VehicleOperateEnum status = VehicleOperateEnum.getType(jsonObject.get("type"));
switch (status) {
//关机
case OFF:
response = sendToAgvUtil.send("PowerOff");
break;
case SCREEN:
response = sendToAgvUtil.send("Remote_Or_HMI_Ctrl:" + enable);
break;
case TCS:
response = sendToAgvUtil.send("CAD_Or_TCS_Ctrl:" + enable);
break;
case SCHE:
response = sendToAgvUtil.send("Sche_JSON_Sche_Enable:" + enable);
break;
case RC:
response = sendToAgvUtil.send("VehicleCtrlRealRCEnable:" + enable);
break;
case JOY:
response = sendToAgvUtil.send("VehicleCtrlRealJoyEnable:" + enable);
break;
//退出
case QUITNOW:
response = sendToAgvUtil.send("QuitNow");
break;
//软启动(任务重置)
case REBORNINIT:
response = sendToAgvUtil.send("HMIRebornInitNow");
break;
//跳过起点
case STARTCHECK:
response = sendToAgvUtil.send("HMIStartCheckNow");
break;
//重启
case REBOOT:
response = sendToAgvUtil.send("PowerReboot");
break;
//全屏
case FULL:
response = sendToAgvUtil.send("FullScreenNow");
break;
//跳过托盘检测
case SKIPPLATE:
response = sendToAgvUtil.send("SkipPlateCheckNow");
break;
default:
break;
}
}
String code = "0".equals(response.toJsonObject().get("result").toString()) ? "1" : "0";
String desc = "0".equals(response.toJsonObject().get("result").toString()) ? LangUtils.getMsgLanguage("OperationSuccess", null) : LangUtils.getMsgLanguage("OperationFailed", null);
JSONObject returnjo = new JSONObject();
returnjo.put("code", code);
returnjo.put("desc", desc);
return returnjo;
} catch (Exception e) {
log.error("Shut_down-车辆控制操作:{}", e.getMessage());
throw new BadRequestException(e.getMessage() == null ? "Shut_down:" + LangUtils.getMsgLanguage("CommunicationFail", null) : "Shut_down:" + e.getMessage());
}
String code = "0".equals(response.toJsonObject().get("result").toString()) ? "1" : "0";
String desc = "0".equals(response.toJsonObject().get("result").toString()) ? LangUtils.getMsgLanguage("OperationSuccess", null) : LangUtils.getMsgLanguage("OperationFailed", null);
JSONObject returnjo = new JSONObject();
returnjo.put("code", code);
returnjo.put("desc", desc);
return returnjo;
}
@Override
@@ -187,6 +194,9 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
return returnjo;
}
/**
* 查询车辆状态
*/
@Override
public Map<String, Object> queryVehicleStatus(Map<String, String> jsonObject) {
JSONObject row = new JSONObject();
@@ -210,8 +220,7 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
zh_working_status = getLanguage("Abnormal", "zh");
en_working_status = getLanguage("Abnormal", "en");
}
// 车辆运行还是待机是PathFollow_Enable 1为运行 0为待机
// 车辆运行还是待机是PathFollow_Enable 1为运行 0为待机
String PathFollow_Enable = debugInfoJson.getString("PathFollow_Enable");
if (StrUtil.equals(PathFollow_Enable, "0")) {
vehicle_status = getLanguage("Standby", null);
@@ -255,8 +264,8 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
returnjo.put("result", row);
return returnjo;
} catch (Exception e) {
Log.error("通信失败2:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
log.error("queryVehicleStatus-查询车辆状态:{}", e.getMessage());
throw new BadRequestException(e.getMessage() == null ? "queryVehicleStatus:" + LangUtils.getMsgLanguage("CommunicationFail", null) : "queryVehicleStatus:" + e.getMessage());
}
}
@@ -273,7 +282,7 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
String speedStop_status = "0";
// 安全触边
String securityTentacle_status = "0";
// 超声波报警
// 传感器停车
String ultrasonic_status = "0";
//ObstacleTouchState bit0 为 叉腿端部的安全开关触发信号 1 触发 0 未触发
//ObstacleTouchState bit1 为 触边条安全开关触发信号 1 触发 0 未触发
@@ -282,56 +291,51 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
//ObstacleTouchState bit4 为导航雷达pfr2000或NAV350 防护触发信号 1 触发 0 未触发
JSONObject returnjo = new JSONObject();
JSONObject row = new JSONObject();
try {
JSONObject debugInfoJson = HomeServiceImpl.debugInfoJson;
int ObstacleTouchState = debugInfoJson.getInteger("ObstacleTouchState");
//int ObstacleTouchState = 524305;
//todo 用,正式需改回
int ObstacleDetectState = debugInfoJson.getInteger("ObstacleDetectState");
int VehicleCtrlRealCustomStateByte0 = debugInfoJson.getInteger("VehicleCtrlRealCustomStateByte0");
//避障停车
if (ObstacleDetectState % 2 == 1) {
speedStop_status = "1";
}
//避障减速
if ((ObstacleDetectState >> 1) % 2 == 1) {
speedReduction_status = "1";
}
//todo 测试,待调试修改回来
//复位按钮
// if(VehicleCtrlRealCustomStateByte0 % 2 == 1) {
// resetButton_status = "1";
// }
//todo 超声波报警测试,待调试修改回来
if (ObstacleTouchState % 2 == 1) {
ultrasonic_status = "1";
}
//安全触边
if ((ObstacleTouchState >> 1) % 2 == 1) {
securityTentacle_status = "1";
}
////急停按钮
if ((ObstacleTouchState >> 2) % 2 == 1) {
stopButton_status = "1";
}
// if ((ObstacleTouchState >> 3) % 2 == 1) {
// }
// if ((ObstacleTouchState >> 4) % 2 == 1) {
// }
row.put("stopButton_status", stopButton_status);
row.put("speedReduction_status", speedReduction_status);
row.put("resetButton_status", resetButton_status);
row.put("speedStop_status", speedStop_status);
row.put("ultrasonic_status", ultrasonic_status);
row.put("securityTentacle_status", securityTentacle_status);
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("QuerySuccess", null));
returnjo.put("result", row);
return returnjo;
} catch (Exception e) {
Log.error("通信失败querrySensor:" + e.getMessage());
throw new BadRequestException(e.getMessage() == null ? LangUtils.getMsgLanguage("CommunicationFail", null) : e.getMessage());
JSONObject debugInfoJson = HomeServiceImpl.debugInfoJson;
int ObstacleTouchState = debugInfoJson.getInteger("ObstacleTouchState");
//int ObstacleTouchState = 524305;
//todo 用,正式需改回
int ObstacleDetectState = debugInfoJson.getInteger("ObstacleDetectState");
int VehicleCtrlRealCustomStateByte0 = debugInfoJson.getInteger("VehicleCtrlRealCustomStateByte0");
//避障停车
if (ObstacleDetectState % 2 == 1) {
speedStop_status = "1";
}
//避障减速
if ((ObstacleDetectState >> 1) % 2 == 1) {
speedReduction_status = "1";
}
//todo 测试,待调试修改回来
//复位按钮
// if(VehicleCtrlRealCustomStateByte0 % 2 == 1) {
// resetButton_status = "1";
// }
//todo 传感器停车,待调试修改回来
if (ObstacleTouchState % 2 == 1) {
ultrasonic_status = "1";
}
//安全触边
if ((ObstacleTouchState >> 1) % 2 == 1) {
securityTentacle_status = "1";
}
////急停按钮
if ((ObstacleTouchState >> 2) % 2 == 1) {
stopButton_status = "1";
}
// if ((ObstacleTouchState >> 3) % 2 == 1) {
// }
// if ((ObstacleTouchState >> 4) % 2 == 1) {
// }
row.put("stopButton_status", stopButton_status);
row.put("speedReduction_status", speedReduction_status);
row.put("resetButton_status", resetButton_status);
row.put("speedStop_status", speedStop_status);
row.put("ultrasonic_status", ultrasonic_status);
row.put("securityTentacle_status", securityTentacle_status);
returnjo.put("code", "1");
returnjo.put("desc", LangUtils.getMsgLanguage("QuerySuccess", null));
returnjo.put("result", row);
return returnjo;
}
@Override
@@ -390,6 +394,12 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
return returnjo;
}
@Override
public Map<String, Object> queryControlStatus(Map<String, String> jsonObject) {
return null;
}
// public static String getLanguage(String type, String langDefined) {
// String lang = StringUtils.isBlank(langDefined) ? LocaleContextHolder.getLocale().getLanguage() : langDefined;
// String name = "";

View File

@@ -34,7 +34,6 @@ public class RosUtil{
*/
public static Map<String,String> getRosHostInfo() {
Map<String,String> map = new HashMap<>();
try {
String rosHost = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ros_host").getValue();
String rosPort = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ros_port").getValue();
String javaPort = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("java_port").getValue();
@@ -43,11 +42,6 @@ public class RosUtil{
map.put("javaPort", javaPort);
map.put("url", map.get("hostName") + ":" + map.get("port"));
map.put("javaUrl", "http://"+map.get("hostName") + ":" + map.get("javaPort"));
}
catch(Exception e) {
log.error("获取Ros域名信息失败");
throw new BadRequestException(e.getMessage());
}
return map;
}
}

View File

@@ -242,7 +242,14 @@ public class OnlineUserService{
public Map<String,Object> login(Map paramMap) {
JSONObject returnjo = new JSONObject();
//查询调试信息
CompletableFuture.runAsync(this::queryDebugInfo, pool);
CompletableFuture.runAsync(() -> {
try {
queryDebugInfo();
} catch (Exception e) {
e.printStackTrace();
//记录异常日志
}
}, pool);
// 密码解密 - 前端的加密规则: encrypt
AuthUserDto authUser = JSON.toJavaObject((JSON) JSON.toJSON(paramMap), AuthUserDto.class);
String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword());

View File

@@ -23,9 +23,9 @@ spring:
task:
pool:
# 核心线程池大小
core-pool-size: 10
core-pool-size: 20
# 最大线程数
max-pool-size: 30
max-pool-size: 50
# 活跃时间
keep-alive-seconds: 60
# 队列容量
@@ -47,7 +47,7 @@ rsa:
private_key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A==
logging:
file:
path: C:\logs\nlwms\
path: /home/generallu/apt/
demo:
monitor:
server-url: https://www.demo-monitor.com

View File

@@ -16,77 +16,15 @@ https://juejin.cn/post/6844903775631572999
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<property name="LOG_HOME" value="${logPath}"/>
<!--引入默认的一些设置-->
<!-- <include resource="log/AutoCreateInst.xml"/>-->
<!-- <appender name="esLogAppender" class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
<url>http://47.96.133.178:8200/_bulk</url>
<index>${esIndex}</index>
<type>mes_log</type>
<loggerName>es-logger</loggerName> &lt;!&ndash; optional &ndash;&gt;
<errorLoggerName>es-error-logger</errorLoggerName> &lt;!&ndash; optional &ndash;&gt;
<connectTimeout>30000</connectTimeout> &lt;!&ndash; optional (in ms, default 30000) &ndash;&gt;
<errorsToStderr>false</errorsToStderr> &lt;!&ndash; optional (default false) &ndash;&gt;
<includeCallerData>false</includeCallerData> &lt;!&ndash; optional (default false) &ndash;&gt;
<logsToStderr>false</logsToStderr> &lt;!&ndash; optional (default false) &ndash;&gt;
<maxQueueSize>104857600</maxQueueSize> &lt;!&ndash; optional (default 104857600) &ndash;&gt;
<maxRetries>3</maxRetries> &lt;!&ndash; optional (default 3) &ndash;&gt;
<readTimeout>30000</readTimeout> &lt;!&ndash; optional (in ms, default 30000) &ndash;&gt;
<sleepTime>250</sleepTime> &lt;!&ndash; optional (in ms, default 250) &ndash;&gt;
<rawJsonMessage>false</rawJsonMessage> &lt;!&ndash; optional (default false) &ndash;&gt;
<includeMdc>false</includeMdc> &lt;!&ndash; optional (default false) &ndash;&gt;
<maxMessageSize>20000</maxMessageSize> &lt;!&ndash; optional (default -1 &ndash;&gt;
&lt;!&ndash; <authentication class="com.internetitem.logback.elasticsearch.config.BasicAuthentication" /> &lt;!&ndash; optional &ndash;&gt;&ndash;&gt;
<properties>
<property>
<name>system</name>
<value>lms</value>
</property>
<property>
<name>traceId</name>
<value>%X{traceId}</value>
</property>
<property>
<name>logLevel</name>
<value>%level</value>
</property>
<property>
<name>requestMethod</name>
<value>%X{requestMethod}</value>
</property>
<property>
<name>requestTime</name>
<value>%d{yyyy-MM-dd HH:mm:ss.SSS}</value>
</property>
<property>
<name>requestIp</name>
<value>%X{requestIp}</value>
</property>
<property>
<name>thread</name>
<value>%thread</value>
</property>
<property>
<name>logger</name>
<value>%logger</value>
</property>
</properties>
<headers>
<header>
<name>Content-Type</name>
<value>application/json</value>
</header>
</headers>
</appender>-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<withJansi>true</withJansi>
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
<encoder>
<pattern>${log.pattern}</pattern>
<!-- <charset>${log.charset}</charset>-->
</encoder>
</appender>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="${logPath}"/>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
@@ -99,29 +37,23 @@ https://juejin.cn/post/6844903775631572999
<!--所有日志最多占多大容量-->
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<!-- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!--异步到文件-->
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
<appender-ref ref="FILE"/>
</appender>
<!--开发环境:打印控制台-->
<springProfile name="dev">
<root level="info">
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
<!-- <appender-ref ref="esLogAppender"/>-->
</root>
<logger name="jdbc.audit" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
@@ -144,23 +76,32 @@ https://juejin.cn/post/6844903775631572999
<appender-ref ref="CONSOLE"/>
</logger>
</springProfile>
<!--测试环境:打印控制台-->
<springProfile name="test">
<!-- 打印sql -->
<logger name="org.nl.start.Init" level="info" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<root level="info">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
<!--生产环境:打印控制台和输出到文件-->
<springProfile name="prod">
<root level="warn">
<root level="ERROR">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
<logger name="jdbc.audit" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="jdbc.resultset" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="springfox.documentation" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="jdbc.resultsettable" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="jdbc.sqlonly" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="jdbc.sqltiming" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.jinterop" level="ERROR" additivity="false">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.nl.modules.schedule" level="OFF"> </logger>
</springProfile>
</configuration>

View File

@@ -4,8 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.nl</groupId>
<artifactId>hl_one_wms</artifactId>
<artifactId>gt_agv_plus</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>开发平台</name>