From 2571beb3baacfcb62c8ecce108a9f68a5f58b208 Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Fri, 17 Nov 2023 17:01:11 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E4=BF=AE=E6=94=B9=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nladmin-system/pom.xml | 2 +- .../java/org/nl/agv/rest/SortingExample.java | 40 ++ .../java/org/nl/agv/rest/TaskController.java | 3 - .../nl/agv/service/impl/HomeServiceImpl.java | 406 ++++++++++-------- .../service/impl/TaskServiceServiceImpl.java | 72 ++-- .../service/impl/VehicleInfoServiceImpl.java | 13 +- .../main/java/org/nl/agv/wql/QAGVERROR.wql | 40 +- .../src/main/java/org/nl/agv/wql/agv.xls | Bin 143360 -> 143360 bytes 8 files changed, 312 insertions(+), 264 deletions(-) create mode 100644 nladmin-system/src/main/java/org/nl/agv/rest/SortingExample.java diff --git a/nladmin-system/pom.xml b/nladmin-system/pom.xml index 5c42f2f..0e55dac 100644 --- a/nladmin-system/pom.xml +++ b/nladmin-system/pom.xml @@ -255,7 +255,7 @@ mysql mysql-connector-java - ${mysql.version} + 8.0.28 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 new file mode 100644 index 0000000..7b65d68 --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/agv/rest/SortingExample.java @@ -0,0 +1,40 @@ +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/rest/TaskController.java b/nladmin-system/src/main/java/org/nl/agv/rest/TaskController.java index 5ed5c17..22b1c52 100644 --- a/nladmin-system/src/main/java/org/nl/agv/rest/TaskController.java +++ b/nladmin-system/src/main/java/org/nl/agv/rest/TaskController.java @@ -1,6 +1,4 @@ package org.nl.agv.rest; - - import cn.dev33.satoken.annotation.SaIgnore; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -14,7 +12,6 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import java.util.Map; /** 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 e6b6665..7f07093 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,12 +22,12 @@ 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.Ros; import edu.wpi.rail.jrosbridge.Topic; import edu.wpi.rail.jrosbridge.callback.TopicCallback; import edu.wpi.rail.jrosbridge.messages.Message; import edu.wpi.rail.jrosbridge.services.ServiceResponse; -import jline.internal.Log; import lombok.RequiredArgsConstructor; import com.alibaba.fastjson.JSONObject; import org.nl.agv.enu.TaskSendBackStatusEnum; @@ -41,6 +41,8 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; @@ -66,79 +68,85 @@ public class HomeServiceImpl implements HomeService{ @Override public void qeryDebuggerInfo() { Map urlInfo = RosUtil.getRosHostInfo(); + //todo RosJons模拟数据用,正式需改回 //String result1 = HttpUtil.get("http://localhost:8011/api/pcsIfPurchaseorder/queryApt"); - //todo 用,正式需改回 - //String result1 = "{\"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\":0,\"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(result1); - String result = HttpUtil.get(urlInfo.get("javaUrl")); - 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("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")); - String PathFollow_Enable = jo.getString("PathFollow_Enable"); - if(StrUtil.equals("0", PathFollow_Enable)) { - JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0); - if(ObjectUtil.isNotEmpty(taskjo)) { - taskjo.put("task_status", "02"); - taskjo.put("task_status_name", "任务完成"); - taskjo.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("ST_TASK_INFO").update(taskjo); + String result1 = "{\"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\":0,\"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(result1); + try { + //String result = HttpUtil.get(urlInfo.get("javaUrl")); + //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("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")); + String PathFollow_Enable = jo.getString("PathFollow_Enable"); + if(StrUtil.equals("0", PathFollow_Enable)) { + JSONObject taskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete='0'and task_status='01'").uniqueResult(0); + if(ObjectUtil.isNotEmpty(taskjo)) { + taskjo.put("task_status", "02"); + taskjo.put("task_status_name", "任务完成"); + taskjo.put("update_time", DateUtil.now()); + WQLObject.getWQLObject("ST_TASK_INFO").update(taskjo); + } } + debugInfoJson.put("PathFollow_Enable", PathFollow_Enable); + } + catch(Exception e) { + Log.error("通信失败:" + e.getMessage()); + throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage()); } - debugInfoJson.put("PathFollow_Enable", PathFollow_Enable); } public void QueryDebuggerInfo2() { @@ -230,7 +238,7 @@ public class HomeServiceImpl implements HomeService{ //手自动是Sys_Mode 3 REMA手动 4自动 5 IO手持方式的手动,这个车不装 String automatic_status = debugInfoJson.getString("Sys_Mode"); if(StrUtil.equals(automatic_status, "3")) { - agvrun_status_name = "REMA手动"; + agvrun_status_name = "手动"; } if(StrUtil.equals(automatic_status, "4")) { agvrun_status_name = "自动"; @@ -256,134 +264,150 @@ public class HomeServiceImpl implements HomeService{ 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(); - //查询调试信息 - CompletableFuture.runAsync(this::qeryDebuggerInfo, pool); - JSONObject tasking = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and task_type='1'").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='1'").uniqueResult(0); - if(tasked != null) { - task_status = "有任务未执行"; - } - if(tasking != null) { - task_status = "执行中"; - task_name = "任务号:" + tasking.getString("task_code") + "-" + "目标点:" + tasking.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='1'").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 && doingtaskjo.getString("task_type").equals("2")) { + try { + //查询调试信息 + CompletableFuture.runAsync(this::qeryDebuggerInfo, pool); + JSONObject tasking = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' and task_type='1'").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='1' order by seq_num ").uniqueResult(0); + JSONObject tasked = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='00'and task_type='1' 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='1'").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 && doingtaskjo.getString("task_type").equals("2")) { + 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='1' and date ='" + date + "'").getResultJSONArray(0); + if(alltaskja.size() > 0) { + JSONArray todaytaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type='1' 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", "操作成功"); + returnjo.put("result", row); + return returnjo; } - //假如有执行中的任务,则不显示 - 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 = ""; + catch(Exception e) { + Log.error("通信失败:" + e.getMessage()); + throw new BadRequestException(e.getMessage() == null ? "通信失败,请检查系统参数中的Ros连接信息" : e.getMessage()); } - String task_num = "待执行0"; - //分母 今天所有的任务,分子今天未完成的任务 - JSONArray alltaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type='1' and date ='" + date + "'").getResultJSONArray(0); - if(alltaskja.size() > 0) { - JSONArray todaytaskja = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_type='1' 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 = "REMA手动"; - } - 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"); - row.put("speed", speed + "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_num", task_num); - row.put("button_code", button_code); - row.put("button_name", button_name); - returnjo.put("code", "1"); - returnjo.put("desc", "操作成功"); - returnjo.put("result", row); - return returnjo; } @Override @@ -460,7 +484,7 @@ public class HomeServiceImpl implements HomeService{ JSONObject doingtaskjo = WQLObject.getWQLObject("ST_TASK_INFO").query("is_delete= 0 and task_status='01' ").uniqueResult(0); if(ObjectUtil.isNotEmpty(doingtaskjo)) { returnjo.put("code", "0"); - returnjo.put("desc", "有正在执行的任务,不能生产返回休息点的任务"); + returnjo.put("desc", "有正在执行的任务,不能生成返回休息点的任务"); return returnjo; } String rest_pointcode = (String) taskServiceServiceImpl.queryPoint(new HashMap<>()).get("rest_pointcode"); 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 5b07b5b..afae959 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 @@ -53,35 +53,40 @@ public class TaskServiceServiceImpl implements TaskService{ @Override public Map queryPoint(Map jsonObject) { - JSONObject returnjo = new JSONObject(); - String rest_pointcode = ""; - ServiceResponse response = sendToAgvUtil.send("GetStationFloorIndexTable"); - String result_info = JSONObject.parseObject(response.toString()).getString("ROS_String_Output"); - String[] split = result_info.split("\\n"); - for(int i = 0; i < split.length; i++) { - String row = split[i]; - String[] rowArr = row.split("\\s+"); - pointJson.put(rowArr[3], rowArr[4].contains("<") ? "" : rowArr[4]); - } - JSONArray arr = new JSONArray(); - for(Object key : pointJson.keySet()) { - String value = (String) pointJson.get(key); - System.out.println("Key = " + key + ", Value = " + value); - JSONObject row = new JSONObject(); - row.put("point_code", key); - row.put("point_name", value); - row.put("code_name", key + "-" + value); - if(StrUtil.equals("休息", value)) { - rest_pointcode = (String) key; - } - arr.add(row); - } JSONObject jsonObject1 = new JSONObject(); - jsonObject1.put("result_info", result_info); - returnjo.put("code", "1"); - returnjo.put("desc", "查询成功!"); - returnjo.put("rest_pointcode", rest_pointcode); - returnjo.put("result", arr); + JSONObject returnjo = new JSONObject(); + try { + String rest_pointcode = ""; + ServiceResponse response = sendToAgvUtil.send("GetStationFloorIndexTable"); + String result_info = JSONObject.parseObject(response.toString()).getString("ROS_String_Output"); + String[] split = result_info.split("\\n"); + for(int i = 0; i < split.length; i++) { + String row = split[i]; + String[] rowArr = row.split("\\s+"); + pointJson.put(rowArr[3], rowArr[4].contains("<") ? "" : rowArr[4]); + } + JSONArray arr = new JSONArray(); + for(Object key : pointJson.keySet()) { + String value = (String) pointJson.get(key); + System.out.println("Key = " + key + ", Value = " + value); + JSONObject row = new JSONObject(); + row.put("point_code", key); + row.put("point_name", value); + row.put("code_name", key + "-" + value); + if(StrUtil.equals("休息", value)) { + rest_pointcode = (String) key; + } + arr.add(row); + } + jsonObject1.put("result_info", result_info); + returnjo.put("code", "1"); + returnjo.put("desc", "查询成功!"); + returnjo.put("rest_pointcode", rest_pointcode); + returnjo.put("result", arr); + } + catch(Exception ex) { + String sfd = ex.getMessage(); + } return returnjo; } @@ -179,15 +184,8 @@ public class TaskServiceServiceImpl implements TaskService{ } for(int i = 0; i < jsonArray.size(); i++) { JSONObject taskjo = jsonArray.getJSONObject(i); - String task_num = taskjo.getString("task_num"); - String seq_num = taskjo.getString("seq_num"); - JSONObject taskrow = taskTable.query("task_code='" + task_num + "'").uniqueResult(0); - /* String task_status = taskjo.getString("task_status"); - if (StrUtil.equals(task_status,"01")){ - taskrow.put("seq_num", 1); - }else{ - taskrow.put("seq_num", i + 2); - }*/ + String taskNum = taskjo.getString("task_code"); + JSONObject taskrow = taskTable.query("task_code='" + taskNum + "'").uniqueResult(0); taskrow.put("seq_num", i + 1); taskrow.put("is_delete", "0"); taskTable.update(taskrow); 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 c51334a..e9d2ceb 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 org.apache.commons.lang3.StringUtils; import org.nl.agv.enu.VehicleOperateEnum; import org.nl.agv.service.VehicleInfoService; import org.nl.agv.unit.sendToAgvUtil; @@ -145,9 +146,11 @@ public class VehicleInfoServiceImpl implements VehicleInfoService{ break; } } + String code = "0".equals(response.toJsonObject().get("result").toString()) ? "1" : "0"; + String desc = "0".equals(response.toJsonObject().get("result").toString()) ? "操作成功!" : "操作失败!"; JSONObject returnjo = new JSONObject(); - returnjo.put("code", "1"); - returnjo.put("desc", "操作成功"); + returnjo.put("code", code); + returnjo.put("desc", desc); return returnjo; } @@ -214,8 +217,10 @@ public class VehicleInfoServiceImpl implements VehicleInfoService{ //航向角度 BigDecimal z = new BigDecimal(debugInfoJson.getString("Car_Global_Theta")).setScale(3, RoundingMode.HALF_UP); row.put("z", z); - row.put("send_speed", debugInfoJson.getString("VehicleCtrlExpThrottle")); - row.put("real_speed", debugInfoJson.getString("Speedm_Tmp")); + BigDecimal s = new BigDecimal(debugInfoJson.getString("VehicleCtrlExpThrottle")).setScale(3, RoundingMode.HALF_UP); + row.put("send_speed", s); + BigDecimal m = new BigDecimal(debugInfoJson.getString("Speedm_Tmp")).setScale(3, RoundingMode.HALF_UP); + row.put("real_speed", m); //舵轮角度 BigDecimal u = new BigDecimal(debugInfoJson.getString("SVreal_angle")).setScale(3, RoundingMode.HALF_UP); row.put("carrier", u); diff --git a/nladmin-system/src/main/java/org/nl/agv/wql/QAGVERROR.wql b/nladmin-system/src/main/java/org/nl/agv/wql/QAGVERROR.wql index 4bcee67..f3ef5d0 100644 --- a/nladmin-system/src/main/java/org/nl/agv/wql/QAGVERROR.wql +++ b/nladmin-system/src/main/java/org/nl/agv/wql/QAGVERROR.wql @@ -14,45 +14,45 @@ ## 表字段对应输入参数 ################################################# 输入.flag TYPEAS s_string - 输入.error_code TYPEAS s_string + 输入.error_code TYPEAS s_string + - [临时表] --这边列出来的临时表就会在运行期动态创建 - + [临时变量] --所有中间过程变量均可在此处定义 - + [业务过程] ########################################## # 1、输入输出检查 # ########################################## - + ########################################## # 2、主过程前处理 # ########################################## - - + + ########################################## # 3、业务主过程 # ########################################## - + IF 输入.flag = "1" QUERY SELECT * FROM ST_AGV_ERROR as agv - WHERE + WHERE 1=1 OPTION 输入.error_code <> "" agv.error_code = 输入.error_code ENDOPTION - ENDSELECT + ENDSELECT ENDQUERY ENDIF @@ -60,9 +60,8 @@ ENDIF QUERY SELECT task.task_uuid, - task.task_code AS task_num, - task.next_point_code AS target_point, - task.next_point_code AS target_point, + task.task_code, + task.next_point_code, task.task_status, task.task_status_name, task.seq_num, @@ -91,18 +90,3 @@ ENDIF ENDSELECT ENDQUERY ENDIF - -IF 输入.flag = "4" - QUERY - SELECT - * - FROM - ST_AGV_ERROR as agv - WHERE - 1=1 - OPTION 输入.error_code <> "" - agv.error_code = 输入.error_code - ENDOPTION - ENDSELECT - ENDQUERY -ENDIF diff --git a/nladmin-system/src/main/java/org/nl/agv/wql/agv.xls b/nladmin-system/src/main/java/org/nl/agv/wql/agv.xls index e7a6de7a7ca54aa912acb78909ed2770df77fb07..58b49e0526f52bb7b345681e95f473bfaedb1513 100644 GIT binary patch delta 2501 zcma)84^Wfm8Gqk=Nl5q;0w(zqz(AsekO0BRpAhm7f|RQkXp7QvoA?ilYe!WaBK{$) z)#DiM)*G}2yZaR0!igJ1r*z>&zICr;OE_r|N z^Lu{J?|qWz`z~K#P!<@JoqkIkR{mI)QX&0AuwE>obR@V*lE{gTU*@z!n`{rfzSy89 zgnTi9%Os9ZZlO!2gWQl3ydgOyKtp5qBSLTZx!wIca_utO(Gd(etO*g5=v(U-I3!Roub{dxTR6EYt z|94G+X(jwpmx+GU@w0o(X`hY%_r7y1E}VZ9zoKrdtdVS$v0we^!b7cTGvu4XL6>60 zE8s?oH9Y}yl*sUk;mCwn{EU37Y|nG`iQr3ahDwu?CV?z$Z4k&r#B3IF7Lio+R7gUb2#=z#Xd%tXOJ>(`GBYV|Kz#o1R)Riic*4lBU5Eiw#bt zDQWt&O9m9Bd#Md-Q*5Y7fY$UZxQ4hkQ%UWpveNm?ZL?JYzcK4+Hsf;Gnmg_6fRYR^ z%>#3qjrHb)of%$9K7LgZ#Msra#$uu_klBPYl++D-EneyoJm6yb26k2wY0}qB0HcxP6>~q%&=kQw2?^$Y6RQ>hqZ}Yhx8nPN53TG`suf`800bSf*EZNYO@$wJVQE=oX^M? z{*$x^O+~Ae)!sVcW)xBSy%h(x6D8TOQHaI#Cp9Z;AM94F7Py}WCb_jWbt^Y-*Wa2&1OY22!=-cDl4LAYDtk1vr#6Ef_R2wCayUJjv`l643o zXkD@}xNmV52bp47b0VR`0ZNFSgbg<$a@<>rW4}{0bf^YgP44^I5&aXS0(pE-zm^%| zhZiC7ywWI|mXLo$5HgDK;6)`FP8E|l!C<_x?S~({RC>`DxxK@ExB3-BOY^$}s$0k`)hN2)Np)2^sn$MC=J2xO zmbWXn6c0@tp50cGUG*#f;$G*geTLunEVA?`fBxu?J=ue$Uwe86wr$yV@Q5yvn|H!` zYN7W`=+Hg6^ib#0{*JEOroM0ahi~gI$-gQ;P$!X>UhjQ0(y+yw@KUu$e{;#DPt6-5 zmh3*6JrsHVVdaZ2LRpoOb_Um1^=o5k1zxAGl7*z2_(>TlA`61c>o17;AD0sniN9p( zazcXmmoCCVp^d-a5@Yk( z%V&vp9KijFU~@;GNP71uAzy#Oa^;=t!lgUT5wfHkojtFC=_&0((5wu-c zxi1t38$)m4(@rMb3;A?p`UR)9lMFHsKbZ`(@vh1vj_!}sL~n5a2AaC{z5oCK delta 2701 zcmZ`*4OElo6@K6Rk)R|YeBld(pAaAkA&~If5CRFow)WKDZ5C)(5Cu)^Dp*_#hbo~A zOSMkM<7jA65=&uurDgEBxAdVM`hCl1=gniQ2n#KqrLjf`s zn6`vabhu~6j-iV@3EKHM(mWr;XU=>+LIQyR=HcR}@wxLD0*J$)R8c&K&Qndr^Qu{X z{yEsyRJ{MLOiD#-Di7QI;srJVT$RVb-7pR8muujxoPnIM#qbTDw}e$exV#;XAbwrW z_|*!t7>M8z7pyr-R-lUm z7~*@G&J+*j>X}RtY*0DdbsW^HW3iJS>`Vv8)NE8jP&0djNIsh$ZXnA9+1U)y|5uBJ z%aLqUVo)?aB0@a88YRj{7b#HUWj1+}yJwD;xP8p-vZjuTQ%;Pm_7Ik$Wpl*a;<4 z+*u(BxI{3X6ALXV4oES_Q43s3(W>WHOv4B<^ch#eU4wz9gU;AUt+3Cyi`w9=G#6y0 z#sJrQCP=Y5=VgJ#xfuHJ^Vw@vY_K3t+R^MGN7!*#!~ln|aIwUW}uDl8Sshzh8~6d@uJJ`v&~!uTXSuZDDY9CQ~l zu+U`?hLA|`i<5!NTXD-jbq;9yX1!}-R+@?r)CJO(V5F;~ov z4Q636HOYi)PPb4&vfzj#muABRrpy6tei9bQg=g|jnCKxsQC|@QWkp;f`~8Wyo2p43 zbmn_-ak!dX?=q)}=JTK63a67gc|1_Sz|#dLTEOGn>7xRJP)!QKS?EUVf_9gOx_K>k zPqEuXi%?sNoCp5q_TZv%JJDCK1za7`&ZCR{eV$3q|CS?6>Q|l#kX4A|@9eWWK|8S&f%!^^E{kc> za>}Xteb4=-VA%<`vh}ZDIOOl2(=~f-$3qjgdz$UO?}o(QErN|hIkiHOQhY$XNZafk zlWdd!YJ=O7mHNTgZ5N{Nefh<`Q-?D4i+7g^)>Qo|wZoR(vhCxap5NY|`|nLO@mbl@ zhOLkP&a~YXaM$l?v6Mf&vyjPGm@Q??n?A^RX5dbe_*hS3Mp4i9b<2NSef=@{OHa3d zH1cw2W!sm&clytOVd6P^hw*g8XFHAmJUUs${KxTa*7Jey-np{4|LkaNzyAE5{=?o& z)jv66x_PqZ`~dyxOq}l1uYb65BJ~AWuPeIzsz1JL{PH()dCA`=>za;k+dKMv#pv-P z-EWk-6Q4S|^bPx|%tv}l4(=Vldhgt)|N8u6`WEQkP5Pv)Q~DtjbF}C|C+jC5!;A=!WZH^^_7J9@&5~oYts=+pr%<1 z?+r-csrrSI*XjtVeF1u!zxP)(6i8`h8CTVLYB(xLZN&n|NWD$baF7*5TzTQ6z zB-i#6a^V2atvt9XRML8wkX3_tuJzmBEs2opNeC9DM2|lqA<#X%76QXk=#pum>k|bo z(ipriOM{+Iq%bvHkJjfeKOqq-+VAu&zVhNl+848*vru<>(|oMu*6G1pr|HcliWyN* hJa|hj_*NyEs^TIC|6&rnE$n((D2N<<-6B{g{2!OTFhKwS