diff --git a/hd/logPath_IS_UNDEFINED/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/ACS请求ERP/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/ACS请求ERP/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/ACS请求ERP/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/ACS请求ERP/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/ACS请求ERP/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/ACS请求ERP/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/ACS请求WMS/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/ACS请求WMS/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/ACS请求WMS/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/ACS请求WMS/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/ACS请求WMS/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/ACS请求WMS/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/AGV请求离开/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/AGV请求离开/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/AGV请求离开/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/AGV请求离开/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/AGV请求离开/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/AGV请求离开/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/NDC/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/NDC/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/NDC/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/NDC/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/NDC/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/NDC/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/WMS下发ACS/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/WMS下发ACS/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/WMS下发ACS/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/WMS下发ACS/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/WMS下发ACS/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/WMS下发ACS/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-04.0.log new file mode 100644 index 0000000..0dc01dc --- /dev/null +++ b/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-04.0.log @@ -0,0 +1,2 @@ +2022-12-04 15:18:25.062 [nl-pool3-thread-9] INFO org.nl.acs.agv.server.impl.AgvServiceImpl - 任务号:-00024,指令号00067,下发agv订单序列参数:{"id":"00067","complete":true,"blocks":[{"blockId":"70e4860e52a74ac5ba66bb47075277b4","location":"1008IN","operation":"script","id":"1008IN","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00067","address":"1008IN"}},"protocol":"HTTP"}},{"blockId":"b35e8b1db3d34b0baf8f95c0b16aedd8","location":"1008","operation":"JackLoad"},{"blockId":"99baaed5c81c4c7b823a580817589ecd","location":"1008OUT","operation":"script","id":"1008OUT","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00067","address":"1008OUT"}},"protocol":"HTTP"}},{"blockId":"1769a1f2350c4f02b18ce72cc5f1bce0","location":"1005IN","operation":"script","id":"1005IN","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00067","address":"1005IN"}},"protocol":"HTTP"}},{"blockId":"0db76fae9e544408851348adb127e5ce","location":"1005","operation":"JackUnload"},{"blockId":"0ef593155f7941eda29cab8be8907425","location":"1005OUT","operation":"script","id":"1005OUT","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00067","address":"1005OUT"}},"protocol":"HTTP"}}]} +2022-12-04 15:19:16.402 [http-nio-8010-exec-5] INFO org.nl.acs.agv.server.impl.AgvServiceImpl - 任务号:-00024,指令号00068,下发agv订单序列参数:{"id":"00068","complete":true,"blocks":[{"blockId":"0ae6f28e54b24ef1a7ab22c6f49313b5","location":"1008IN","operation":"script","id":"1008IN","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00068","address":"1008IN"}},"protocol":"HTTP"}},{"blockId":"5915e4a896ef41b495163780ca7e08d1","location":"1008","operation":"JackLoad"},{"blockId":"3c3e7d6d531b44d0a55817efbb3b8434","location":"1008OUT","operation":"script","id":"1008OUT","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00068","address":"1008OUT"}},"protocol":"HTTP"}},{"blockId":"af4d3333d2da48518e531eae74461411","location":"1005IN","operation":"script","id":"1005IN","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00068","address":"1005IN"}},"protocol":"HTTP"}},{"blockId":"5056dcd431ef4e0bbc20551e6b933b73","location":"1005","operation":"JackUnload"},{"blockId":"242f390e11b1401599ac3d2dcd81644c","location":"1005OUT","operation":"script","id":"1005OUT","script_name":"userpy/interact.py","script_args":{"addr":"http://127.0.0.1:8010","data":{"reach":{"task_code":"00068","address":"1005OUT"}},"protocol":"HTTP"}}]} diff --git a/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/反馈AGV请求/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/扫码记录/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/扫码记录/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/扫码记录/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/扫码记录/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/扫码记录/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/扫码记录/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/查询AGV指令状态/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/查询AGV指令状态/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/查询AGV指令状态/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/查询AGV指令状态/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/查询AGV指令状态/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/查询AGV指令状态/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/查询仙知AGV指令状态/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/查询仙知AGV指令状态/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/查询仙知AGV指令状态/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/查询仙知AGV指令状态/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/查询仙知AGV指令状态/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/查询仙知AGV指令状态/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/自动创建指令/2022-12-02.0.log b/hd/logPath_IS_UNDEFINED/自动创建指令/2022-12-02.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/自动创建指令/2022-12-04.0.log b/hd/logPath_IS_UNDEFINED/自动创建指令/2022-12-04.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/logPath_IS_UNDEFINED/自动创建指令/2022-12-05.0.log b/hd/logPath_IS_UNDEFINED/自动创建指令/2022-12-05.0.log new file mode 100644 index 0000000..e69de29 diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java index 2cafac4..e224c50 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java @@ -8,79 +8,79 @@ import net.sf.json.JSONObject; * https://blog.csdn.net/moneyshi/article/details/82978073 */ public enum DriverTypeEnum { - ORDINARY_SITE(1, "standard_ordinary_site", "普通站点", "conveyor"), - - WEIGHING_SITE(2, "weighing_site", "称重站点", "conveyor"), - - INSPECT_SITE(3, "standard_inspect_site", "检测站点", "conveyor"), - - NON_LINE_INSPECT_SITE(4, "non_line_inspect_site", "检测站点-无PLC", "conveyor"), - - MACHINES_SITE(5, "machines_site", "机台设备-无光电", "conveyor"), - - SPECIAL_SITE(6, "standard_special_inspect_site", "专机设备交互站点", "conveyor"), - - MANIPULATOR_SITE(7, "standard_manipulator_inspect_site", "区域管制设备交互站点", "conveyor"), - - NON_LINE_MANIPULATOR_SITE(8, "non_line_manipulator_inspect_site", "区域管制设备交互站点-无PLC", "conveyor"), - - AUTODOOR(9, "standard_autodoor", "标准版-自动门", "autodoor"), - - STACK_EMPUYPALLET_SITE(10, "standard_emptypallet_site", "标准版-空盘叠盘站点", "conveyor"), - - LAMP_THREE_COLOR(11, "lamp_three_color", "标准版-三色灯", "三色灯"), - - SPECIAL_ORDINARY_SITE(12, "special_ordinary_site", "特殊版-普通站点-关联锁定", "conveyor"), - - STORAGE(13, "standard_storage", "标准版-货架", "storage"), - - SCANNER(14, "standard_scanner", "标准版-扫码器", "scanner"), - - INSPECT_CONVEYOR_CONTROL_WITH_SCANNER(15, "standard_conveyor_control_with_scanner", "标准版-输送机-控制点-关联扫码", "conveyor"), +// ORDINARY_SITE(1, "standard_ordinary_site", "普通站点", "conveyor"), +// +// WEIGHING_SITE(2, "weighing_site", "称重站点", "conveyor"), +// +// INSPECT_SITE(3, "standard_inspect_site", "检测站点", "conveyor"), +// +// NON_LINE_INSPECT_SITE(4, "non_line_inspect_site", "检测站点-无PLC", "conveyor"), +// +// MACHINES_SITE(5, "machines_site", "机台设备-无光电", "conveyor"), +// +// SPECIAL_SITE(6, "standard_special_inspect_site", "专机设备交互站点", "conveyor"), +// +// MANIPULATOR_SITE(7, "standard_manipulator_inspect_site", "区域管制设备交互站点", "conveyor"), +// +// NON_LINE_MANIPULATOR_SITE(8, "non_line_manipulator_inspect_site", "区域管制设备交互站点-无PLC", "conveyor"), +// +// AUTODOOR(9, "standard_autodoor", "标准版-自动门", "autodoor"), +// +// STACK_EMPUYPALLET_SITE(10, "standard_emptypallet_site", "标准版-空盘叠盘站点", "conveyor"), +// +// LAMP_THREE_COLOR(11, "lamp_three_color", "标准版-三色灯", "三色灯"), +// +// SPECIAL_ORDINARY_SITE(12, "special_ordinary_site", "特殊版-普通站点-关联锁定", "conveyor"), +// +// STORAGE(13, "standard_storage", "标准版-货架", "storage"), +// +// SCANNER(14, "standard_scanner", "标准版-扫码器", "scanner"), +// +// INSPECT_CONVEYOR_CONTROL_WITH_SCANNER(15, "standard_conveyor_control_with_scanner", "标准版-输送机-控制点-关联扫码", "conveyor"), INSPECT_CONVEYOR_CONTROL(16, "standard_conveyor_control", "标准版-输送机-控制点", "conveyor"), - INSPECT_CONVEYOR_MONITOR(17, "standard_conveyor_monitor", "标准版-输送机-监控点", "conveyor"), - - MANIPULATOR_INSPECT_SITE_NDC(18, "manipulator_inspect_site_NDC", "区域管制设备交互站点-NDC", "conveyor"), - - FEEDBACK_AGV_STATUS_SITE(19, "feedback_agv_status_site", "上报AGV状态站点", "conveyor"), - - MANIPULATOR_STACKING_SITE(20, "standard_manipulator_stacking_site", "机械手码垛驱动(区分托盘类型)", "conveyor"), - - PHOTOELECTRIC_INSPECT_SITE(21, "standard_photoelectric_inspect_site", "光电检测站点(优先出库)", "conveyor"), - - HAILIANG_PACKING(22, "hailiang_packing", "海亮项目-包装机", "conveyor"), - - HAILIANG_LABELING(23, "hailiang_labeling", "海亮项目-贴标机", "conveyor"), - - HAILIANG_COATING(24, "hailiang_coating", "海亮项目-裹膜机", "conveyor"), - - NDXY_SPECIAL(25, "ndxy_special", "纽迪希亚专用", "conveyor"), - - NDXY_SPECIAL_TWO(26, "ndxy_special_two", "纽迪希亚专用2", "conveyor"), - - INSPECT_CONVEYOR_CONTROL_WITH_PLCSCANNER(27, "standard_conveyor_control_with_plcscanner", "标准版-输送机-控制点-PLC扫码", "conveyor"), - - WHXR_STORAGE_CONVEYOR(28, "whxr_storage_conveyor", "武汉新锐-立库对接位", "conveyor"), - - WHXR_BALL_MILL_DEVICE(29, "whxr_ball_mill", "武汉新锐-球磨机", "conveyor"), - - WHXR_SPRAY_TOWER_DEVICE(30, "whxr_spary_tower", "武汉新锐-喷雾塔", "conveyor"), - - WHXR_WEIGHT_DEVICE(31, "whxr_weight", "武汉新锐-称重设备", "conveyor"), - - ELECTRIC_FENCE(32, "electric_fence", "标准版-电子围栏", "safetydoor"), - - OUMULONGPLC(33, "oumulong_plc", "标准版-自动门-欧姆龙plc", "autodoor"), - - TRAFFIC_LIGHT(34, "traffic_light", "标准版-交通灯-欧姆龙plc", "三色灯"), - - STANDARD_RGV(35, "standard_rgv", "标准版-RGV", "rgv"), - - YKBK_SPECIAL(36, "ykbk_special", "伊科拜克默认物料", "conveyor"), - - ssj_cache_site(37, "ssj_cache_site", "三时纪-缓存站点", "conveyor"), +// INSPECT_CONVEYOR_MONITOR(17, "standard_conveyor_monitor", "标准版-输送机-监控点", "conveyor"), +// +// MANIPULATOR_INSPECT_SITE_NDC(18, "manipulator_inspect_site_NDC", "区域管制设备交互站点-NDC", "conveyor"), +// +// FEEDBACK_AGV_STATUS_SITE(19, "feedback_agv_status_site", "上报AGV状态站点", "conveyor"), +// +// MANIPULATOR_STACKING_SITE(20, "standard_manipulator_stacking_site", "机械手码垛驱动(区分托盘类型)", "conveyor"), +// +// PHOTOELECTRIC_INSPECT_SITE(21, "standard_photoelectric_inspect_site", "光电检测站点(优先出库)", "conveyor"), +// +// HAILIANG_PACKING(22, "hailiang_packing", "海亮项目-包装机", "conveyor"), +// +// HAILIANG_LABELING(23, "hailiang_labeling", "海亮项目-贴标机", "conveyor"), +// +// HAILIANG_COATING(24, "hailiang_coating", "海亮项目-裹膜机", "conveyor"), +// +// NDXY_SPECIAL(25, "ndxy_special", "纽迪希亚专用", "conveyor"), +// +// NDXY_SPECIAL_TWO(26, "ndxy_special_two", "纽迪希亚专用2", "conveyor"), +// +// INSPECT_CONVEYOR_CONTROL_WITH_PLCSCANNER(27, "standard_conveyor_control_with_plcscanner", "标准版-输送机-控制点-PLC扫码", "conveyor"), +// +// WHXR_STORAGE_CONVEYOR(28, "whxr_storage_conveyor", "武汉新锐-立库对接位", "conveyor"), +// +// WHXR_BALL_MILL_DEVICE(29, "whxr_ball_mill", "武汉新锐-球磨机", "conveyor"), +// +// WHXR_SPRAY_TOWER_DEVICE(30, "whxr_spary_tower", "武汉新锐-喷雾塔", "conveyor"), +// +// WHXR_WEIGHT_DEVICE(31, "whxr_weight", "武汉新锐-称重设备", "conveyor"), +// +// ELECTRIC_FENCE(32, "electric_fence", "标准版-电子围栏", "safetydoor"), +// +// OUMULONGPLC(33, "oumulong_plc", "标准版-自动门-欧姆龙plc", "autodoor"), +// +// TRAFFIC_LIGHT(34, "traffic_light", "标准版-交通灯-欧姆龙plc", "三色灯"), +// +// STANDARD_RGV(35, "standard_rgv", "标准版-RGV", "rgv"), +// +// YKBK_SPECIAL(36, "ykbk_special", "伊科拜克默认物料", "conveyor"), +// +// ssj_cache_site(37, "ssj_cache_site", "三时纪-缓存站点", "conveyor"), STANDARDCONVEYORLINE(38, "standard_conveyor_line", "缓存架", "conveyor"); diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/ItemProtocol.java b/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/ItemProtocol.java index d2f1ed7..cc44c98 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/ItemProtocol.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/ItemProtocol.java @@ -11,21 +11,16 @@ import java.util.List; @Data public class ItemProtocol { - public static String item_heartbeat = "heartbeat"; - public static String item_mode = "mode"; - public static String item_move = "move"; - public static String item_action = "action"; - public static String item_ioaction = "ioaction"; - public static String item_height = "height"; - public static String item_error = "error"; - public static String item_direction = "direction"; - public static String item_operation_type = "operation_type"; - public static String item_task = "task"; - - public static String item_to_command = "to_command"; - public static String item_to_target = "to_target"; - public static String item_to_task = "to_task"; - public static String item_weight = "weight"; + + public static String item_byMode = "Application_GVL_AGV_To_AGV_number_To_Mode"; + public static String item_bySignal = "Application_GVL_AGV_To_AGV_number_To_Signal"; + public static String item_byAction = "Application_GVL_AGV_To_AGV_number_To_Action"; + public static String item_byError = "Application_GVL_AGV_To_AGV_number_To_Error"; + public static String item_dwTaskNo = "Application_GVL_AGV_To_AGV_number_To_DwTaskNo"; + + public static String item_to_byTarget = "Application_GVL_AGV_To_AGV_number_Fr_Target"; + public static String item_to_byDwTaskNo = "Application_GVL_AGV_To_AGV_number_Fr_TaskNo"; + public static String item_to_byWCommand = "Application_GVL_AGV_To_AGV_number_Fr_Command"; private StandardCoveyorControlDeviceDriver driver; @@ -33,44 +28,25 @@ public class ItemProtocol { this.driver = driver; } - public int getHeartbeat() { - return this.getOpcIntegerValue(item_heartbeat); - } - - public int getMode() { - return this.getOpcIntegerValue(item_mode); - } - - public int getMove() { - return this.getOpcIntegerValue(item_move); - } - - public int getAction() { - return this.getOpcIntegerValue(item_action); - } - - public int getError() { - return this.getOpcIntegerValue(item_error); - } - public int getOperation_type() { - return this.getOpcIntegerValue(item_operation_type); + public int getByMode(String device_code) { + return this.getOpcIntegerValue(item_byMode, device_code); } - public int getTask() { - return this.getOpcIntegerValue(item_task); + public int getBySignal(String device_code) { + return this.getOpcIntegerValue(item_bySignal, device_code); } - public int getToCommand() { - return this.getOpcIntegerValue(item_to_command); + public int getByAction(String device_code) { + return this.getOpcIntegerValue(item_byAction, device_code); } - public int getToTarget() { - return this.getOpcIntegerValue(item_to_target); + public int getByError(String device_code) { + return this.getOpcIntegerValue(item_byError, device_code); } - public int getToTask() { - return this.getOpcIntegerValue(item_to_task); + public int getDwTaskNo(String device_code) { + return this.getOpcIntegerValue(item_dwTaskNo, device_code); } @@ -81,7 +57,8 @@ public class ItemProtocol { Boolean isonline; - public int getOpcIntegerValue(String protocol) { + public int getOpcIntegerValue(String protocol, String device_code) { + protocol = protocol.replace("number", device_code).replace("\"", ""); Integer value = this.driver.getIntegerValue(protocol); if (value == null) { log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); @@ -96,24 +73,19 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB600.B0")); - list.add(new ItemDto(item_mode, "工作状态", "DB600.B1", Boolean.valueOf(true))); - list.add(new ItemDto(item_move, "光电开关信号", "DB600.B2")); - list.add(new ItemDto(item_action, "取放信号", "DB600.B3")); - list.add(new ItemDto(item_ioaction, "进出类型", "DB600.B4")); - list.add(new ItemDto(item_height, "高度类型", "DB600.B5")); - list.add(new ItemDto(item_error, "报警信号", "DB600.B6")); - list.add(new ItemDto(item_direction, "电机方向", "DB600.B7")); - list.add(new ItemDto(item_operation_type, "作业类型", "DB600.B8")); - list.add(new ItemDto(item_task, "任务号", "DB600.D22")); + list.add(new ItemDto(item_byMode, "工作模式", "DB600.B1")); + list.add(new ItemDto(item_bySignal, "光电信号", "DB600.B2", Boolean.valueOf(true))); + list.add(new ItemDto(item_byAction, "动作信号", "DB600.B3")); + list.add(new ItemDto(item_byError, "报警信号", "DB600.B4")); + list.add(new ItemDto(item_dwTaskNo, "任务号", "DB600.D5")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "作业命令", "DB601.W2", Boolean.valueOf(true))); - list.add(new ItemDto(item_to_target, "目标站", "DB601.W4")); - list.add(new ItemDto(item_to_task, "任务号", "DB601.D8")); + list.add(new ItemDto(item_to_byWCommand, "作业命令", "DB601.W2")); + list.add(new ItemDto(item_to_byTarget, "目标站", "DB601.W4")); + list.add(new ItemDto(item_to_byDwTaskNo, "任务号", "DB601.D8")); return list; } diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardConveyorControlDefination.java b/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardConveyorControlDefination.java index 2d9aa72..b2b47d3 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardConveyorControlDefination.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardConveyorControlDefination.java @@ -52,22 +52,7 @@ public class StandardConveyorControlDefination implements OpcDeviceDriverDefinat @Override public List getReadableItemDtos() { - return getReadableItemDtos2(); - } - - public static List getReadableItemDtos2() { - List list = new ArrayList(); - list.add(new ItemDto(ItemProtocol.item_heartbeat, "心跳", "DB600.B0")); - list.add(new ItemDto(ItemProtocol.item_mode, "工作状态", "DB600.B1", Boolean.valueOf(true))); - list.add(new ItemDto(ItemProtocol.item_move, "光电开关信号", "DB600.B2")); - list.add(new ItemDto(ItemProtocol.item_action, "取放信号", "DB600.B3")); - list.add(new ItemDto(ItemProtocol.item_ioaction, "进出类型", "DB600.B4")); - list.add(new ItemDto(ItemProtocol.item_height, "高度类型", "DB600.B5")); - list.add(new ItemDto(ItemProtocol.item_error, "报警信号", "DB600.B6")); - list.add(new ItemDto(ItemProtocol.item_direction, "电机方向", "DB600.B7")); - list.add(new ItemDto(ItemProtocol.item_operation_type, "作业类型", "DB600.B8")); - list.add(new ItemDto(ItemProtocol.item_task, "任务号", "DB600.D22")); - return list; + return ItemProtocol.getReadableItemDtos(); } @Override diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java b/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java index ed92297..1ea08f3 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java @@ -68,16 +68,17 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver //有货标记 protected boolean has_goods_tag = false; - int mode = 0; - int error = 0; - int move = 0; - int task = 0; - //出入库模式 - int operation_type = 0; - int last_mode = 0; - int last_error = 0; - int last_move = 0; - int last_task = 0; + int byMode = 0; + int bySignal = 0; + int byAction = 0; + int byError = 0; + int dwTaskNo = 0; + + int last_byMode = 0; + int last_bySignal = 0; + int last_byAction = 0; + int last_byError = 0; + int last_dwTaskNo = 0; Boolean isonline = true; int hasGoods = 0; @@ -143,133 +144,90 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver String message = null; try { device_code = this.getDeviceCode(); - mode = this.itemProtocol.getMode(); - error = this.itemProtocol.getError(); - move = this.itemProtocol.getMove(); - task = this.itemProtocol.getTask(); - hasGoods = this.itemProtocol.getMove(); - operation_type = this.itemProtocol.getOperation_type(); - if (mode != last_mode) { + byMode = this.itemProtocol.getByMode(device_code); + bySignal = this.itemProtocol.getBySignal(device_code); + byAction = this.itemProtocol.getByAction(device_code); + byError = this.itemProtocol.getByError(device_code); + dwTaskNo = this.itemProtocol.getDwTaskNo(device_code); + if (byMode != last_byMode) { this.execute_log.setResource(this.device_code, this.device_code); - this.execute_log.log("设备:" + device_code + ",last_mode -> mode:" + last_mode + "->" + mode); + this.execute_log.log("设备:" + device_code + ",last_byMode -> byMode:" + last_byMode + "->" + byMode); } - if (move != last_move) { + if (bySignal != last_bySignal) { this.execute_log.setResource(this.device_code, this.device_code); - this.execute_log.log("设备:" + device_code + ",last_move -> move:" + last_mode + "->" + move); - if (move == 0) { - thingToNothing(); - } - this.setRequireSucess(false); - + this.execute_log.log("设备:" + device_code + ",last_bySignal -> bySignal:" + last_bySignal + "->" + bySignal); } - if (error != last_error) { + if (byAction != last_byAction) { this.execute_log.setResource(this.device_code, this.device_code); - this.execute_log.log("设备:" + device_code + ",last_error -> error:" + last_error + "->" + error); + this.execute_log.log("设备:" + device_code + ",last_byAction -> byAction:" + last_byAction + "->" + byAction); } - - if ( move != 0 && task > 0) { - //inst_message - inst = instructionService.findByCodeFromCache(String.valueOf(task)); - if (inst != null) { - inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code() + " 载具号:" + inst.getVehicle_code(); - if(mode == 2){ - if (StrUtil.equals(inst.getInstruction_status(), "1") && StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) { - finish_instruction(); - } - } - if (StrUtil.equals(inst.getInstruction_status(), "0") && StrUtil.equals(this.getDeviceCode(), inst.getStart_device_code())) { - inst.setInstruction_status("1"); - instructionService.update(inst); - } - } + if (byError != last_byError) { + this.execute_log.setResource(this.device_code, this.device_code); + this.execute_log.log("设备:" + device_code + ",last_byError -> byError:" + last_byError + "->" + byError); + } + if (dwTaskNo != last_dwTaskNo) { + this.execute_log.setResource(this.device_code, this.device_code); + this.execute_log.log("设备:" + device_code + ",last_dwTaskNo -> dwTaskNo:" + last_dwTaskNo + "->" + dwTaskNo); } + } catch (Exception var17) { return; } - if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); - message = "信号量同步异常"; - //未联机 - } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); - message = "未联机"; - //有报警 - } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); - message = "有报警"; - //无报警 + if (1 > 2) { +// this.setIsonline(false); +// this.setIserror(true); +// message = "信号量同步异常"; +// //未联机 +// } else if (mode == 0) { +// this.setIsonline(false); +// this.setIserror(true); +// message = "未联机"; +// //有报警 +// } else if (error != 0) { +// this.setIsonline(false); +// this.setIserror(true); +// message = "有报警"; +// //无报警 } else { this.setIsonline(true); this.setIserror(false); message = ""; Instruction instruction = null; List toInstructions; - switch (mode) { - case 1: - log.debug("设备运转模式:等待工作"); - break; - case 2: - //申请任务 - if (!StrUtil.isEmpty(material) && !StrUtil.isEmpty(qty) && material.length() > 0 && qty.length() > 0 && !requireSucess) { - this.execute_log.log("设备:" + device_code + ",material:" + material + ",qty:" + qty); - this.instruction_require(container); - } - break; - case 3: - - break; - case 4: - //叫料 - - break; - case 5: - //申请空盘 - if (move == 0 && !requireSucess) { - apply_OutEmpty(); - } - break; - case 6: - //申请入库 - if (move != 0 && !applySucess) { - instruction_apply(); - } - if (move != 0 && !requireSucess) { - apply_InEmpty(); - } - break; - } - - - switch (flag) { - //取货完成 - case 1: - writing(2); - break; - //放货完成 - case 2: - writing(3); - break; - - } } - last_mode = mode; - last_error = error; - last_move = move; - last_task = task; + last_byMode = byMode; + last_bySignal = bySignal; + last_byAction = byAction; + last_byError = byError; + last_dwTaskNo = dwTaskNo; } public boolean exe_error() { - if (this.error == 0) { - return true; - } else { - log.debug("设备报警"); - return false; + return false; + } + + public void writing(int type, String value) { + String param = ""; + if (type == 1){ + param = "Application_GVL_AGV_To_AGV_number_Fr_Command"; + param = param.replace("number", device_code).replace("\"", ""); + } else if (type == 2){ + param = "Application_GVL_AGV_To_AGV_number_Fr_Target"; + param = param.replace("number", device_code).replace("\"", ""); + } else if (type == 3){ + param = "Application_GVL_AGV_To_AGV_number_Fr_TaskNo"; + param = param.replace("number", device_code).replace("\"", ""); } + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + param; + String opcservcerid = this.getDevice().getOpc_server_id(); + Server server = ReadUtil.getServer(opcservcerid); + Map itemMap = new HashMap(); + itemMap.put(to_param, value); + + ReadUtil.write(itemMap, server); } protected void thingToNothing() { @@ -299,336 +257,10 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver return true; } - protected void executing(Instruction instruction) { - this.executing(1, instruction, ""); - } - - public void executing(int command, Instruction instruction, String appendMessage) { - String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_command; - String to_target = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_target; - String to_task = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_task; - if (appendMessage == null) { - appendMessage = ""; - } - if (instruction != null) { - instruction_num = Integer.parseInt(instruction.getInstruction_code()); - } - String opcservcerid = this.getDevice().getOpc_server_id(); - Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - itemMap.put(to_command, 1); - itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); - - } public void executing(Server server, Map itemMap) { ReadUtil.write(itemMap, server); } - public void writing(int command) { - String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_command; - - String opcservcerid = this.getDevice().getOpc_server_id(); - Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - - } - - public void writing(int command, int target, int task) { - - String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + org.nl.acs.device_driver.standard_conveyor_control_with_scanner.ItemProtocol.item_to_command; - String to_target = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + org.nl.acs.device_driver.standard_conveyor_control_with_scanner.ItemProtocol.item_to_target; - String to_task = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + org.nl.acs.device_driver.standard_conveyor_control_with_scanner.ItemProtocol.item_to_task; - String opcservcerid = this.getDevice().getOpc_server_id(); - Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - itemMap.put(to_command, command); - itemMap.put(to_target, target); - itemMap.put(to_task, task); - this.execute_log.setResource(this.device_code, device_code); - this.execute_log.log("设备:{},下发作业命令:{},目标站:{},任务号:{}", device_code, command, target, task); - ReadUtil.write(itemMap, server); - } - - public void writing(int type, int command) { - String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_command; - String to_target = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_target; - String to_task = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_task; - String opcservcerid = this.getDevice().getOpc_server_id(); - Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - if (type == 1) { - itemMap.put(to_command, command); - } else if (type == 2) { - itemMap.put(to_target, command); - - } else if (type == 3) { - itemMap.put(to_task, command); - } - ReadUtil.write(itemMap, server); - - } - - public boolean instruction_apply() throws Exception { - Date date = new Date(); - if (date.getTime() - this.instruction_apply_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); - return false; - } else { - this.instruction_apply_time = date; - //container_code - List taskList = taskserver.queryTaskByDeviceCode(this.device_code); - // - if (!ObjectUtil.isEmpty(taskList)) { - TaskDto task = taskList.get(0); - String taskid = task.getTask_id(); - String taskcode = task.getTask_code(); - String vehiclecode = task.getVehicle_code(); - String priority = task.getPriority(); - String start_point_code = task.getStart_point_code(); - String start_device_code = task.getStart_device_code(); - String route_plan_code = task.getRoute_plan_code(); - - List shortPathsList = routeLineService.getShortPathLines(start_device_code, task.getNext_device_code(), route_plan_code); - RouteLineDto routeLineDto = shortPathsList.get(0); - - String path = routeLineDto.getPath(); - String type = routeLineDto.getType(); - String[] str = path.split("->"); - if (!StrUtil.equals(type, "0")) { - return false; - } - List pathlist = Arrays.asList(str); - int index = 0; - for (int m = 0; m < pathlist.size(); m++) { - if (pathlist.get(m).equals(start_device_code)) { - index = m + 1; - break; - } - } - String next_device_code = pathlist.get(index); - Device startdevice = deviceAppservice.findDeviceByCode(start_device_code); - Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code); - String next_point_code; - if (StrUtil.equals(deviceAppservice.findDeviceTypeByCode(next_device_code), "storage")) { - next_point_code = task.getTo_x() + "-" + task.getTo_y() + "-" + task.getTo_z(); - } else { - next_point_code = next_device_code; - } - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setRemark(task.getRemark()); - instdto.setMaterial(task.getMaterial()); - instdto.setQuantity(task.getQuantity()); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setVehicle_code(vehiclecode); - String now = DateUtil.now(); - instdto.setCreate_time(now); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setPriority(priority); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(start_point_code); - try { - instructionService.create(instdto); - } catch (Exception e) { - task.setRemark("指令创建失败:" + e); - taskserver.updateByCodeFromCache(task); - throw new RuntimeException("指令创建失败:" + e); - } - //创建指令后修改任务状态 - WQLObject taskwo = WQLObject.getWQLObject("acs_task"); - task.setTask_status("1"); - JSONObject json = JSONObject.fromObject(task); - taskwo.update(json); - applySucess = true; - } else { - - } - } - return true; - } - - public boolean instruction_require(String container_code) { - return instruction_require(container_code, WcsConfig.task_container_type_default_desc); - } - - /** - * 请求指令 - * - * @param container_code - * @param container_type - */ - public synchronized boolean instruction_require(String container_code, String container_type) { - Date date = new Date(); - if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); - return false; - } else { - this.instruction_require_time = date; - TaskDto dto = new TaskDto(); - String now = DateUtil.now(); - dto.setTask_id(IdUtil.simpleUUID()); - dto.setCreate_by(this.getDevice().getDevice_code()); - dto.setUpdate_by(this.getDevice().getDevice_code()); - dto.setStart_point_code(this.getDevice().getDevice_code()); - dto.setVehicle_code(container_code); - dto.setVehicle_type(container_type); - - String taskcode = CodeUtil.getNewCode("TASK_NO"); - dto.setTask_code("-" + taskcode); - dto.setTask_status("0"); - dto.setPriority("101"); - RouteLineDto jo = routelineserver.findByCode(this.getDevice().getDevice_code()); - String next_device_codecode = jo.getNext_device_code(); - if (StrUtil.isEmpty(next_device_codecode)) { - throw new RuntimeException("该设备未找到对应路由"); - } - dto.setNext_point_code(next_device_codecode); - dto.setUpdate_time(now); - dto.setCreate_time(now); - - WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = JSONObject.fromObject(dto); - wo.insert(json); - requireSucess = false; - return true; - } - } - - - public synchronized boolean finish_instruction() throws Exception { - instructionService.finish(inst); - return true; - } - public void apply_OutEmpty() { - String result = acsToWmsService.apply_OutEmpty(this.getDeviceCode()); - JSONObject jo = JSONObject.fromObject(result); - if (ObjectUtil.isEmpty(jo)) { - message = "接口不通"; - } else { - if (jo.getInt("status") == 200) { - this.setRequireSucess(true); - } else { - this.setRequireSucess(false); - } - } - } - - public synchronized boolean apply_InEmpty() throws Exception { - Date date = new Date(); - if (date.getTime() - this.instruction_require_time.getTime() < 6000) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); - return false; - } else { - this.instruction_require_time = date; - //container_code - List taskList = taskserver.queryTaskByDeviceCode(this.device_code); - // - if (!ObjectUtil.isEmpty(taskList)) { - TaskDto task = taskList.get(0); - String taskid = task.getTask_id(); - String taskcode = task.getTask_code(); - String vehiclecode = task.getVehicle_code(); - String priority = task.getPriority(); - String start_point_code = task.getStart_point_code(); - String start_device_code = task.getStart_device_code(); - String route_plan_code = task.getRoute_plan_code(); - - List shortPathsList = routeLineService.getShortPathLines(start_device_code, task.getNext_device_code(), route_plan_code); - RouteLineDto routeLineDto = shortPathsList.get(0); - - String path = routeLineDto.getPath(); - String type = routeLineDto.getType(); - String[] str = path.split("->"); - if (!StrUtil.equals(type, "0")) { - return false; - } - List pathlist = Arrays.asList(str); - int index = 0; - for (int m = 0; m < pathlist.size(); m++) { - if (pathlist.get(m).equals(start_device_code)) { - index = m + 1; - break; - } - } - String next_device_code = pathlist.get(index); - Device startdevice = deviceAppservice.findDeviceByCode(start_device_code); - Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code); - String next_point_code; - if (StrUtil.equals(deviceAppservice.findDeviceTypeByCode(next_device_code), "storage")) { - next_point_code = task.getTo_x() + "-" + task.getTo_y() + "-" + task.getTo_z(); - } else { - next_point_code = next_device_code; - } - Instruction instdto = new Instruction(); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setRemark(task.getRemark()); - instdto.setMaterial(task.getMaterial()); - instdto.setQuantity(task.getQuantity()); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setVehicle_code(vehiclecode); - String now = DateUtil.now(); - instdto.setCreate_time(now); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setPriority(priority); - instdto.setInstruction_status("0"); - instdto.setExecute_device_code(start_point_code); - try { - instructionService.create(instdto); - } catch (Exception e) { - task.setRemark("指令创建失败:" + e); - taskserver.updateByCodeFromCache(task); - throw new RuntimeException("指令创建失败:" + e); - } //创建指令后修改任务状态 - WQLObject taskwo = WQLObject.getWQLObject("acs_task"); - task.setTask_status("1"); - JSONObject json = JSONObject.fromObject(task); - taskwo.update(json); - requireSucess = true; - } else { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { - //{"status":200,"message":"任务状态反馈成功!","data":{},"errArr":[]} - String result = acsToWmsService.apply_InEmpty(this.getDeviceCode(), "1", "1", this.container); - JSONObject jo = JSONObject.fromObject(result); - if (ObjectUtil.isEmpty(jo)) { - message = "接口不通"; - } else { - if (jo.getInt("status") == 200) { - this.setRequireSucess(true); - } else { - this.setRequireSucess(false); - } - } - - } - } - } - return true; - } } diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsZDService.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsZDService.java index cf50b6c..a428fc6 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsZDService.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsZDService.java @@ -20,7 +20,7 @@ public interface AcsToWmsZDService { * * @return Map */ - Map taskFeedback(Map whereJson) throws Exception; + Map taskFeedback(Map whereJson); /** * 任务取消 @@ -28,7 +28,7 @@ public interface AcsToWmsZDService { * * @return Map */ - Map taskDeprecate(Map whereJson) throws Exception; + Map taskDeprecate(Map whereJson); /** * 设备查询 @@ -36,5 +36,5 @@ public interface AcsToWmsZDService { * * @return Map */ - Map checkDeviceStatus(Map whereJson) throws Exception; + Map checkDeviceStatus(Map whereJson); } diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java new file mode 100644 index 0000000..49e4a4d --- /dev/null +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AgvWaitUtil.java @@ -0,0 +1,315 @@ +package org.nl.acs.ext.wms.service; + +import net.sf.json.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device_driver.standard_conveyor_control.StandardCoveyorControlDeviceDriver; +import org.nl.acs.device_driver.standard_conveyor_line.StandardConveyorLineDeviceDriver; +import org.nl.acs.ext.wms.service.impl.AcsToWmsZDServiceImpl; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.instruction.service.dto.Instruction; +import org.nl.acs.log.service.LogServer; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceAppService; +import org.nl.exception.BadRequestException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author: geng by + * @createDate: 2022/12/5 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class AgvWaitUtil { + private final DeviceAppService deviceAppService; + private final AcsToWmsZDServiceImpl acsToWmsZDService; + private final InstructionService instructionService; + @Autowired + LogServer logServer; + + //取货前等待 + public Map waitInGet(String device_code, Map feedMap, JSONObject param) { + String inst_code = param.getString("task_code"); + Instruction instructionDto = instructionService.findByCode(inst_code); + String task_code = String.valueOf(feedMap.get("taskCode")); + StandardConveyorLineDeviceDriver standardConveyorLineDeviceDriver; + StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; + Device device = deviceAppService.findDeviceByCode(device_code); + JSONObject map = new JSONObject(); + String type = ""; + if (device.getDeviceDriver() instanceof StandardConveyorLineDeviceDriver) { + standardConveyorLineDeviceDriver = (StandardConveyorLineDeviceDriver) device.getDeviceDriver(); + if (standardConveyorLineDeviceDriver.getMove() == 1 && standardConveyorLineDeviceDriver.getAction() == 1) { + feedMap.put("feedbackStatus", "applyTake"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = Integer.parseInt((String) feedback.get("responseCode")); + String responseMessage = String.valueOf(feedback.get("responseMessage")); + if (responseCode == 0) { + feedback.put("feedbackStatus", "taking"); + acsToWmsZDService.taskFeedback(feedMap); + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败!"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,起点位置无货!move = " + standardConveyorLineDeviceDriver.getMove() + "action = " + standardConveyorLineDeviceDriver.getAction()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,起点位置无货!"); + } + } + if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + if (standardCoveyorControlDeviceDriver.getBySignal() == 1 && standardCoveyorControlDeviceDriver.getByAction() == 0) { + feedMap.put("feedbackStatus", "applyTake"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = Integer.parseInt((String) feedback.get("responseCode")); + String responseMessage = String.valueOf(feedback.get("responseMessage")); + if (responseCode == 0) { + feedback.put("feedbackStatus", "taking"); + acsToWmsZDService.taskFeedback(feedMap); + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败!"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,起点位置无货!move = " + standardCoveyorControlDeviceDriver.getBySignal()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,起点位置无货!"); + } + } + return map; + } + + //取货完成等待 + public Map waitOutGet(String device_code, Map feedMap, JSONObject param) { + String inst_code = param.getString("task_code"); + Instruction instructionDto = instructionService.findByCode(inst_code); + String task_code = String.valueOf(feedMap.get("taskCode")); + StandardConveyorLineDeviceDriver standardConveyorLineDeviceDriver; + StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; + Device device = deviceAppService.findDeviceByCode(device_code); + JSONObject map = new JSONObject(); + String type = ""; + if (device.getDeviceDriver() instanceof StandardConveyorLineDeviceDriver) { + standardConveyorLineDeviceDriver = (StandardConveyorLineDeviceDriver) device.getDeviceDriver(); + if (standardConveyorLineDeviceDriver.getMove() == 0) { + standardConveyorLineDeviceDriver.writing(2); + feedMap.put("feedbackStatus", "takeFinish"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = (int) feedback.get("responseCode"); + String responseMessage = (String) feedback.get("responseMessage"); + if (responseCode == 0) { + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败!"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,取货完成后,起点位置仍有货!move=" + standardConveyorLineDeviceDriver.getMove()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,起点位置有货!"); + } + } + if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + if (standardCoveyorControlDeviceDriver.getBySignal() == 0) { + standardCoveyorControlDeviceDriver.writing(1, "2"); + feedMap.put("feedbackStatus", "takeFinish"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = (int) feedback.get("responseCode"); + String responseMessage = (String) feedback.get("responseMessage"); + if (responseCode == 0) { + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败!"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,取货完成后,起点位置仍有货!move=" + standardCoveyorControlDeviceDriver.getBySignal()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,起点位置有货!"); + } + } + return map; + } + + //放货前等待 + public Map waitInPut(String device_code, Map feedMap, JSONObject param) { + String inst_code = param.getString("task_code"); + Instruction instructionDto = instructionService.findByCode(inst_code); + String task_code = String.valueOf(feedMap.get("taskCode")); + StandardConveyorLineDeviceDriver standardConveyorLineDeviceDriver; + StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; + Device device = deviceAppService.findDeviceByCode(device_code); + JSONObject map = new JSONObject(); + String type = ""; + if (device.getDeviceDriver() instanceof StandardConveyorLineDeviceDriver) { + standardConveyorLineDeviceDriver = (StandardConveyorLineDeviceDriver) device.getDeviceDriver(); + if (standardConveyorLineDeviceDriver.getMove() == 0 && standardConveyorLineDeviceDriver.getAction() == 2) { + feedMap.put("feedbackStatus", "applyPut"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = Integer.parseInt((String) feedback.get("responseCode")); + String responseMessage = (String) feedback.get("responseMessage"); + if (responseCode == 0) { + feedback.put("feedbackStatus", "puting"); + acsToWmsZDService.taskFeedback(feedMap); + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败!"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,终点位置有货!move = " + standardConveyorLineDeviceDriver.getMove() + "action = " + standardConveyorLineDeviceDriver.getAction()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,终点位置有货!"); + } + } + if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + if (standardCoveyorControlDeviceDriver.getBySignal() == 0 && standardCoveyorControlDeviceDriver.getByAction() == 0) { + feedMap.put("feedbackStatus", "applyPut"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = Integer.parseInt((String) feedback.get("responseCode")); + String responseMessage = (String) feedback.get("responseMessage"); + if (responseCode == 0) { + feedback.put("feedbackStatus", "puting"); + acsToWmsZDService.taskFeedback(feedMap); + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败!"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,终点位置有货!move = " + standardCoveyorControlDeviceDriver.getBySignal()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,终点位置有货!"); + } + } + return map; + } + + + //放货完成等待 + public Map waitOutPut(String device_code, Map feedMap, JSONObject param) { + String inst_code = param.getString("task_code"); + Instruction instructionDto = instructionService.findByCode(inst_code); + String task_code = String.valueOf(feedMap.get("taskCode")); + StandardConveyorLineDeviceDriver standardConveyorLineDeviceDriver; + StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; + Device device = deviceAppService.findDeviceByCode(device_code); + JSONObject map = new JSONObject(); + String type = ""; + if (device.getDeviceDriver() instanceof StandardConveyorLineDeviceDriver) { + standardConveyorLineDeviceDriver = (StandardConveyorLineDeviceDriver) device.getDeviceDriver(); + if (standardConveyorLineDeviceDriver.getMove() == 1) { + standardConveyorLineDeviceDriver.writing(3); + feedMap.put("feedbackStatus", "putFinish"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = (int) feedback.get("responseCode"); + String responseMessage = (String) feedback.get("responseMessage"); + if (responseCode == 0) { + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,放货货完成后,终点位置仍无货!move=" + standardConveyorLineDeviceDriver.getMove()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,放货货完成后,终点位置仍无货!"); + } + } + if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { + standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); + if (standardCoveyorControlDeviceDriver.getBySignal() == 1) { + standardCoveyorControlDeviceDriver.writing(1, "3"); + feedMap.put("feedbackStatus", "putFinish"); + Map feedback = acsToWmsZDService.taskFeedback(feedMap); + int responseCode = (int) feedback.get("responseCode"); + String responseMessage = (String) feedback.get("responseMessage"); + if (responseCode == 0) { + map.put("status", 200); + map.put("message", "请求成功"); + type = "info"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + } else { + map.put("status", responseCode); + map.put("message", responseMessage); + type = "erro"; + logServer.log(task_code, "feedbackTask", type, param.toString(), String.valueOf(map), "400", "/restful/api/v3/feedbackTask", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败"); + } + } else { + map.put("status", 400); + map.put("message", "请求失败,放货货完成后,终点位置仍无货!move=" + standardCoveyorControlDeviceDriver.getBySignal()); + type = "erro"; + logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); + throw new BadRequestException("请求失败,放货货完成后,终点位置仍无货!"); + } + } + return map; + } +} diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsZDServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsZDServiceImpl.java index 6c8371f..9b3c64b 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsZDServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsZDServiceImpl.java @@ -156,7 +156,9 @@ public class AcsToWmsZDServiceImpl implements AcsToWmsZDService { TaskDto task_dto = (TaskDto) JSONObject.toBean(jo, TaskDto.class); try { taskService.create(task_dto); + logServer.log(taskCode, "taskCreate", "success", whereJson.toString(), "创建成功", String.valueOf(200), "/createTask", ""); } catch (Exception e) { + logServer.log(taskCode, "taskCreate", "error", whereJson.toString(), e.getMessage(), String.valueOf(400), "/createTask", ""); e.printStackTrace(); map.put("responseCode", 1); map.put("responseMessage", e.getMessage()); @@ -182,17 +184,21 @@ public class AcsToWmsZDServiceImpl implements AcsToWmsZDService { result = HttpRequest.post(url) .header("Authorization", token).body(String.valueOf(whereJson)) .execute(); + logServer.log(taskCode, "taskFeedback", "success", whereJson.toString(), result.body(), String.valueOf(result.getStatus()), url, carId); + JSONObject jo = JSONObject.fromObject(result.body()); + return jo; } catch (Exception e) { - logServer.log(taskCode, "taskFeedback", "error", whereJson.toString(), result.body(), String.valueOf(result.getStatus()), url, carId); + int status = 400; + if (!ObjectUtil.isEmpty(result)) { + status = result.getStatus(); + } + logServer.log(taskCode, "taskFeedback", "error", whereJson.toString(), e.getMessage(), String.valueOf(status), url, carId); Map map = new HashMap<>(); map.put("responseCode", 1); map.put("responseMessage", e.getMessage()); map.put("parameters", new HashMap<>()); return map; } - logServer.log(taskCode, "taskFeedback", "success", whereJson.toString(), result.body(), String.valueOf(result.getStatus()), url, carId); - JSONObject jo = JSONObject.fromObject(result.body()); - return jo; } @Override @@ -208,18 +214,20 @@ public class AcsToWmsZDServiceImpl implements AcsToWmsZDService { result = HttpRequest.post(url) .header("Authorization", token).body(String.valueOf(whereJson)) .execute(); + logServer.log(taskCode, "taskDeprecate", "success", whereJson.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); + JSONObject jo = JSONObject.fromObject(result.body()); + return jo; } catch (Exception e) { - e.printStackTrace(); - logServer.log(taskCode, "taskFeedback", "error", whereJson.toString(), e.getMessage(), String.valueOf(result.getStatus()), url, ""); + int status = 400; + if (!ObjectUtil.isEmpty(result)) { + status = result.getStatus(); + } + logServer.log(taskCode, "taskFeedback", "error", whereJson.toString(), e.getMessage(), String.valueOf(status), url, ""); Map map = new HashMap<>(); map.put("responseCode", 1); map.put("responseMessage", e.getMessage()); return map; } - logServer.log(taskCode, "taskDeprecate", "success", whereJson.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); - JSONObject jo = JSONObject.fromObject(result.body()); - log.info("taskDeprecate-----输出参数{}", jo.toString()); - return jo; } @Override @@ -241,16 +249,19 @@ public class AcsToWmsZDServiceImpl implements AcsToWmsZDService { result = HttpRequest.post(url) .header("Authorization", token).body(String.valueOf(whereJson)) .execute(); + JSONObject jo = JSONObject.fromObject(result.body()); + log.info("checkDeviceStatus-----输出参数{}", jo.toString()); + return jo; } catch (Exception e) { - e.printStackTrace(); - logServer.log(deviceCode, "checkDeviceStatus", "error", whereJson.toString(), e.getMessage(), String.valueOf(result.getStatus()), url, ""); + int status = 400; + if (!ObjectUtil.isEmpty(result)) { + status = result.getStatus(); + } + logServer.log(deviceCode, "checkDeviceStatus", "error", whereJson.toString(), e.getMessage(), String.valueOf(status), url, ""); map.put("responseCode", 1); map.put("responseMessage", e.getMessage()); return map; } - JSONObject jo = JSONObject.fromObject(result.body()); - log.info("checkDeviceStatus-----输出参数{}", jo.toString()); - return jo; } } diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java index 066793c..e48680e 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AgvToAcsServiceImpl.java @@ -4,8 +4,10 @@ import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONObject; +import org.nl.acs.device_driver.standard_conveyor_control.StandardCoveyorControlDeviceDriver; import org.nl.acs.device_driver.standard_conveyor_line.StandardConveyorLineDeviceDriver; import org.nl.acs.ext.wms.service.AgvToAcsService; +import org.nl.acs.ext.wms.service.AgvWaitUtil; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.LogServer; @@ -28,6 +30,7 @@ public class AgvToAcsServiceImpl implements AgvToAcsService { private final DeviceAppService deviceAppService; private final AcsToWmsZDServiceImpl acsToWmsZDService; private final InstructionService instructionService; + private final AgvWaitUtil agvWaitUtil; @Autowired LogServer logServer; @@ -36,7 +39,6 @@ public class AgvToAcsServiceImpl implements AgvToAcsService { public Map waitpointRequest(JSONObject param) { String inst_code = param.getString("task_code"); String address = param.getString("address"); - StandardConveyorLineDeviceDriver standardConveyorLineDeviceDriver; Instruction instructionDto = instructionService.findByCode(inst_code); Map map = new HashMap<>(); if (ObjectUtil.isEmpty(instructionDto)) { @@ -49,132 +51,25 @@ public class AgvToAcsServiceImpl implements AgvToAcsService { Map feedMap = new HashMap(); feedMap.put("taskCode", task_code); feedMap.put("taskType", instructionDto.getInstruction_type()); + feedMap.put("carId", instructionDto.getAgv_jobno()); String type = ""; String start_device_code = instructionDto.getStart_device_code(); String next_device_code = instructionDto.getNext_device_code(); if (address.contains("IN")) { String deviceCodeNow = address.substring(0, address.length() - 2); - Device deviceNow = deviceAppService.findDeviceByCode(deviceCodeNow); - if (deviceNow.getDeviceDriver() instanceof StandardConveyorLineDeviceDriver) { - standardConveyorLineDeviceDriver = (StandardConveyorLineDeviceDriver) deviceNow.getDeviceDriver(); - if (start_device_code.equals(deviceCodeNow)) { - if (standardConveyorLineDeviceDriver.getMove() == 1) { - feedMap.put("feedbackStatus", "applyTake"); - Map feedback = acsToWmsZDService.taskFeedback(feedMap); - int responseCode = Integer.parseInt((String) feedback.get("responseCode")); - String responseMessage = (String) feedback.get("responseMessage"); - if (responseCode == 0) { - feedback.put("feedbackStatus", "“taking"); - acsToWmsZDService.taskFeedback(feedMap); - map.put("status", 200); - map.put("message", "请求成功"); - type = "info"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - } else { - map.put("status", 400); - map.put("message", "操作失败"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败!"); - } - } else { - map.put("status", 400); - map.put("message", "请求失败,起点位置无货!"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败,起点位置无货!"); - } - } else if (deviceCodeNow.equals(next_device_code)) { - if (standardConveyorLineDeviceDriver.getMove() != 0) { - map.put("status", 400); - map.put("message", "请求失败,终点位置有货!"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败,终点位置有货!"); - } else { - feedMap.put("feedbackStatus", "applyPut"); - Map feedback = acsToWmsZDService.taskFeedback(feedMap); - int responseCode = Integer.parseInt((String) feedback.get("responseCode")); - String responseMessage = (String) feedback.get("responseMessage"); - if (responseCode == 0) { - feedback.put("feedbackStatus", "puting"); - acsToWmsZDService.taskFeedback(feedMap); - map.put("status", 200); - map.put("message", "请求成功"); - type = "info"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - } else { - logServer.log(task_code, "waitpointRequest", "waitpointRequest", param.toString(), feedback.toString(), responseCode + "", "", ""); - map.put("status", 400); - map.put("message", "操作失败"); - type = "erro"; - throw new BadRequestException("请求失败!"); - } - } - } + if (start_device_code.equals(deviceCodeNow)) { + return agvWaitUtil.waitInGet(deviceCodeNow,feedMap,param); + }else if (next_device_code.equals(deviceCodeNow)) { + return agvWaitUtil.waitOutGet(deviceCodeNow,feedMap,param); } - return map; } if (address.contains("OUT")) { String deviceCodeNow = address.substring(0, address.length() - 3); - Device deviceNow = deviceAppService.findDeviceByCode(deviceCodeNow); - if (deviceNow.getDeviceDriver() instanceof StandardConveyorLineDeviceDriver) { - standardConveyorLineDeviceDriver = (StandardConveyorLineDeviceDriver) deviceNow.getDeviceDriver(); - if (start_device_code.equals(deviceCodeNow)) { - if (standardConveyorLineDeviceDriver.getMove() == 0) { - standardConveyorLineDeviceDriver.writing(1, 2); - feedMap.put("feedbackStatus", "takeFinish"); - Map feedback = acsToWmsZDService.taskFeedback(feedMap); - int responseCode = (int) feedback.get("responseCode"); - String responseMessage = (String) feedback.get("responseMessage"); - if (responseCode == 0) { - map.put("status", 200); - map.put("message", "请求成功"); - type = "info"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - } else { - map.put("status", 400); - map.put("message", "操作失败"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), feedback.toString(), responseCode + "", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败!"); - } - } else { - map.put("status", 400); - map.put("message", "请求失败,起点位置有货!"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败,起点位置有货!"); - } - } else if (next_device_code.equals(deviceCodeNow)) { - if (standardConveyorLineDeviceDriver.getMove() == 0) { - map.put("status", 400); - map.put("message", "请求失败,终点位置无货!"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败,终点位置无货!"); - } else { - standardConveyorLineDeviceDriver.writing(1, 3); - feedMap.put("feedbackStatus", "putFinish"); - Map feedback = acsToWmsZDService.taskFeedback(feedMap); - int responseCode = (int) feedback.get("responseCode"); - String responseMessage = (String) feedback.get("responseMessage"); - if (responseCode == 0) { - map.put("status", 200); - map.put("message", "请求成功"); - type = "info"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "200", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - } else { - map.put("status", 400); - map.put("message", "操作失败"); - type = "erro"; - logServer.log(task_code, "waitpointRequest", type, param.toString(), String.valueOf(map), "400", "api/agv/waitpointRequest", instructionDto.getVehicle_code()); - throw new BadRequestException("请求失败"); - } - } - } + if (start_device_code.equals(deviceCodeNow)) { + return agvWaitUtil.waitInPut(deviceCodeNow,feedMap,param); + }else if (next_device_code.equals(deviceCodeNow)) { + return agvWaitUtil.waitOutPut(deviceCodeNow,feedMap,param); } - return map; } map.put("status", 400); map.put("message", "请求失败,IN OUT 站点错误!"); diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index de1b62e..0cdbfa3 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -438,17 +438,17 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { continue; } if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - jo.put("device_code", device.getDevice_code()); - jo.put("mode", standardCoveyorControlDeviceDriver.getMode()); - jo.put("move", standardCoveyorControlDeviceDriver.getMove()); - jo.put("hasGoods", standardCoveyorControlDeviceDriver.getHasGoods()); - jo.put("isOnline", standardCoveyorControlDeviceDriver.getIsonline()); - jo.put("error", standardCoveyorControlDeviceDriver.getError()); - jo.put("isError", standardCoveyorControlDeviceDriver.getIserror()); - jo.put("requestSucess", standardCoveyorControlDeviceDriver.getRequireSucess()); - jo.put("applySucess", standardCoveyorControlDeviceDriver.getApplySucess()); - jo.put("message", standardCoveyorControlDeviceDriver.getMessage()); +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("mode", standardCoveyorControlDeviceDriver.getMode()); +// jo.put("move", standardCoveyorControlDeviceDriver.getMove()); +// jo.put("hasGoods", standardCoveyorControlDeviceDriver.getHasGoods()); +// jo.put("isOnline", standardCoveyorControlDeviceDriver.getIsonline()); +// jo.put("error", standardCoveyorControlDeviceDriver.getError()); +// jo.put("isError", standardCoveyorControlDeviceDriver.getIserror()); +// jo.put("requestSucess", standardCoveyorControlDeviceDriver.getRequireSucess()); +// jo.put("applySucess", standardCoveyorControlDeviceDriver.getApplySucess()); +// jo.put("message", standardCoveyorControlDeviceDriver.getMessage()); } else if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); jo.put("device_code", device.getDevice_code()); @@ -686,16 +686,16 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - jo.put("device_code", device.getDevice_code()); - jo.put("mode", standardCoveyorControlDeviceDriver.getMode()); - jo.put("move", standardCoveyorControlDeviceDriver.getMove()); - jo.put("hasGoods", standardCoveyorControlDeviceDriver.getHasGoods()); - jo.put("isOnline", standardCoveyorControlDeviceDriver.getIsonline()); - jo.put("error", standardCoveyorControlDeviceDriver.getError()); - jo.put("isError", standardCoveyorControlDeviceDriver.getIserror()); - jo.put("requestSucess", standardCoveyorControlDeviceDriver.getRequireSucess()); - jo.put("applySucess", standardCoveyorControlDeviceDriver.getApplySucess()); - jo.put("message", standardCoveyorControlDeviceDriver.getMessage()); +// jo.put("device_code", device.getDevice_code()); +// jo.put("mode", standardCoveyorControlDeviceDriver.getMode()); +// jo.put("move", standardCoveyorControlDeviceDriver.getMove()); +// jo.put("hasGoods", standardCoveyorControlDeviceDriver.getHasGoods()); +// jo.put("isOnline", standardCoveyorControlDeviceDriver.getIsonline()); +// jo.put("error", standardCoveyorControlDeviceDriver.getError()); +// jo.put("isError", standardCoveyorControlDeviceDriver.getIserror()); +// jo.put("requestSucess", standardCoveyorControlDeviceDriver.getRequireSucess()); +// jo.put("applySucess", standardCoveyorControlDeviceDriver.getApplySucess()); +// jo.put("message", standardCoveyorControlDeviceDriver.getMessage()); } else if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); jo.put("device_code", device.getDevice_code()); diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java index 79c13dc..d56d2f3 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/rest/TaskController.java @@ -121,6 +121,30 @@ public class TaskController { return new ResponseEntity<>(HttpStatus.OK); } + @Log("任务异常完成") + @ApiOperation("任务异常完成") + @PostMapping(value = "/errorFinish/{id}") + public ResponseEntity errorFinish(@RequestBody String id) throws Exception { + taskService.errorFinish(id); + return new ResponseEntity<>(HttpStatus.OK); + } + + @Log("任务异常") + @ApiOperation("任务异常") + @PostMapping(value = "/exception/{id}") + public ResponseEntity exception(@RequestBody String id) throws Exception { + taskService.exception(id); + return new ResponseEntity<>(HttpStatus.OK); + } + + @Log("任务作废") + @ApiOperation("任务异常") + @PostMapping(value = "/deprecate/{id}") + public ResponseEntity deprecate(@RequestBody String id) throws Exception { + taskService.deprecate(id); + return new ResponseEntity<>(HttpStatus.OK); + } + @Log("手动创建指令") @ApiOperation("手动创建指令") @PostMapping(value = "/createInst/{id}") diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java index db81e4f..4a70c47 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java @@ -147,6 +147,25 @@ public interface TaskService { */ void deleteAll(String[] ids) throws Exception; + /** + * 异常完成任务 + * + * @param ids + */ + void errorFinish(String ids); + + /** + * 异常 + * + * @param ids + */ + void exception(String ids); + /** + * 作废 + * + * @param ids + */ + void deprecate(String ids); /** * 完成任务 * diff --git a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index e9ddead..a82d36e 100644 --- a/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -617,6 +617,87 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } } + @Override + @Transactional(rollbackFor = Exception.class) + public void errorFinish(String ids) { + TaskDto entity = this.findById(ids); + Instruction instruction = instructionService.findByTaskcode(entity.getTask_code()); + if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); + InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); + InstructionDto instdto = instructionservice.findByTaskid(ids, "instruction_status <2 "); + if (instdto != null) throw new BadRequestException("有指令未完成!"); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_by(currentUsername); + entity.setTask_status("2"); + entity.setRemark("异常完成"); + WQLObject wo = WQLObject.getWQLObject("acs_task"); + JSONObject json = JSONObject.fromObject(entity); + wo.update(json); + Map feedMap = new HashMap(); + feedMap.put("taskCode", entity.getTask_code()); + feedMap.put("taskType", entity.getTask_type()); + feedMap.put("carId", instruction.getAgv_jobno()); + feedMap.put("feedbackStatus", "errorFinish"); + Map map = acsToWmsZDService.taskFeedback(feedMap); + removeByCodeFromCache(entity.getTask_code()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void exception(String ids) { + TaskDto entity = this.findById(ids); + Instruction instruction = instructionService.findByTaskcode(entity.getTask_code()); + if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); + InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); + InstructionDto instdto = instructionservice.findByTaskid(ids, "instruction_status <2 "); + if (instdto != null) throw new BadRequestException("有指令未完成!"); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_by(currentUsername); + entity.setTask_status("3"); + entity.setRemark("任务异常"); + WQLObject wo = WQLObject.getWQLObject("acs_task"); + JSONObject json = JSONObject.fromObject(entity); + wo.update(json); + Map feedMap = new HashMap(); + feedMap.put("taskCode", entity.getTask_code()); + feedMap.put("taskType", entity.getTask_type()); + feedMap.put("carId", instruction.getAgv_jobno()); + feedMap.put("feedbackStatus", "exception"); + acsToWmsZDService.taskFeedback(feedMap); + removeByCodeFromCache(entity.getTask_code()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deprecate(String ids) { + TaskDto entity = this.findById(ids); + Instruction instruction = instructionService.findByTaskcode(entity.getTask_code()); + if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); + InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl"); + InstructionDto instdto = instructionservice.findByTaskid(ids, "instruction_status <2 "); + if (instdto != null) throw new BadRequestException("有指令未完成!"); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_by(currentUsername); + entity.setTask_status("3"); + entity.setRemark("任务作废"); + WQLObject wo = WQLObject.getWQLObject("acs_task"); + JSONObject json = JSONObject.fromObject(entity); + wo.update(json); + Map feedMap = new HashMap(); + feedMap.put("taskCode", entity.getTask_code()); + feedMap.put("taskType", entity.getTask_type()); + feedMap.put("carId", instruction.getAgv_jobno()); + feedMap.put("feedbackStatus", "deprecate"); + acsToWmsZDService.taskFeedback(feedMap); + removeByCodeFromCache(entity.getTask_code()); + } + @Override @Transactional(rollbackFor = Exception.class) public void finish(String id) { @@ -653,7 +734,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { HttpResponse body = null; boolean flag = false; try { - body = acstowmsService.feedbackTaskStatusToWms(ja); + //body = acstowmsService.feedbackTaskStatusToWms(ja); } catch (Exception e) { flag = true; message = e.getMessage(); @@ -688,8 +769,14 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { taskFeedbackService.update(feefbackdto); } } else { - int status = body.getStatus(); - JSONObject jo = JSONObject.fromObject(body.body()); + int status = 400; + String job = ""; + if (ObjectUtil.isNotEmpty(body)){ + status = body.getStatus(); + job = body.body(); + JSONObject jo = JSONObject.fromObject(job); + job = jo.getString("message"); + } if (ObjectUtil.isEmpty(feefbackdto)) { feefbackdto = new TaskFeedbackDto(); feefbackdto.setTask_id(entity.getTask_id()); @@ -697,7 +784,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { feefbackdto.setTask_status(entity.getTask_status()); feefbackdto.setVehicle_type(entity.getVehicle_type()); feefbackdto.setVehicle_code(entity.getVehicle_code()); - feefbackdto.setError_code(String.valueOf(body.getStatus())); + feefbackdto.setError_code(String.valueOf(status)); feefbackdto.setStart_device_code(entity.getStart_device_code()); feefbackdto.setStart_point_code(entity.getNext_point_code()); feefbackdto.setNext_device_code(entity.getNext_device_code()); @@ -710,7 +797,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } } else { feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); + feefbackdto.setRemark("失败"); } taskFeedbackService.create(feefbackdto); } else { @@ -723,7 +810,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } } else { feefbackdto.setIs_finished("0"); - feefbackdto.setRemark(jo.getString("message")); + feefbackdto.setRemark(job); } taskFeedbackService.update(feefbackdto); } diff --git a/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java b/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java index 87814b5..c34d355 100644 --- a/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java +++ b/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java @@ -88,2846 +88,2846 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { } public void autoRun() { - - try { - AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigServiceImpl.class); - InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); - AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); - AgvService AgvService = SpringContextHolder.getBean(AgvService.class); - DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); - DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); - AcsToXrlkService acsToXrlkService = SpringContextHolder.getBean(AcsToXrlkService.class); - ip = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); - port = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT)); - byte[] b = new byte[1028]; - s = new Socket(ip, port); - dos = new DataOutputStream(s.getOutputStream()); - dis = new DataInputStream(s.getInputStream()); - - while (bConnected) { - int count = dis.read(b); - - if (count == -1) { - break; - } - - int[] arr = new int[count]; - StringBuffer bs = new StringBuffer(); - - for (int i = 0; i < count; i++) { - int temp = b[i]; - if (temp < 0) - temp += 256; - arr[i] = temp; - StringBuffer bs1 = new StringBuffer("0"); - bs.append(temp < 16 ? bs1.append(Integer.toHexString(temp)) : Integer.toHexString(temp)); - } - - System.out.println("收到请求参数:" + bs); - boolean flag = false; - if (arr[8] * 256 + arr[9] == 0x73) { - byte[] data = null; - System.out.println("接收agv上报信息:" + bs); - //执行阶段 - int phase = arr[16] * 256 + arr[17]; - // agv任务号 - int index = arr[12] * 256 + arr[13]; - //任务号 - int ikey = arr[26] * 256 + arr[27]; - //站点号 - int agvaddr = arr[18] * 256 + arr[19]; - //车号 - int carno = arr[20]; - Instruction inst = null; - if (ikey != 0) { - inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); - } - log.info("接收agv上报信息:" + bs); - log.info("接收agv上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); - Device device = null; - String device_code = null; - String old_device_code = null; - String emptyNum = null; - if (agvaddr != 0) { - old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr); - if (StrUtil.contains(old_device_code, "-")) { - String[] point = old_device_code.split("-"); - device_code = point[0]; - } else if (StrUtil.contains(old_device_code, ".")) { - String[] point = old_device_code.split("\\."); - device_code = point[0]; - emptyNum = point[1]; - } else { - device_code = old_device_code; - } - device = deviceAppService.findDeviceByCode(device_code); - } - StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; - StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; - StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; - StandardStorageDeviceDriver standardStorageDeviceDriver; - NonLineInspectSiteDeviceDriver nonLineInspectSiteDeviceDriver; - NonLineManipulatorInspectSiteDeviceDriver nonLineManipulatorInspectSiteDeviceDriver; - StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; - ManipulatorInspectSiteNDCDeviceDriver manipulatorInspectSiteNDCDeviceDriver; - StandardManipulatorInspectSiteDeviceDriver standardManipulatorInspectSiteDeviceDriver; - StandardEmptyPalletSiteDeviceDriver standardEmptyPalletSiteDeviceDriver; - StandardManipulatorStackingSiteDeviceDriver standardManipulatorStackingSiteDeviceDriver; - StandardPhotoelectricInspectSiteDeviceDriver standardPhotoelectricInspectSiteDeviceDriver; - NdxySpecialDeviceDriver ndxySpecialDeviceDriver; - StorageConveyorDeviceDriver storageConveyorDeviceDriver; - int type = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.BUSINESSTYPE)); - - try { - switch (type) { - case 0: - if (phase == 0x01) { - data = AgvService.sendAgvOneModeInst(phase, index); - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("1"); - inst.setAgv_jobno(String.valueOf(index)); - inst.setSend_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - flag = true; - } - //分配 车id - else if (phase == 0x02) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - } - } - // 到达取货点请求取货 - else if (phase == 0x03) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardManipulatorStackingSiteDeviceDriver.writing(1, 7); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //光电检测站点(优先入库)edit - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 7); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //检测站点 - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //空盘堆叠站点 - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //输送机-控制点驱动 - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //普通站点 - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - - } - //标准版-货架 - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 取货完成请求离开 - else if (phase == 0x05) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardManipulatorStackingSiteDeviceDriver.writing(1, 2); - standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - //光电检测站点(优先入库) - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 2); - standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 2); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 0); - deviceService.changeDeviceStatus(jo); - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //请求放货 - else if (phase == 0x07) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardManipulatorStackingSiteDeviceDriver.writing(1, 8); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - //光电检测站点(优先入库) - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 8); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - - } - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 放货完成请求离开 - else if (phase == 0x09) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("6"); - instructionService.update(inst); - standardManipulatorStackingSiteDeviceDriver.writing(1, 3); - standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //光电检测站点(优先入库) - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 3); - standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 3); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x0A) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("2"); - instructionService.finish(inst); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //请求删除任务 - else if (phase == 0x30) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - data = AgvService.sendAgvOneModeInst(0x8F, index, 0); - } else { - log.info("未找到对应的指令无法删除"); - return; - } - } - //任务删除确认 - //(需要WCS反馈) - else if (phase == 0xFF) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - instructionService.cancel(inst.getInstruction_id()); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //进入区域 - else if (phase == 0x50) { - //开门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("1"); - if (standardAutodoorDeviceDriver.getAction() == 1) { - standardAutodoorDeviceDriver.OpenOrClose("1"); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - standardManipulatorStackingSiteDeviceDriver.writing(1, 5); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 5); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } - //离开区域 - else if (phase == 0x51) { - //关门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("2"); - if (standardAutodoorDeviceDriver.getAction() == 2) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - standardManipulatorStackingSiteDeviceDriver.writing(1, 6); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 6); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - } else if (phase == 0x64) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //上报异常 - else if (phase == 0x67) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - if (arr[18] * 256 + arr[19] == 0) { - dto.setState("IDLE"); - acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "0", ""); - } else { - StringBuffer errbs = new StringBuffer(); - for (int i = 0; i < ERROR.length; i++) { - if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) - errbs.append("," + ERROR[i]); - //反馈故障 - } - dto.setState("ERROR"); - acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "1", "error"); - } - } - //X坐标 - else if (phase == 0x70) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - carno = arr[18] * 256 + arr[19]; - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionX(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //Y坐标 - else if (phase == 0x71) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - carno = arr[18] * 256 + arr[19]; - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionY(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //角度 - else if (phase == 0x72) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - carno = arr[18] * 256 + arr[19]; - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionAngle(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //电量 - else if (phase == 0x73) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - carno = arr[18] * 256 + arr[19]; - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setEnergyLevel(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - break; - case 1: - //开始任务/上报订单号(无车id及状态) - if (phase == 0x01) { - data = AgvService.sendAgvOneModeInst(phase, index); - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("1"); - inst.setAgv_jobno(String.valueOf(index)); - inst.setSend_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - flag = true; - } - //分配 车id - else if (phase == 0x02) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - } - } - // 到达取货点请求取货 - else if (phase == 0x03) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { - storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); - HttpResponse response = acsToXrlkService.isTakePermission(device.getDevice_code()); - if (response.getStatus() == 200) { - JSONObject jo = JSONObject.fromObject(response.body()); - if (StrUtil.equals(jo.get("signal").toString(), "1")) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("AGV请求取货设备{},立库WMS不允许取货", device_code); - } - } else { - log.info("AGV请求取货设备{},接口请求立库WMS失败", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 取货完成请求离开 - else if (phase == 0x05) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { - storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); - HttpResponse response = acsToXrlkService.AGVWorkStatus(device.getDevice_code(), "2"); - if (response.getStatus() == 200) { - JSONObject jo = JSONObject.fromObject(response.body()); - if (StrUtil.equals(jo.get("result").toString(), "1")) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("AGV取货完成反馈设备{},{}", device_code, jo.getString("message")); - } - } else { - log.info("AGV取货完成反馈设备{},接口请求立库WMS失败", device_code); - } - - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 2); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 0); - deviceService.changeDeviceStatus(jo); - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 球磨车间请求上料 - //( Itype=2,需要WCS反馈Phase) - else if (phase == 0x07) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - // 球磨车间上料完成请求离开 - else if (phase == 0x09) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - //请求放货库位 - else if (phase == 0x0A) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //调用接口 - String result = acsToWmsService.requestTaskAgain(String.valueOf(agvaddr), inst.getTask_id(), inst.getVehicle_code()); - JSONObject jo = JSONObject.fromObject(result); - String next_device = jo.getString("data"); - - String next_point = ""; - Device next_point_device = deviceAppService.findDeviceByCode(next_device); - if (next_point_device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) next_point_device.getDeviceDriver(); - - int number = standardEmptyPalletSiteDeviceDriver.getNumber(); - int nowinstNum = instructionService.querySameDestinationInst(next_point); - if (number + nowinstNum >= Integer.parseInt(next_point_device.getExtraValue().get("max_emptypalletnum").toString())) { - log.info("当前叠盘位{},光电数量{},存在此设备指令数{},超过最大堆叠数量:{}无法反馈", next_point, number, nowinstNum, Integer.parseInt(device.getExtraValue().get("max_emptypalletnum").toString())); - return; - } - next_point = next_device + "." + (number + nowinstNum + 1); - } else { - next_point = next_device; - } - - int next_point_address = deviceService.queryAddressBydeviceCode(next_point); - data = AgvService.sendAgvOneModeInst(phase, index, next_point_address); - - TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); - TaskDto task = taskService.findByCodeFromCache(inst.getTask_code()); - task.setNext_device_code(next_device); - task.setNext_point_code(next_device); - taskService.update(task); - - inst.setNext_device_code(next_device); - inst.setNext_point_code(next_point); - instructionService.update(inst); - flag = true; - } - //到达放货点 - else if (phase == 0x0B) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { - storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); - HttpResponse response = acsToXrlkService.isPutPermission(device.getDevice_code()); - if (response.getStatus() == 200) { - JSONObject jo = JSONObject.fromObject(response.body()); - if (StrUtil.equals(jo.get("signal").toString(), "1")) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("AGV请求放货设备{},立库WMS不允许放货", device_code); - } - } else { - log.info("AGV请求放货设备{},接口请求立库WMS失败", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - //空盘堆叠站点 - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getNumber() < Integer.parseInt(emptyNum)) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}数量异常,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - - } - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //放货完成请求离开 - else if (phase == 0x0D) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //空盘堆叠站点 - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getNumber() == Integer.parseInt(emptyNum)) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成设备{}数量异常,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 3); - log.info("AGV放货完成请求离开设备{}下发输送to_commad{}", device_code, 3); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { - storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); - HttpResponse response = acsToXrlkService.AGVWorkStatus(device.getDevice_code(), "1"); - if (response.getStatus() == 200) { - JSONObject jo = JSONObject.fromObject(response.body()); - if (StrUtil.equals(jo.get("result").toString(), "1")) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("AGV放货完成反馈设备{},{}", device_code, jo.getString("message")); - } - } else { - log.info("AGV放货完成反馈设备{},接口请求立库WMS失败", device_code); - } - - } - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x0F) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("2"); - instructionService.finish(inst); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //请求删除任务 - else if (phase == 0x30) { - flag = true; +// +// try { +// AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigServiceImpl.class); +// InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); +// AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); +// AgvService AgvService = SpringContextHolder.getBean(AgvService.class); +// DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); +// DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); +// AcsToXrlkService acsToXrlkService = SpringContextHolder.getBean(AcsToXrlkService.class); +// ip = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); +// port = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT)); +// byte[] b = new byte[1028]; +// s = new Socket(ip, port); +// dos = new DataOutputStream(s.getOutputStream()); +// dis = new DataInputStream(s.getInputStream()); +// +// while (bConnected) { +// int count = dis.read(b); +// +// if (count == -1) { +// break; +// } +// +// int[] arr = new int[count]; +// StringBuffer bs = new StringBuffer(); +// +// for (int i = 0; i < count; i++) { +// int temp = b[i]; +// if (temp < 0) +// temp += 256; +// arr[i] = temp; +// StringBuffer bs1 = new StringBuffer("0"); +// bs.append(temp < 16 ? bs1.append(Integer.toHexString(temp)) : Integer.toHexString(temp)); +// } +// +// System.out.println("收到请求参数:" + bs); +// boolean flag = false; +// if (arr[8] * 256 + arr[9] == 0x73) { +// byte[] data = null; +// System.out.println("接收agv上报信息:" + bs); +// //执行阶段 +// int phase = arr[16] * 256 + arr[17]; +// // agv任务号 +// int index = arr[12] * 256 + arr[13]; +// //任务号 +// int ikey = arr[26] * 256 + arr[27]; +// //站点号 +// int agvaddr = arr[18] * 256 + arr[19]; +// //车号 +// int carno = arr[20]; +// Instruction inst = null; +// if (ikey != 0) { +// inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); +// } +// log.info("接收agv上报信息:" + bs); +// log.info("接收agv上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); +// Device device = null; +// String device_code = null; +// String old_device_code = null; +// String emptyNum = null; +// if (agvaddr != 0) { +// old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr); +// if (StrUtil.contains(old_device_code, "-")) { +// String[] point = old_device_code.split("-"); +// device_code = point[0]; +// } else if (StrUtil.contains(old_device_code, ".")) { +// String[] point = old_device_code.split("\\."); +// device_code = point[0]; +// emptyNum = point[1]; +// } else { +// device_code = old_device_code; +// } +// device = deviceAppService.findDeviceByCode(device_code); +// } +// StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; +// StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; +// StandardCoveyorControlDeviceDriver standardCoveyorControlDeviceDriver; +// StandardStorageDeviceDriver standardStorageDeviceDriver; +// NonLineInspectSiteDeviceDriver nonLineInspectSiteDeviceDriver; +// NonLineManipulatorInspectSiteDeviceDriver nonLineManipulatorInspectSiteDeviceDriver; +// StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; +// ManipulatorInspectSiteNDCDeviceDriver manipulatorInspectSiteNDCDeviceDriver; +// StandardManipulatorInspectSiteDeviceDriver standardManipulatorInspectSiteDeviceDriver; +// StandardEmptyPalletSiteDeviceDriver standardEmptyPalletSiteDeviceDriver; +// StandardManipulatorStackingSiteDeviceDriver standardManipulatorStackingSiteDeviceDriver; +// StandardPhotoelectricInspectSiteDeviceDriver standardPhotoelectricInspectSiteDeviceDriver; +// NdxySpecialDeviceDriver ndxySpecialDeviceDriver; +// StorageConveyorDeviceDriver storageConveyorDeviceDriver; +// int type = Integer.parseInt(acsConfigService.findConfigFromCache().get(AcsConfig.BUSINESSTYPE)); +// +// try { +// switch (type) { +// case 0: +// if (phase == 0x01) { +// data = AgvService.sendAgvOneModeInst(phase, index); +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("1"); +// inst.setAgv_jobno(String.valueOf(index)); +// inst.setSend_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// flag = true; +// } +// //分配 车id +// else if (phase == 0x02) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setCarno(String.valueOf(carno)); +// instructionService.update(inst); +// } +// } +// // 到达取货点请求取货 +// else if (phase == 0x03) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 7); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库)edit +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 7); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //检测站点 +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //空盘堆叠站点 +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //输送机-控制点驱动 +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //普通站点 +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// //标准版-货架 +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 取货完成请求离开 +// else if (phase == 0x05) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 2); +// standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库) +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 2); +// standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 2); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 0); +// deviceService.changeDeviceStatus(jo); +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //请求放货 +// else if (phase == 0x07) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 8); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库) +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 8); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// +// } +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 放货完成请求离开 +// else if (phase == 0x09) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 3); +// standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库) +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 3); +// standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 3); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //任务完毕 +// //(无车id及状态) +// else if (phase == 0x0A) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("2"); +// instructionService.finish(inst); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //请求删除任务 +// else if (phase == 0x30) { +// flag = true; // if (!ObjectUtil.isEmpty(inst)) { // data = AgvService.sendAgvOneModeInst(0x8F, index, 0); +// } else { +// log.info("未找到对应的指令无法删除"); +// return; // } - data = AgvService.sendAgvOneModeInst(0x8F, index, 0); - - } - //任务删除确认 - //(需要WCS反馈) - else if (phase == 0xFF) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - instructionService.cancelNOSendAgv(inst.getInstruction_id()); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else if (phase == 0x50)//进入区域 - { - //开门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("1"); - if (standardAutodoorDeviceDriver.getAction() == 1) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { - storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); - HttpResponse response = acsToXrlkService.invokeDoor(device.getDevice_code()); - if (response.getStatus() == 200) { - JSONObject jo = JSONObject.fromObject(response.body()); - if (StrUtil.equals(jo.get("result").toString(), "1")) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("AGV请求进入{},{}", device_code, jo.getString("message")); - } - } else { - log.info("AGV请求进入设备{},接口请求立库WMS失败", device_code); - } - } - } - - } else if (phase == 0x51)//离开区域 - { - //关门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("2"); - if (standardAutodoorDeviceDriver.getAction() == 2) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } else if (phase == 0x64) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //上报异常 - else if (phase == 0x67) { - int errCar = arr[26] * 256 + arr[27]; - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(errCar)) { - dto = map.get(errCar); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(errCar)); - if (arr[18] * 256 + arr[19] == 0) { - dto.setState("IDLE"); - } else { - StringBuffer errbs = new StringBuffer(); - for (int i = 0; i < ERROR.length; i++) { - if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) - errbs.append("," + ERROR[i]); - //反馈故障 - } - dto.setState("ERROR"); - } - } - //X坐标 - else if (phase == 0x70) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionX(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //Y坐标 - else if (phase == 0x71) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionY(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //角度 - else if (phase == 0x72) { - int errCar = arr[26] * 256 + arr[27]; - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionAngle(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - - } - //电量 - else if (phase == 0x73) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setEnergyLevel(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - - break; - case 2: - //开始任务/上报订单号(无车id及状态) - if (phase == 0x01) { - data = AgvService.sendAgvOneModeInst(phase, index); - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("1"); - inst.setAgv_jobno(String.valueOf(index)); - inst.setSend_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - flag = true; - } - //分配 车id - else if (phase == 0x02) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - } - } - // 到达取货点请求取货 - else if (phase == 0x03) { - //普通站点 - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - - } - //货架 - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - //检测站点-无PLC - if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyTake"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - //区域管制站点-无PLC - if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyTake"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - } - // 取货完成请求离开 - else if (phase == 0x05) { - //普通站点 - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - } - //标准版-货架 - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - - } - //检测站点-无PLC - if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "getFinsh"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - //区域管制站点-无PLC - if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "getFinsh"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - } - // 到达放货点 - else if (phase == 0x07) { - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - - } - //普通站点 - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - - } - //检测站点-无PLC - if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyPut"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - //区域管制站点-无PLC - if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyPut"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - } - // 放货完成离开 - else if (phase == 0x09) { - //普通站点 - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - } - //检测站点-无PLC - if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "putFinish"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - //区域管制站点-无PLC - if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { - HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "putFinish"); - if (result.getStatus() != 200) { - log.info("反馈状态异常"); - } else { - JSONObject jo = JSONObject.fromObject(result.body()); - if (jo.getInt("status") == 200) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x0A) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("2"); - instructionService.finish(inst); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x1A) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //请求删除任务 - else if (phase == 0x30) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - data = AgvService.sendAgvOneModeInst(0x8F, index, 0); - } else { - log.info("未找到对应的指令无法删除"); - return; - } - } - //任务删除确认 - //(需要WCS反馈) - else if (phase == 0xFF) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - instructionService.cancelNOSendAgv(inst.getInstruction_id()); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else if (phase == 0x50)//进入区域 - { - //开门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("1"); - if (standardAutodoorDeviceDriver.getAction() == 1) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { - nonLineManipulatorInspectSiteDeviceDriver = (NonLineManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = nonLineManipulatorInspectSiteDeviceDriver.getIoaction(); - if (io_action == 1 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } else if (phase == 0x51)//离开区域 - { - //关门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("2"); - if (standardAutodoorDeviceDriver.getAction() == 2) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { - nonLineManipulatorInspectSiteDeviceDriver = (NonLineManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = nonLineManipulatorInspectSiteDeviceDriver.getIoaction(); - if (io_action == 2 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } else if (phase == 0x64) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //上报异常 - else if (phase == 0x67) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - if (arr[18] * 256 + arr[19] == 0) { - dto.setState("IDLE"); - acsToWmsService.feedbackAgvStatus(String.valueOf(ikey), String.valueOf(arr[18] * 256 + arr[19]), ""); - } else { - StringBuffer errbs = new StringBuffer(); - for (int i = 0; i < ERROR.length; i++) { - if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) - errbs.append("," + ERROR[i]); - //反馈故障 - } - dto.setState("ERROR"); - acsToWmsService.feedbackAgvStatus(String.valueOf(ikey), String.valueOf(arr[18] * 256 + arr[19]), "error"); - } - } - //X坐标 - else if (phase == 0x70) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionX(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //Y坐标 - else if (phase == 0x71) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionY(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //角度 - else if (phase == 0x72) { - int errCar = arr[26] * 256 + arr[27]; - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionAngle(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - - } - //电量 - else if (phase == 0x73) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setEnergyLevel(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } else { - - - } - break; - case 3: - - break; - case 5: - if (phase == 0x01) { - data = AgvService.sendAgvOneModeInst(phase, index); - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("1"); - inst.setAgv_jobno(String.valueOf(index)); - inst.setSend_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - flag = true; - } - //分配 车id - else if (phase == 0x02) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - } - } - // 到达取货点请求取货 - else if (phase == 0x03) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardManipulatorStackingSiteDeviceDriver.writing(1, 7); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //光电检测站点(优先入库)edit - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 7); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //检测站点 - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //纽迪希亚专用 - if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { - ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); - if (ndxySpecialDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - ndxySpecialDeviceDriver.writing(1, 7); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //空盘堆叠站点 - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //输送机-控制点驱动 - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //普通站点 - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - - } - //标准版-货架 - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 取货完成请求离开 - else if (phase == 0x05) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardManipulatorStackingSiteDeviceDriver.writing(1, 2); - standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - //光电检测站点(优先入库) - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 2); - standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - //检测站点 - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - //纽迪希亚专用 - if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { - ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); - if (ndxySpecialDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - ndxySpecialDeviceDriver.writing(1, 2); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 2); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 0); - deviceService.changeDeviceStatus(jo); - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //请求放货 - else if (phase == 0x07) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardManipulatorStackingSiteDeviceDriver.writing(1, 8); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - //光电检测站点(优先入库) - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 8); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - //纽迪希亚专用 - if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { - ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); - if (ndxySpecialDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - ndxySpecialDeviceDriver.writing(1, 8); - flag = true; - } else { - log.info("AGV请求取货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - - } - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 放货完成请求离开 - else if (phase == 0x09) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //机械手码垛驱动-区分托盘类型 - if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); - if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 - && standardManipulatorStackingSiteDeviceDriver.getError() == 0 - && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { - inst.setExecute_status("6"); - instructionService.update(inst); - standardManipulatorStackingSiteDeviceDriver.writing(1, 3); - standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - //光电检测站点(优先入库) - if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 - && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 3); - standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - //纽迪希亚专用 - if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { - ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); - if (ndxySpecialDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - ndxySpecialDeviceDriver.writing(1, 3); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 3); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x0A) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("2"); - instructionService.finish(inst); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //请求删除任务 - else if (phase == 0x30) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("未找到对应的指令无法删除"); - return; - } - } - //任务删除确认 - //(需要WCS反馈) - else if (phase == 0xFF) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - instructionService.cancel(inst.getInstruction_id()); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //进入区域 - else if (phase == 0x50) { - //开门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("1"); - if (standardAutodoorDeviceDriver.getAction() == 1) { - standardAutodoorDeviceDriver.OpenOrClose("1"); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - //纽迪希亚专用 - if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { - ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); - int io_action = ndxySpecialDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - ndxySpecialDeviceDriver.writing(1, 5); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - standardManipulatorStackingSiteDeviceDriver.writing(1, 5); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 5); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } - //离开区域 - else if (phase == 0x51) { - //关门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("2"); - if (standardAutodoorDeviceDriver.getAction() == 2) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - //纽迪希亚专用 - if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { - ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); - int io_action = ndxySpecialDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - ndxySpecialDeviceDriver.writing(1, 6); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { - standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - standardManipulatorStackingSiteDeviceDriver.writing(1, 6); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { - standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - standardPhotoelectricInspectSiteDeviceDriver.writing(1, 6); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - } else if (phase == 0x64) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //上报异常 - else if (phase == 0x67) { - if (arr[18] * 256 + arr[19] == 0) { - - } else { - - } - } else { - - - } - break; - case 7: - //开始任务/上报订单号(无车id及状态) - if (phase == 0x01) { - data = AgvService.sendAgvOneModeInst(phase, index); - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("1"); - inst.setAgv_jobno(String.valueOf(index)); - inst.setSend_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - flag = true; - } - //分配 车id - else if (phase == 0x02) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setCarno(String.valueOf(carno)); - instructionService.update(inst); - } - } - // 到达取货点请求取货 - else if (phase == 0x03) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - standardCoveyorControlDeviceDriver.writing(1, 1); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("1"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 取货完成请求离开 - else if (phase == 0x05) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 2); - flag = true; - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求取货设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 0); - deviceService.changeDeviceStatus(jo); - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - // 球磨车间请求上料 - //( Itype=2,需要WCS反馈Phase) - else if (phase == 0x07) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - // 球磨车间上料完成请求离开 - else if (phase == 0x09) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - //请求放货库位 - else if (phase == 0x0A) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //调用接口 - String result = acsToWmsService.requestTaskAgain(String.valueOf(agvaddr), inst.getTask_id(), inst.getVehicle_code()); - JSONObject jo = JSONObject.fromObject(result); - String next_device = jo.getString("data"); - - String next_point = ""; - Device next_point_device = deviceAppService.findDeviceByCode(next_device); - if (next_point_device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) next_point_device.getDeviceDriver(); - - int number = standardEmptyPalletSiteDeviceDriver.getNumber(); - int nowinstNum = instructionService.querySameDestinationInst(next_point); - if (number + nowinstNum >= Integer.parseInt(next_point_device.getExtraValue().get("max_emptypalletnum").toString())) { - log.info("当前叠盘位{},光电数量{},存在此设备指令数{},超过最大堆叠数量:{}无法反馈", next_point, number, nowinstNum, Integer.parseInt(device.getExtraValue().get("max_emptypalletnum").toString())); - return; - } - next_point = next_device + "." + (number + nowinstNum + 1); - } else { - next_point = next_device; - } - - int next_point_address = deviceService.queryAddressBydeviceCode(next_point); - data = AgvService.sendAgvOneModeInst(phase, index, next_point_address); - - TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); - TaskDto task = taskService.findByCodeFromCache(inst.getTask_code()); - task.setNext_device_code(next_device); - task.setNext_point_code(next_device); - taskService.update(task); - - inst.setNext_device_code(next_device); - inst.setNext_point_code(next_point); - instructionService.update(inst); - flag = true; - } - //到达放货点 - else if (phase == 0x0B) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - //空盘堆叠站点 - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getNumber() < Integer.parseInt(emptyNum)) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}数量异常,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - - } else { - if (device.getHas_goods() == 0) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - JSONObject jo = new JSONObject(); - jo.put("device_code", device.getDevice_code()); - jo.put("hasGoodStatus", 1); - deviceService.changeDeviceStatus(jo); - } else { - log.info("AGV请求放货设备{}有货,无法反馈", device_code); - } - - } - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("3"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //放货完成请求离开 - else if (phase == 0x0D) { - if (ObjectUtil.isEmpty(inst)) { - log.info("未找到指令号{}对应的指令", ikey); - return; - } - //空盘堆叠站点 - if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { - standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); - if (standardEmptyPalletSiteDeviceDriver.getNumber() == Integer.parseInt(emptyNum)) { - inst.setExecute_status("5"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成设备{}数量异常,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { - standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); - if (standardCoveyorControlDeviceDriver.getMove() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - standardCoveyorControlDeviceDriver.writing(1, 3); - log.info("AGV放货完成请求离开设备{}下发输送to_commad{}", device_code, 3); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - if (device.getHas_goods() != 0) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } else { - log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); - } - } - - } - if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { - inst.setExecute_status("6"); - instructionService.update(inst); - data = AgvService.sendAgvOneModeInst(phase, index, 0); - flag = true; - } - } - //任务完毕 - //(无车id及状态) - else if (phase == 0x0F) { - if (!ObjectUtil.isEmpty(inst)) { - inst.setInstruction_status("2"); - instructionService.finish(inst); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //请求删除任务 - else if (phase == 0x30) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else { - log.info("未找到对应的指令无法删除"); - return; - } - } - //任务删除确认 - //(需要WCS反馈) - else if (phase == 0xFF) { - flag = true; - if (!ObjectUtil.isEmpty(inst)) { - instructionService.cancelNOSendAgv(inst.getInstruction_id()); - } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } else if (phase == 0x50)//进入区域 - { - //开门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("1"); - if (standardAutodoorDeviceDriver.getAction() == 1) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 1 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } else if (phase == 0x51)//离开区域 - { - //关门 - if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { - standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); - standardAutodoorDeviceDriver.OpenOrClose("2"); - if (standardAutodoorDeviceDriver.getAction() == 2) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { - manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); - String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device relevance_device = appService.findDeviceByCode(relevance_device_code); - if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); - int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); - if (io_action == 2 || io_action == 3) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - } - } - - } else if (phase == 0x64) { - data = AgvService.sendAgvOneModeInst(phase, index, 0); - } - //上报异常 - else if (phase == 0x67) { - int errCar = arr[26] * 256 + arr[27]; - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(errCar)) { - dto = map.get(errCar); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(errCar)); - if (arr[18] * 256 + arr[19] == 0) { - dto.setState("IDLE"); - } else { - StringBuffer errbs = new StringBuffer(); - for (int i = 0; i < ERROR.length; i++) { - if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) - errbs.append("," + ERROR[i]); - //反馈故障 - } - dto.setState("ERROR"); - } - } - //X坐标 - else if (phase == 0x70) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionX(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //Y坐标 - else if (phase == 0x71) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionY(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - //角度 - else if (phase == 0x72) { - int errCar = arr[26] * 256 + arr[27]; - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setPositionAngle(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - - } - //电量 - else if (phase == 0x73) { - AgvDto dto = null; - Map map = AgvService.findAllAgvFromCache(); - if (map.containsKey(carno)) { - dto = map.get(carno); - } else { - dto = new AgvDto(); - } - dto.setName(String.valueOf(carno)); - dto.setEnergyLevel(String.valueOf(ikey)); - AgvService.updateAgvFromCache(dto); - } - break; - default: - log.info("字典表未找到满足条件的项目类型"); - break; - } - if (!ObjectUtil.isEmpty(data)) { - write(data); - } - } catch (Exception e) { - System.out.println(e); - log.info(e.toString()); - log.info(e.getMessage()); - e.printStackTrace(); - } - } else { - System.out.println("agv上报不是0073类型动作,不处理"); - } - } - - } catch (Exception e) { - - - } finally { - - - } +// } +// //任务删除确认 +// //(需要WCS反馈) +// else if (phase == 0xFF) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// instructionService.cancel(inst.getInstruction_id()); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //进入区域 +// else if (phase == 0x50) { +// //开门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// if (standardAutodoorDeviceDriver.getAction() == 1) { +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// standardManipulatorStackingSiteDeviceDriver.writing(1, 5); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 5); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } +// //离开区域 +// else if (phase == 0x51) { +// //关门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("2"); +// if (standardAutodoorDeviceDriver.getAction() == 2) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// standardManipulatorStackingSiteDeviceDriver.writing(1, 6); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 6); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// } else if (phase == 0x64) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //上报异常 +// else if (phase == 0x67) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// if (arr[18] * 256 + arr[19] == 0) { +// dto.setState("IDLE"); +// acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "0", ""); +// } else { +// StringBuffer errbs = new StringBuffer(); +// for (int i = 0; i < ERROR.length; i++) { +// if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) +// errbs.append("," + ERROR[i]); +// //反馈故障 +// } +// dto.setState("ERROR"); +// acsToWmsService.feedbackAgvStatus(String.valueOf(carno), "1", "error"); +// } +// } +// //X坐标 +// else if (phase == 0x70) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// carno = arr[18] * 256 + arr[19]; +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionX(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //Y坐标 +// else if (phase == 0x71) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// carno = arr[18] * 256 + arr[19]; +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionY(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //角度 +// else if (phase == 0x72) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// carno = arr[18] * 256 + arr[19]; +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionAngle(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //电量 +// else if (phase == 0x73) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// carno = arr[18] * 256 + arr[19]; +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setEnergyLevel(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// break; +// case 1: +// //开始任务/上报订单号(无车id及状态) +// if (phase == 0x01) { +// data = AgvService.sendAgvOneModeInst(phase, index); +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("1"); +// inst.setAgv_jobno(String.valueOf(index)); +// inst.setSend_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// flag = true; +// } +// //分配 车id +// else if (phase == 0x02) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setCarno(String.valueOf(carno)); +// instructionService.update(inst); +// } +// } +// // 到达取货点请求取货 +// else if (phase == 0x03) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { +// storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); +// HttpResponse response = acsToXrlkService.isTakePermission(device.getDevice_code()); +// if (response.getStatus() == 200) { +// JSONObject jo = JSONObject.fromObject(response.body()); +// if (StrUtil.equals(jo.get("signal").toString(), "1")) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("AGV请求取货设备{},立库WMS不允许取货", device_code); +// } +// } else { +// log.info("AGV请求取货设备{},接口请求立库WMS失败", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 取货完成请求离开 +// else if (phase == 0x05) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { +// storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); +// HttpResponse response = acsToXrlkService.AGVWorkStatus(device.getDevice_code(), "2"); +// if (response.getStatus() == 200) { +// JSONObject jo = JSONObject.fromObject(response.body()); +// if (StrUtil.equals(jo.get("result").toString(), "1")) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("AGV取货完成反馈设备{},{}", device_code, jo.getString("message")); +// } +// } else { +// log.info("AGV取货完成反馈设备{},接口请求立库WMS失败", device_code); +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 2); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 0); +// deviceService.changeDeviceStatus(jo); +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 球磨车间请求上料 +// //( Itype=2,需要WCS反馈Phase) +// else if (phase == 0x07) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// // 球磨车间上料完成请求离开 +// else if (phase == 0x09) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// //请求放货库位 +// else if (phase == 0x0A) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //调用接口 +// String result = acsToWmsService.requestTaskAgain(String.valueOf(agvaddr), inst.getTask_id(), inst.getVehicle_code()); +// JSONObject jo = JSONObject.fromObject(result); +// String next_device = jo.getString("data"); +// +// String next_point = ""; +// Device next_point_device = deviceAppService.findDeviceByCode(next_device); +// if (next_point_device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) next_point_device.getDeviceDriver(); +// +// int number = standardEmptyPalletSiteDeviceDriver.getNumber(); +// int nowinstNum = instructionService.querySameDestinationInst(next_point); +// if (number + nowinstNum >= Integer.parseInt(next_point_device.getExtraValue().get("max_emptypalletnum").toString())) { +// log.info("当前叠盘位{},光电数量{},存在此设备指令数{},超过最大堆叠数量:{}无法反馈", next_point, number, nowinstNum, Integer.parseInt(device.getExtraValue().get("max_emptypalletnum").toString())); +// return; +// } +// next_point = next_device + "." + (number + nowinstNum + 1); +// } else { +// next_point = next_device; +// } +// +// int next_point_address = deviceService.queryAddressBydeviceCode(next_point); +// data = AgvService.sendAgvOneModeInst(phase, index, next_point_address); +// +// TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); +// TaskDto task = taskService.findByCodeFromCache(inst.getTask_code()); +// task.setNext_device_code(next_device); +// task.setNext_point_code(next_device); +// taskService.update(task); +// +// inst.setNext_device_code(next_device); +// inst.setNext_point_code(next_point); +// instructionService.update(inst); +// flag = true; +// } +// //到达放货点 +// else if (phase == 0x0B) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { +// storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); +// HttpResponse response = acsToXrlkService.isPutPermission(device.getDevice_code()); +// if (response.getStatus() == 200) { +// JSONObject jo = JSONObject.fromObject(response.body()); +// if (StrUtil.equals(jo.get("signal").toString(), "1")) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("AGV请求放货设备{},立库WMS不允许放货", device_code); +// } +// } else { +// log.info("AGV请求放货设备{},接口请求立库WMS失败", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// //空盘堆叠站点 +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getNumber() < Integer.parseInt(emptyNum)) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}数量异常,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// +// } +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //放货完成请求离开 +// else if (phase == 0x0D) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //空盘堆叠站点 +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getNumber() == Integer.parseInt(emptyNum)) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成设备{}数量异常,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 3); +// log.info("AGV放货完成请求离开设备{}下发输送to_commad{}", device_code, 3); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// if (device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { +// storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); +// HttpResponse response = acsToXrlkService.AGVWorkStatus(device.getDevice_code(), "1"); +// if (response.getStatus() == 200) { +// JSONObject jo = JSONObject.fromObject(response.body()); +// if (StrUtil.equals(jo.get("result").toString(), "1")) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("AGV放货完成反馈设备{},{}", device_code, jo.getString("message")); +// } +// } else { +// log.info("AGV放货完成反馈设备{},接口请求立库WMS失败", device_code); +// } +// +// } +// } +// //任务完毕 +// //(无车id及状态) +// else if (phase == 0x0F) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("2"); +// instructionService.finish(inst); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //请求删除任务 +// else if (phase == 0x30) { +// flag = true; +//// if (!ObjectUtil.isEmpty(inst)) { +//// data = AgvService.sendAgvOneModeInst(0x8F, index, 0); +//// } +// data = AgvService.sendAgvOneModeInst(0x8F, index, 0); +// +// } +// //任务删除确认 +// //(需要WCS反馈) +// else if (phase == 0xFF) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// instructionService.cancelNOSendAgv(inst.getInstruction_id()); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else if (phase == 0x50)//进入区域 +// { +// //开门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// if (standardAutodoorDeviceDriver.getAction() == 1) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StorageConveyorDeviceDriver) { +// storageConveyorDeviceDriver = (StorageConveyorDeviceDriver) device.getDeviceDriver(); +// HttpResponse response = acsToXrlkService.invokeDoor(device.getDevice_code()); +// if (response.getStatus() == 200) { +// JSONObject jo = JSONObject.fromObject(response.body()); +// if (StrUtil.equals(jo.get("result").toString(), "1")) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("AGV请求进入{},{}", device_code, jo.getString("message")); +// } +// } else { +// log.info("AGV请求进入设备{},接口请求立库WMS失败", device_code); +// } +// } +// } +// +// } else if (phase == 0x51)//离开区域 +// { +// //关门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("2"); +// if (standardAutodoorDeviceDriver.getAction() == 2) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } else if (phase == 0x64) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //上报异常 +// else if (phase == 0x67) { +// int errCar = arr[26] * 256 + arr[27]; +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(errCar)) { +// dto = map.get(errCar); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(errCar)); +// if (arr[18] * 256 + arr[19] == 0) { +// dto.setState("IDLE"); +// } else { +// StringBuffer errbs = new StringBuffer(); +// for (int i = 0; i < ERROR.length; i++) { +// if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) +// errbs.append("," + ERROR[i]); +// //反馈故障 +// } +// dto.setState("ERROR"); +// } +// } +// //X坐标 +// else if (phase == 0x70) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionX(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //Y坐标 +// else if (phase == 0x71) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionY(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //角度 +// else if (phase == 0x72) { +// int errCar = arr[26] * 256 + arr[27]; +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionAngle(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// +// } +// //电量 +// else if (phase == 0x73) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setEnergyLevel(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// +// break; +// case 2: +// //开始任务/上报订单号(无车id及状态) +// if (phase == 0x01) { +// data = AgvService.sendAgvOneModeInst(phase, index); +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("1"); +// inst.setAgv_jobno(String.valueOf(index)); +// inst.setSend_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// flag = true; +// } +// //分配 车id +// else if (phase == 0x02) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setCarno(String.valueOf(carno)); +// instructionService.update(inst); +// } +// } +// // 到达取货点请求取货 +// else if (phase == 0x03) { +// //普通站点 +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// //货架 +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// //检测站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyTake"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// //区域管制站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyTake"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// } +// // 取货完成请求离开 +// else if (phase == 0x05) { +// //普通站点 +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// } +// //标准版-货架 +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// +// } +// //检测站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "getFinsh"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// //区域管制站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "getFinsh"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// } +// // 到达放货点 +// else if (phase == 0x07) { +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// +// } +// //普通站点 +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// //检测站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyPut"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// //区域管制站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "readyPut"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// } +// // 放货完成离开 +// else if (phase == 0x09) { +// //普通站点 +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// } +// //检测站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "putFinish"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// //区域管制站点-无PLC +// if (device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { +// HttpResponse result = acsToWmsService.requestSignalInteraction(device_code, inst.getVehicle_code(), "putFinish"); +// if (result.getStatus() != 200) { +// log.info("反馈状态异常"); +// } else { +// JSONObject jo = JSONObject.fromObject(result.body()); +// if (jo.getInt("status") == 200) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //任务完毕 +// //(无车id及状态) +// else if (phase == 0x0A) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("2"); +// instructionService.finish(inst); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //任务完毕 +// //(无车id及状态) +// else if (phase == 0x1A) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //请求删除任务 +// else if (phase == 0x30) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// data = AgvService.sendAgvOneModeInst(0x8F, index, 0); +// } else { +// log.info("未找到对应的指令无法删除"); +// return; +// } +// } +// //任务删除确认 +// //(需要WCS反馈) +// else if (phase == 0xFF) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// instructionService.cancelNOSendAgv(inst.getInstruction_id()); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else if (phase == 0x50)//进入区域 +// { +// //开门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// if (standardAutodoorDeviceDriver.getAction() == 1) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { +// nonLineManipulatorInspectSiteDeviceDriver = (NonLineManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = nonLineManipulatorInspectSiteDeviceDriver.getIoaction(); +// if (io_action == 1 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } else if (phase == 0x51)//离开区域 +// { +// //关门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("2"); +// if (standardAutodoorDeviceDriver.getAction() == 2) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof NonLineManipulatorInspectSiteDeviceDriver) { +// nonLineManipulatorInspectSiteDeviceDriver = (NonLineManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = nonLineManipulatorInspectSiteDeviceDriver.getIoaction(); +// if (io_action == 2 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } else if (phase == 0x64) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //上报异常 +// else if (phase == 0x67) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// if (arr[18] * 256 + arr[19] == 0) { +// dto.setState("IDLE"); +// acsToWmsService.feedbackAgvStatus(String.valueOf(ikey), String.valueOf(arr[18] * 256 + arr[19]), ""); +// } else { +// StringBuffer errbs = new StringBuffer(); +// for (int i = 0; i < ERROR.length; i++) { +// if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) +// errbs.append("," + ERROR[i]); +// //反馈故障 +// } +// dto.setState("ERROR"); +// acsToWmsService.feedbackAgvStatus(String.valueOf(ikey), String.valueOf(arr[18] * 256 + arr[19]), "error"); +// } +// } +// //X坐标 +// else if (phase == 0x70) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionX(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //Y坐标 +// else if (phase == 0x71) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionY(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //角度 +// else if (phase == 0x72) { +// int errCar = arr[26] * 256 + arr[27]; +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionAngle(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// +// } +// //电量 +// else if (phase == 0x73) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setEnergyLevel(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } else { +// +// +// } +// break; +// case 3: +// +// break; +// case 5: +// if (phase == 0x01) { +// data = AgvService.sendAgvOneModeInst(phase, index); +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("1"); +// inst.setAgv_jobno(String.valueOf(index)); +// inst.setSend_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// flag = true; +// } +// //分配 车id +// else if (phase == 0x02) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setCarno(String.valueOf(carno)); +// instructionService.update(inst); +// } +// } +// // 到达取货点请求取货 +// else if (phase == 0x03) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 7); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库)edit +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 7); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //检测站点 +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //纽迪希亚专用 +// if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { +// ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); +// if (ndxySpecialDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// ndxySpecialDeviceDriver.writing(1, 7); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //空盘堆叠站点 +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //输送机-控制点驱动 +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //普通站点 +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// //标准版-货架 +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 取货完成请求离开 +// else if (phase == 0x05) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 1 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 2); +// standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库) +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 2); +// standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// //检测站点 +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// //纽迪希亚专用 +// if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { +// ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); +// if (ndxySpecialDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// ndxySpecialDeviceDriver.writing(1, 2); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 2); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 0); +// deviceService.changeDeviceStatus(jo); +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //请求放货 +// else if (phase == 0x07) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() == 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 8); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库) +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() == 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 8); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// //纽迪希亚专用 +// if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { +// ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); +// if (ndxySpecialDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// ndxySpecialDeviceDriver.writing(1, 8); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// +// } +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 放货完成请求离开 +// else if (phase == 0x09) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //机械手码垛驱动-区分托盘类型 +// if (device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) device.getDeviceDriver(); +// if (standardManipulatorStackingSiteDeviceDriver.getMove() != 0 +// && standardManipulatorStackingSiteDeviceDriver.getError() == 0 +// && (standardManipulatorStackingSiteDeviceDriver.getAction() == 2 || standardManipulatorStackingSiteDeviceDriver.getAction() == 3)) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// standardManipulatorStackingSiteDeviceDriver.writing(1, 3); +// standardManipulatorStackingSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// //光电检测站点(优先入库) +// if (device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardPhotoelectricInspectSiteDeviceDriver.getMove() != 0 +// && standardPhotoelectricInspectSiteDeviceDriver.getError() == 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 3); +// standardPhotoelectricInspectSiteDeviceDriver.writing(4, Integer.parseInt(inst.getVehicle_type())); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// //纽迪希亚专用 +// if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { +// ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); +// if (ndxySpecialDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// ndxySpecialDeviceDriver.writing(1, 3); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 3); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //任务完毕 +// //(无车id及状态) +// else if (phase == 0x0A) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("2"); +// instructionService.finish(inst); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //请求删除任务 +// else if (phase == 0x30) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("未找到对应的指令无法删除"); +// return; +// } +// } +// //任务删除确认 +// //(需要WCS反馈) +// else if (phase == 0xFF) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// instructionService.cancel(inst.getInstruction_id()); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //进入区域 +// else if (phase == 0x50) { +// //开门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// if (standardAutodoorDeviceDriver.getAction() == 1) { +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// //纽迪希亚专用 +// if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { +// ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); +// int io_action = ndxySpecialDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// ndxySpecialDeviceDriver.writing(1, 5); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// standardManipulatorStackingSiteDeviceDriver.writing(1, 5); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 5); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } +// //离开区域 +// else if (phase == 0x51) { +// //关门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("2"); +// if (standardAutodoorDeviceDriver.getAction() == 2) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// //纽迪希亚专用 +// if (device.getDeviceDriver() instanceof NdxySpecialDeviceDriver) { +// ndxySpecialDeviceDriver = (NdxySpecialDeviceDriver) device.getDeviceDriver(); +// int io_action = ndxySpecialDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// ndxySpecialDeviceDriver.writing(1, 6); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getDevice().getExtraValue().get("relevance_device_code").toString(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardManipulatorStackingSiteDeviceDriver) { +// standardManipulatorStackingSiteDeviceDriver = (StandardManipulatorStackingSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorStackingSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// standardManipulatorStackingSiteDeviceDriver.writing(1, 6); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (relevance_device.getDeviceDriver() instanceof StandardPhotoelectricInspectSiteDeviceDriver) { +// standardPhotoelectricInspectSiteDeviceDriver = (StandardPhotoelectricInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardPhotoelectricInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// standardPhotoelectricInspectSiteDeviceDriver.writing(1, 6); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// } else if (phase == 0x64) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //上报异常 +// else if (phase == 0x67) { +// if (arr[18] * 256 + arr[19] == 0) { +// +// } else { +// +// } +// } else { +// +// +// } +// break; +// case 7: +// //开始任务/上报订单号(无车id及状态) +// if (phase == 0x01) { +// data = AgvService.sendAgvOneModeInst(phase, index); +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("1"); +// inst.setAgv_jobno(String.valueOf(index)); +// inst.setSend_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// flag = true; +// } +// //分配 车id +// else if (phase == 0x02) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setCarno(String.valueOf(carno)); +// instructionService.update(inst); +// } +// } +// // 到达取货点请求取货 +// else if (phase == 0x03) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// standardCoveyorControlDeviceDriver.writing(1, 1); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("1"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 取货完成请求离开 +// else if (phase == 0x05) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 2); +// flag = true; +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求取货设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 0); +// deviceService.changeDeviceStatus(jo); +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV取货完成请求离开设备{}有货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// standardStorageDeviceDriver = (StandardStorageDeviceDriver) device.getDeviceDriver(); +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// // 球磨车间请求上料 +// //( Itype=2,需要WCS反馈Phase) +// else if (phase == 0x07) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// // 球磨车间上料完成请求离开 +// else if (phase == 0x09) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// //请求放货库位 +// else if (phase == 0x0A) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //调用接口 +// String result = acsToWmsService.requestTaskAgain(String.valueOf(agvaddr), inst.getTask_id(), inst.getVehicle_code()); +// JSONObject jo = JSONObject.fromObject(result); +// String next_device = jo.getString("data"); +// +// String next_point = ""; +// Device next_point_device = deviceAppService.findDeviceByCode(next_device); +// if (next_point_device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) next_point_device.getDeviceDriver(); +// +// int number = standardEmptyPalletSiteDeviceDriver.getNumber(); +// int nowinstNum = instructionService.querySameDestinationInst(next_point); +// if (number + nowinstNum >= Integer.parseInt(next_point_device.getExtraValue().get("max_emptypalletnum").toString())) { +// log.info("当前叠盘位{},光电数量{},存在此设备指令数{},超过最大堆叠数量:{}无法反馈", next_point, number, nowinstNum, Integer.parseInt(device.getExtraValue().get("max_emptypalletnum").toString())); +// return; +// } +// next_point = next_device + "." + (number + nowinstNum + 1); +// } else { +// next_point = next_device; +// } +// +// int next_point_address = deviceService.queryAddressBydeviceCode(next_point); +// data = AgvService.sendAgvOneModeInst(phase, index, next_point_address); +// +// TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); +// TaskDto task = taskService.findByCodeFromCache(inst.getTask_code()); +// task.setNext_device_code(next_device); +// task.setNext_point_code(next_device); +// taskService.update(task); +// +// inst.setNext_device_code(next_device); +// inst.setNext_point_code(next_point); +// instructionService.update(inst); +// flag = true; +// } +// //到达放货点 +// else if (phase == 0x0B) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// //空盘堆叠站点 +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getNumber() < Integer.parseInt(emptyNum)) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}数量异常,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// +// } else { +// if (device.getHas_goods() == 0) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// JSONObject jo = new JSONObject(); +// jo.put("device_code", device.getDevice_code()); +// jo.put("hasGoodStatus", 1); +// deviceService.changeDeviceStatus(jo); +// } else { +// log.info("AGV请求放货设备{}有货,无法反馈", device_code); +// } +// +// } +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("3"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //放货完成请求离开 +// else if (phase == 0x0D) { +// if (ObjectUtil.isEmpty(inst)) { +// log.info("未找到指令号{}对应的指令", ikey); +// return; +// } +// //空盘堆叠站点 +// if (device.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { +// standardEmptyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) device.getDeviceDriver(); +// if (standardEmptyPalletSiteDeviceDriver.getNumber() == Integer.parseInt(emptyNum)) { +// inst.setExecute_status("5"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成设备{}数量异常,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); +// if (standardInspectSiteDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardCoveyorControlDeviceDriver) { +// standardCoveyorControlDeviceDriver = (StandardCoveyorControlDeviceDriver) device.getDeviceDriver(); +// if (standardCoveyorControlDeviceDriver.getMove() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// standardCoveyorControlDeviceDriver.writing(1, 3); +// log.info("AGV放货完成请求离开设备{}下发输送to_commad{}", device_code, 3); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { +// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); +// if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.IGNOREHASGOODS), "1")) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// if (device.getHas_goods() != 0) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } else { +// log.info("AGV放货完成请求离开设备{}无货,无法反馈", device_code); +// } +// } +// +// } +// if (device.getDeviceDriver() instanceof StandardStorageDeviceDriver) { +// inst.setExecute_status("6"); +// instructionService.update(inst); +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// flag = true; +// } +// } +// //任务完毕 +// //(无车id及状态) +// else if (phase == 0x0F) { +// if (!ObjectUtil.isEmpty(inst)) { +// inst.setInstruction_status("2"); +// instructionService.finish(inst); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //请求删除任务 +// else if (phase == 0x30) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else { +// log.info("未找到对应的指令无法删除"); +// return; +// } +// } +// //任务删除确认 +// //(需要WCS反馈) +// else if (phase == 0xFF) { +// flag = true; +// if (!ObjectUtil.isEmpty(inst)) { +// instructionService.cancelNOSendAgv(inst.getInstruction_id()); +// } +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } else if (phase == 0x50)//进入区域 +// { +// //开门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("1"); +// if (standardAutodoorDeviceDriver.getAction() == 1) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 1 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } else if (phase == 0x51)//离开区域 +// { +// //关门 +// if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { +// standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); +// standardAutodoorDeviceDriver.OpenOrClose("2"); +// if (standardAutodoorDeviceDriver.getAction() == 2) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// if (device.getDeviceDriver() instanceof ManipulatorInspectSiteNDCDeviceDriver) { +// manipulatorInspectSiteNDCDeviceDriver = (ManipulatorInspectSiteNDCDeviceDriver) device.getDeviceDriver(); +// String relevance_device_code = manipulatorInspectSiteNDCDeviceDriver.getRelevance_device_code(); +// DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); +// Device relevance_device = appService.findDeviceByCode(relevance_device_code); +// if (relevance_device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { +// standardManipulatorInspectSiteDeviceDriver = (StandardManipulatorInspectSiteDeviceDriver) relevance_device.getDeviceDriver(); +// int io_action = standardManipulatorInspectSiteDeviceDriver.getIo_action(); +// if (io_action == 2 || io_action == 3) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// } +// } +// +// } else if (phase == 0x64) { +// data = AgvService.sendAgvOneModeInst(phase, index, 0); +// } +// //上报异常 +// else if (phase == 0x67) { +// int errCar = arr[26] * 256 + arr[27]; +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(errCar)) { +// dto = map.get(errCar); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(errCar)); +// if (arr[18] * 256 + arr[19] == 0) { +// dto.setState("IDLE"); +// } else { +// StringBuffer errbs = new StringBuffer(); +// for (int i = 0; i < ERROR.length; i++) { +// if (((arr[18] * 256 + arr[19]) & (1 << i)) > 0) +// errbs.append("," + ERROR[i]); +// //反馈故障 +// } +// dto.setState("ERROR"); +// } +// } +// //X坐标 +// else if (phase == 0x70) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionX(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //Y坐标 +// else if (phase == 0x71) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionY(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// //角度 +// else if (phase == 0x72) { +// int errCar = arr[26] * 256 + arr[27]; +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setPositionAngle(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// +// } +// //电量 +// else if (phase == 0x73) { +// AgvDto dto = null; +// Map map = AgvService.findAllAgvFromCache(); +// if (map.containsKey(carno)) { +// dto = map.get(carno); +// } else { +// dto = new AgvDto(); +// } +// dto.setName(String.valueOf(carno)); +// dto.setEnergyLevel(String.valueOf(ikey)); +// AgvService.updateAgvFromCache(dto); +// } +// break; +// default: +// log.info("字典表未找到满足条件的项目类型"); +// break; +// } +// if (!ObjectUtil.isEmpty(data)) { +// write(data); +// } +// } catch (Exception e) { +// System.out.println(e); +// log.info(e.toString()); +// log.info(e.getMessage()); +// e.printStackTrace(); +// } +// } else { +// System.out.println("agv上报不是0073类型动作,不处理"); +// } +// } +// +// } catch (Exception e) { +// +// +// } finally { +// +// +// } } diff --git a/hd/nladmin-system/src/main/resources/config/application-dev.yml b/hd/nladmin-system/src/main/resources/config/application-dev.yml index 6818eda..87cbbf2 100644 --- a/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -2,8 +2,6 @@ server: port: 8010 #配置数据源 spring: - profiles: - dev datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource diff --git a/hd/nladmin-system/src/main/resources/config/application-prod.yml b/hd/nladmin-system/src/main/resources/config/application-prod.yml index bd570b6..f1be2ba 100644 --- a/hd/nladmin-system/src/main/resources/config/application-prod.yml +++ b/hd/nladmin-system/src/main/resources/config/application-prod.yml @@ -2,13 +2,11 @@ server: port: 8010 #配置数据源 spring: - profiles: - prod datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:zdtn_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:tn_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} password: ${DB_PWD:123456} # 初始连接数 @@ -137,4 +135,4 @@ file: avatarMaxSize: 5 agvToAcs: - addr: http://192.168.200.128:8010 + addr: http://172.22.50.184:8010 diff --git a/hd/nladmin-system/src/main/resources/config/application.yml b/hd/nladmin-system/src/main/resources/config/application.yml index 1733121..2e814bc 100644 --- a/hd/nladmin-system/src/main/resources/config/application.yml +++ b/hd/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: dev + active: prod jackson: time-zone: GMT+8 data: diff --git a/qd/.env.production b/qd/.env.production index e07e471..4d79695 100644 --- a/qd/.env.production +++ b/qd/.env.production @@ -2,8 +2,8 @@ ENV = 'production' # 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 # 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http -VUE_APP_BASE_API = 'http://192.168.200.128:8010' -#VUE_APP_BASE_API = 'http://192.168.200.128:8010' +VUE_APP_BASE_API = 'http://127.0.0.1:8010' +#VUE_APP_BASE_API = 'http://127.0.0.1:8010' # 如果接口是 http 形式, wss 需要改为 ws -VUE_APP_WS_API = 'ws://192.168.81.122:8010' +VUE_APP_WS_API = 'ws://127.0.0.1:8010' #VUE_APP_WS_API = 'ws://127.0.0.1:8010' diff --git a/qd/src/api/acs/instruction/instruction.js b/qd/src/api/acs/instruction/instruction.js index 38169fd..162fdde 100644 --- a/qd/src/api/acs/instruction/instruction.js +++ b/qd/src/api/acs/instruction/instruction.js @@ -1,6 +1,5 @@ import request from '@/utils/request' - export function add(data) { return request({ url: 'api/instruction', @@ -63,4 +62,12 @@ export function reload() { }) } -export default { add, edit, del, finish, cancel, queryUnFinish, queryByTaskId,reload } +export function forceCancel(instruction_id) { + return request({ + url: 'api/instruction/forceCancel/' + instruction_id, + method: 'post', + data: instruction_id + }) +} + +export default { add, edit, del, finish, cancel, forceCancel, queryUnFinish, queryByTaskId, reload } diff --git a/qd/src/api/acs/task/task.js b/qd/src/api/acs/task/task.js index c0680dd..2285a51 100644 --- a/qd/src/api/acs/task/task.js +++ b/qd/src/api/acs/task/task.js @@ -40,6 +40,30 @@ export function cancel(task_id) { }) } +export function errorFinish(task_id) { + return request({ + url: 'api/task/errorFinish/' + task_id, + method: 'post', + data: task_id + }) +} + +export function exceptions(task_id) { + return request({ + url: 'api/task/exception/' + task_id, + method: 'post', + data: task_id + }) +} + +export function deprecate(task_id) { + return request({ + url: 'api/task/deprecate/' + task_id, + method: 'post', + data: task_id + }) +} + export function createInst(task_id) { return request({ url: 'api/task/createInst/' + task_id, @@ -95,5 +119,5 @@ export function specialTaskCreate(data) { }) } -export default { add, edit, del, finish, cancel, createTaskByClick, deviceAskTask, ordinaryTaskCreate, specialTaskCreate, createInst,reload } +export default { add, edit, del, finish, cancel, createTaskByClick, deviceAskTask, ordinaryTaskCreate, specialTaskCreate, createInst, reload, errorFinish, exceptions, deprecate } diff --git a/qd/src/views/acs/task/index.vue b/qd/src/views/acs/task/index.vue index 83df2bb..e9f4347 100644 --- a/qd/src/views/acs/task/index.vue +++ b/qd/src/views/acs/task/index.vue @@ -268,6 +268,9 @@ 完成 取消 创建指令 + 异常完成 + 异常 + 作废 @@ -440,6 +443,30 @@ export default { console.log(err.response.data.message) }) }, + errorFinish(index, row) { + crudTask.errorFinish(row.task_id).then(res => { + this.crud.toQuery() + this.crud.notify('成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + }).catch(err => { + console.log(err.response.data.message) + }) + }, + exception(index, row) { + crudTask.exceptions(row.task_id).then(res => { + this.crud.toQuery() + this.crud.notify('成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + }).catch(err => { + console.log(err.response.data.message) + }) + }, + deprecate(index, row) { + crudTask.deprecate(row.task_id).then(res => { + this.crud.toQuery() + this.crud.notify('成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + }).catch(err => { + console.log(err.response.data.message) + }) + }, reload() { crudTask.reload().then(res => { this.crud.toQuery() @@ -466,6 +493,15 @@ export default { case 'c':// 创建指令 this.createInst(command.index, command.row) break + case 'd':// 异常完成 + this.errorFinish(command.index, command.row) + break + case 'e':// 异常 + this.exception(command.index, command.row) + break + case 'f':// 作废 + this.deprecate(command.index, command.row) + break } }, showStartStorage(val) {