diff --git a/nladmin-system/pom.xml b/nladmin-system/pom.xml index 0e55dac..c588a50 100644 --- a/nladmin-system/pom.xml +++ b/nladmin-system/pom.xml @@ -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"> - hl_one_wms + gt_agv_plus org.nl 1.0-SNAPSHOT diff --git a/nladmin-system/src/main/java/org/nl/agv/rest/HomeController.java b/nladmin-system/src/main/java/org/nl/agv/rest/HomeController.java index a55c2fd..870b1e5 100644 --- a/nladmin-system/src/main/java/org/nl/agv/rest/HomeController.java +++ b/nladmin-system/src/main/java/org/nl/agv/rest/HomeController.java @@ -36,8 +36,8 @@ public class HomeController { @Log("查询头部") @ApiOperation("查询头部") //@PreAuthorize("@el.check('sect:list')") - public ResponseEntity queryHead(@RequestBody Map whereJson) { - return new ResponseEntity<>(homeService.queryHead(whereJson), HttpStatus.OK); + public ResponseEntity queryHead() { + return new ResponseEntity<>(homeService.queryHead(), HttpStatus.OK); } @PostMapping("/queryHomePage") @Log("查询首页") diff --git a/nladmin-system/src/main/java/org/nl/agv/rest/SortingExample.java b/nladmin-system/src/main/java/org/nl/agv/rest/SortingExample.java deleted file mode 100644 index 7b65d68..0000000 --- a/nladmin-system/src/main/java/org/nl/agv/rest/SortingExample.java +++ /dev/null @@ -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 sortedQueue = new LinkedBlockingQueue<>(); - - // 将JSONArray中的元素按照num字段从小到大进行排序 - List 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"); - // 执行其他操作... - } - } -} diff --git a/nladmin-system/src/main/java/org/nl/agv/service/HomeService.java b/nladmin-system/src/main/java/org/nl/agv/service/HomeService.java index adf1dff..2253339 100644 --- a/nladmin-system/src/main/java/org/nl/agv/service/HomeService.java +++ b/nladmin-system/src/main/java/org/nl/agv/service/HomeService.java @@ -17,7 +17,7 @@ public interface HomeService { * @param * @return Map */ - Map queryHead(Map jsonObject); + Map queryHead(); /** * 查询首页 * diff --git a/nladmin-system/src/main/java/org/nl/agv/service/impl/ErrorServiceImpl.java b/nladmin-system/src/main/java/org/nl/agv/service/impl/ErrorServiceImpl.java index cae80cc..16c94b9 100644 --- a/nladmin-system/src/main/java/org/nl/agv/service/impl/ErrorServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/agv/service/impl/ErrorServiceImpl.java @@ -66,96 +66,96 @@ public class ErrorServiceImpl implements ErrorService{ } //@Override - public Map querryError1(Map 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 querryError1(Map 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()); +// } +// } } \ No newline at end of file diff --git a/nladmin-system/src/main/java/org/nl/agv/service/impl/HomeServiceImpl.java b/nladmin-system/src/main/java/org/nl/agv/service/impl/HomeServiceImpl.java index 8c28dc7..0dff043 100644 --- a/nladmin-system/src/main/java/org/nl/agv/service/impl/HomeServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/agv/service/impl/HomeServiceImpl.java @@ -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 queryHomePage(Map 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 allTasks = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0").getResultJSONArray(0).toJavaList(JSONObject.class); // 执行中任务 Optional 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 queryHomePage1(Map 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 clickSave(Map 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 queryHead(Map jsonObject) { + public Map 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 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 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 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 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 queryHomePage1(Map 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(); diff --git a/nladmin-system/src/main/java/org/nl/agv/service/impl/TaskServiceServiceImpl.java b/nladmin-system/src/main/java/org/nl/agv/service/impl/TaskServiceServiceImpl.java index 43ea97e..9ff30e3 100644 --- a/nladmin-system/src/main/java/org/nl/agv/service/impl/TaskServiceServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/agv/service/impl/TaskServiceServiceImpl.java @@ -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 queryPoint(Map 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 confirmPoint1(Map 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 confirmPoint(Map 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 deleteTask(Map 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 confirmPoint1(Map 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 = ""; diff --git a/nladmin-system/src/main/java/org/nl/agv/service/impl/VehicleInfoServiceImpl.java b/nladmin-system/src/main/java/org/nl/agv/service/impl/VehicleInfoServiceImpl.java index 038ed3e..c640ef6 100644 --- a/nladmin-system/src/main/java/org/nl/agv/service/impl/VehicleInfoServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/agv/service/impl/VehicleInfoServiceImpl.java @@ -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 queryControlStatus(Map jsonObject) { - return null; - } + + /** + * 车辆控制操作 + */ @Override public Map Shut_down(Map 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 queryVehicleStatus(Map 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 queryControlStatus(Map jsonObject) { + return null; + } + + // public static String getLanguage(String type, String langDefined) { // String lang = StringUtils.isBlank(langDefined) ? LocaleContextHolder.getLocale().getLanguage() : langDefined; // String name = ""; diff --git a/nladmin-system/src/main/java/org/nl/agv/unit/RosUtil.java b/nladmin-system/src/main/java/org/nl/agv/unit/RosUtil.java index 340c963..6558163 100644 --- a/nladmin-system/src/main/java/org/nl/agv/unit/RosUtil.java +++ b/nladmin-system/src/main/java/org/nl/agv/unit/RosUtil.java @@ -34,7 +34,6 @@ public class RosUtil{ */ public static Map getRosHostInfo() { Map 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; } } diff --git a/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java b/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java index c2dc91c..a817978 100644 --- a/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java +++ b/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java @@ -242,7 +242,14 @@ public class OnlineUserService{ public Map 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()); diff --git a/nladmin-system/src/main/resources/config/application.yml b/nladmin-system/src/main/resources/config/application.yml index 48aea29..bc43869 100644 --- a/nladmin-system/src/main/resources/config/application.yml +++ b/nladmin-system/src/main/resources/config/application.yml @@ -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 diff --git a/nladmin-system/src/main/resources/logback-spring.xml b/nladmin-system/src/main/resources/logback-spring.xml index f3283b3..b553ed1 100644 --- a/nladmin-system/src/main/resources/logback-spring.xml +++ b/nladmin-system/src/main/resources/logback-spring.xml @@ -16,77 +16,15 @@ https://juejin.cn/post/6844903775631572999 - - - - true - + ${log.pattern} - + @@ -99,29 +37,23 @@ https://juejin.cn/post/6844903775631572999 20GB - - + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - + 0 500 - - - - + - - @@ -144,23 +76,32 @@ https://juejin.cn/post/6844903775631572999 - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/pom.xml b/pom.xml index 524055f..70b02b8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,8 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.nl - hl_one_wms + gt_agv_plus pom 1.0-SNAPSHOT 开发平台