From 448340025aefd8edbb72a23f2f1677fc3c74d486 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 08 九月 2023 16:03:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/RobotController.java                |   44 ++++++++++++++
 src/main/java/com/zy/asrs/domain/param/ReportExceptionParam.java         |   23 +++++++
 src/main/java/com/zy/asrs/domain/param/RobotReportActionStatusParam.java |   26 ++++++++
 src/main/webapp/static/robotStatus.json                                  |    4 +
 src/main/java/com/zy/common/utils/RobotUtils.java                        |   71 +++++++++++++++++++++++
 5 files changed, 168 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RobotController.java b/src/main/java/com/zy/asrs/controller/RobotController.java
new file mode 100644
index 0000000..3b4b5a4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/RobotController.java
@@ -0,0 +1,44 @@
+package com.zy.asrs.controller;
+
+import com.zy.asrs.domain.param.RobotReportActionStatusParam;
+import com.zy.asrs.domain.param.ReportExceptionParam;
+import com.zy.common.utils.RobotUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+
+@RestController
+public class RobotController {
+
+    //鏈烘鎵嬪悜WCS鍥炴姤浠诲姟缁撴灉瀹屾垚
+    @PostMapping("/request/wcs/single_class_depal_task/report_action_status")
+    public HashMap<String,Object> reportActionStatus(@RequestBody RobotReportActionStatusParam param) {
+        HashMap<String, Object> map = new HashMap<>();
+        String taskId = param.getTask_id();
+        Integer taskStatus = param.getTask_status();
+        Integer pickNum = param.getPick_num();
+        Integer targetNum = param.getTarget_num();
+        String message = param.getMessage();
+
+        map.put("error", 0);
+        map.put("error_message", "success");
+        return map;
+    }
+
+    //鏈烘鎵嬪悜WCS鍥炴姤寮傚父
+    @PostMapping("/request/wcs/report_exception")
+    public HashMap<String,Object> reportException(@RequestBody ReportExceptionParam param) {
+        HashMap<String, Object> map = new HashMap<>();
+        String taskId = param.getTask_id();
+        String errorCode = param.getError_code();
+        String msg = param.getMsg();
+        String tip = param.getTip();
+
+        map.put("error", 0);
+        map.put("error_message", "success");
+        return map;
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/ReportExceptionParam.java b/src/main/java/com/zy/asrs/domain/param/ReportExceptionParam.java
new file mode 100644
index 0000000..5f4c65b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/ReportExceptionParam.java
@@ -0,0 +1,23 @@
+package com.zy.asrs.domain.param;
+
+import lombok.Data;
+
+/**
+ * Robot鍚慦CS鍥炴姤寮傚父鍙傛暟
+ */
+@Data
+public class ReportExceptionParam {
+
+    //浠诲姟缂栧彿
+    private String task_id;
+
+    //閿欒浠g爜
+    private String error_code;
+
+    //閿欒淇℃伅
+    private String msg;
+
+    //鎻愮ず
+    private String tip;
+
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/RobotReportActionStatusParam.java b/src/main/java/com/zy/asrs/domain/param/RobotReportActionStatusParam.java
new file mode 100644
index 0000000..b4bc5ee
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/RobotReportActionStatusParam.java
@@ -0,0 +1,26 @@
+package com.zy.asrs.domain.param;
+
+import lombok.Data;
+
+/**
+ * 鏈烘鑷傚悜WCS鍥炴姤鍗曟鎶撳彇宸插畬鎴愬弬鏁�
+ */
+@Data
+public class RobotReportActionStatusParam {
+
+    //浠诲姟缂栧彿
+    private String task_id;
+
+    //浠诲姟鐘舵��
+    private Integer task_status;
+
+    //浠诲姟鎬绘姄鍙栨暟閲�
+    private Integer pick_num;
+
+    //鐩爣鎶撳彇鏁伴噺
+    private Integer target_num;
+
+    //缁撴灉璁伅
+    private String message;
+
+}
diff --git a/src/main/java/com/zy/common/utils/RobotUtils.java b/src/main/java/com/zy/common/utils/RobotUtils.java
new file mode 100644
index 0000000..2db7119
--- /dev/null
+++ b/src/main/java/com/zy/common/utils/RobotUtils.java
@@ -0,0 +1,71 @@
+package com.zy.common.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.common.SpringUtils;
+import org.springframework.core.env.Environment;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 鏈烘鎵�(Robot)宸ュ叿绫�
+ */
+public class RobotUtils {
+
+    //鑾峰彇Robot绯荤粺鐘舵��
+    public static boolean getSystemStatus() {
+        Environment environment = SpringUtils.getBean(Environment.class);
+        String robotUrl = environment.getProperty("robot.url");
+
+        HashMap<String, Object> map = new HashMap<>();
+        try {
+            String response = new HttpHandler.Builder()
+                    .setUri(robotUrl)
+                    .setPath("/api/wcs/is_system_ready")
+                    .setJson(JSON.toJSONString(map))
+                    .build()
+                    .doPost();
+
+            JSONObject data = JSON.parseObject(response);
+            int status = Integer.parseInt(data.get("status").toString());
+            if (status == 0) {
+                return true;//绯荤粺姝e父
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return false;//绯荤粺寮傚父锛屾病鏈夊噯澶囧ソ
+    }
+
+    //WCS鍚戞満姊拌噦涓嬪彂鍗曟媶浠诲姟
+    public static boolean sendTask(String taskId, Map<String, Object> skuInfo, String from, String to) {
+        Environment environment = SpringUtils.getBean(Environment.class);
+        String robotUrl = environment.getProperty("robot.url");
+
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("task_id", taskId);
+        map.put("sku_info", skuInfo);
+        map.put("from", from);
+        map.put("to", to);
+        try {
+            String response = new HttpHandler.Builder()
+                    .setUri(robotUrl)
+                    .setPath("api/wcs/single_class_depal_task")
+                    .setJson(JSON.toJSONString(map))
+                    .build()
+                    .doPost();
+
+            JSONObject data = JSON.parseObject(response);
+            int error = Integer.parseInt(data.get("error").toString());
+            if (error == 0) {
+                return true;//鎴愬姛
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return false;//寮傚父
+    }
+
+}
diff --git a/src/main/webapp/static/robotStatus.json b/src/main/webapp/static/robotStatus.json
new file mode 100644
index 0000000..3114dcc
--- /dev/null
+++ b/src/main/webapp/static/robotStatus.json
@@ -0,0 +1,4 @@
+{
+  "message": "ready",
+  "status": 0
+}
\ No newline at end of file

--
Gitblit v1.9.1