From b6681bc12173c1179d0185805ba461211472ac18 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期日, 04 一月 2026 09:31:16 +0800
Subject: [PATCH] 1.完善出库任务呼叫agv 2.完善agv任务下发 3.等等
---
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 482 ++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 326 insertions(+), 156 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index b7d7be5..e3fa69b 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.mes.TransArrivalStation;
import com.zy.asrs.entity.mes.TransParent;
@@ -16,7 +17,10 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URL;
@@ -39,6 +43,12 @@
// 鍗庢檽RCS鍦板潃
@Value("${hx.url}")
private String HX_URL;
+ // 鍗庢檽RCS鍦板潃
+ @Value("${hx.taskNo}")
+ private String taskNo;
+ // 鍗庢檽RCS鍦板潃
+ @Value("${hx.inOk}")
+ private String inOk;
@Value("${mes.defaultUserId}")
public long defaultUserId;
@@ -55,6 +65,9 @@
private TaskDetlServiceImpl taskDetlService;
@Resource
private WrkMastService wrkMastService;
+
+ @Resource
+ private ApiLogService apiLogService;
// region 灏侀攣鍖洪�昏緫锛岀洰鍓嶅彧鏈変竴涓ぇ灏侀攣鍖猴紝浠诲姟鍏ㄩ儴杞埌婊戝潡搴撳鐞嗭紝鎴栫洿鎺ュ啓鍒版粦鍧楀簱
@@ -85,40 +98,40 @@
*/
public void managerBlock() {
- try {
- BlockTask firstTask = blockTaskMapper.findTop();
- if (firstTask == null) {
- return;
- }
- EntityWrapper<BlockStation> wrapper = new EntityWrapper<>();
- wrapper.eq("block_no", firstTask.getBlockNo());
- List<BlockStation> stations = blockStationMapper.selectList(wrapper);
- if (!stations.isEmpty()) {
- boolean locked = false;
- for (BlockStation station : stations) {
- // 鍙厑璁�1涓巶瀹惰澶囪繘鍏ュ皝閿佸尯锛宻tatus鐘舵�侊細0 绌洪棽锛�1 娴峰悍灏侀攣涓紱2 鍗庢檽灏侀攣涓紱-1 寮傚父锛�
- if (station.getStatus() > 0 && !station.getStatus().equals(firstTask.getAgvFactory())) {
- locked = true;
- break;
- }
- }
+ try {
+ BlockTask firstTask = blockTaskMapper.findTop();
+ if (firstTask == null) {
+ return;
+ }
+ EntityWrapper<BlockStation> wrapper = new EntityWrapper<>();
+ wrapper.eq("block_no", firstTask.getBlockNo());
+ List<BlockStation> stations = blockStationMapper.selectList(wrapper);
+ if (!stations.isEmpty()) {
+ boolean locked = false;
+ for (BlockStation station : stations) {
+ // 鍙厑璁�1涓巶瀹惰澶囪繘鍏ュ皝閿佸尯锛宻tatus鐘舵�侊細0 绌洪棽锛�1 娴峰悍灏侀攣涓紱2 鍗庢檽灏侀攣涓紱-1 寮傚父锛�
+ if (station.getStatus() > 0 && !station.getStatus().equals(firstTask.getAgvFactory())) {
+ locked = true;
+ break;
+ }
+ }
- if (!locked) {
- // 灏侀攣鐘舵��
- int success = blockStationMapper.addByBlockNo(firstTask.getBlockNo(), firstTask.getAgvFactory());
- if (success > 0) {
- // 閫氱煡RCS
- RcsEqptNotify notify = new RcsEqptNotify();
- notify.setEqptCode(firstTask.getBlockNo());
- notify.setTaskCode(firstTask.getTaskCode());
- notify.setActionStatus("1");
- notifyEqpt(notify, firstTask.getAgvFactory());
- }
- }
- }
- } catch (Exception e) {
- log.error("绠$悊灏侀攣鍖哄紓甯�", e);
- }
+ if (!locked) {
+ // 灏侀攣鐘舵��
+ int success = blockStationMapper.addByBlockNo(firstTask.getBlockNo(), firstTask.getAgvFactory());
+ if (success > 0) {
+ // 閫氱煡RCS
+ RcsEqptNotify notify = new RcsEqptNotify();
+ notify.setEqptCode(firstTask.getBlockNo());
+ notify.setTaskCode(firstTask.getTaskCode());
+ notify.setActionStatus("1");
+ notifyEqpt(notify, firstTask.getAgvFactory());
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("绠$悊灏侀攣鍖哄紓甯�", e);
+ }
}
/**
@@ -168,11 +181,57 @@
*/
public int submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/robot/controller/task/submit";
- String response = sendPost(url, rcsTaskSubmit.toString());
+// String response = "";
+// boolean success = false;
+// Map<String,Object> headers = new HashMap<>();
+// headers.put("Content-Type","application/json");
+// headers.put("Content-Length","<calculated when request is sent>");
+// headers.put("Host","<calculated when request is sent>");
+//// headers.put("Connection","keep-alive");
+//// headers.put("Accept","*/*");
+//// headers.put("Accept-Encoding","gzip, deflate, br");
+// headers.put("X-lr-request-id","123");
+// headers.put("X-lr-version","4.3");
+// try {
+// response = new HttpHandler.Builder()
+// .setUri(HIK_URL)
+// .setPath("api/robot/controller/task/submit")
+// .setHeaders(headers)
+// .setJson(JSON.toJSONString(rcsTaskSubmit))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getBoolean("success")) {
+// success = true;
+// } else {
+// log.error("涓嬪彂agv浠诲姟澶辫触锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", HIK_URL + "api/robot/controller/task/submit", JSON.toJSONString(rcsTaskSubmit), response);
+// }
+// } catch (Exception e) {
+// log.error("涓嬪彂agv浠诲姟寮傚父", e);
+// } finally {
+// try {
+// // 淇濆瓨鎺ュ彛鏃ュ織
+// apiLogService.save(
+// "涓嬪彂agv浠诲姟",
+// HIK_URL + "api/robot/controller/task/submit",
+// null,
+// "127.0.0.1",
+// JSON.toJSONString(rcsTaskSubmit),
+// response,
+// success
+// );
+// } catch (Exception e) {
+// log.error("涓嬪彂agv浠诲姟淇濆瓨鎺ュ彛鏃ュ織寮傚父", e);
+// }
+// }
+// return success ? 1 : 0;
+
+ String url = rcsFactory == 2 ? HX_URL+taskNo :HIK_URL + "api/robot/controller/task/submit";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
+
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
- if("SUCCESS".equals(rcsReturn.getCode())) {
+ if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
JSONObject data = rcsReturn.getData();
String robotTaskCode = data.getString("robotTaskCode");
if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
@@ -191,18 +250,14 @@
* @param rcsFactory
* @return
*/
- public int continueTask(RcsTaskContinue rcsTaskContinue, int rcsFactory){
+ public int continueTask(Object rcsTaskContinue, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/robot/controller/task/extend/continue";
- String response = sendPost(url, rcsTaskContinue.toString());
+ String url = rcsFactory == 2 ? HX_URL+inOk :HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
- if("SUCCESS".equals(rcsReturn.getCode())) {
- JSONObject data = rcsReturn.getData();
- String robotTaskCode = data.getString("robotTaskCode");
- if (robotTaskCode.equals(rcsTaskContinue.getRobotTaskCode())) {
- return 1;
- }
+ if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
+ return 1;
}
}
@@ -218,7 +273,7 @@
*/
public int cancelTask(RcsTaskCancel rcsTaskCancel, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/robot/controller/task/cancel";
+ String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/robot/controller/task/cancel";
String response = sendPost(url, rcsTaskCancel.toString());
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
@@ -243,7 +298,7 @@
*/
private int notifyEqpt(RcsEqptNotify rcsEqptNotify, int rcsFactory){
- String url = rcsFactory == 2 ? HIK_URL : HX_URL + "api/wcs/robot/eqpt/notify";
+ String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/wcs/robot/eqpt/notify";
String response = sendPost(url, rcsEqptNotify.toString());
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
@@ -272,65 +327,53 @@
String robotTaskCode = rcsReporterTask.getRobotTaskCode();
String singleRobotCode = rcsReporterTask.getSingleRobotCode();
- JSONObject values = rcsReporterTask.getExtra().getJSONObject("values");
- // start : 浠诲姟寮�濮嬶紱outbin : 璧板嚭鍌ㄤ綅锛沞nd : 浠诲姟瀹屾垚
- String method = values.getString("method");
- String carrierType = values.getString("carrierType");
- String slotCategory = values.getString("slotCategory");
- String slotCode = values.getString("slotCode");
-
- try {
- if ("Q3".equals(carrierType) || "Q8".equals(carrierType)) { //AGV
+ String[] split = robotTaskCode.split("-");
+ robotTaskCode = split[0];
+ //鍗庢檽AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+ if(Cools.isEmpty(rcsReporterTask.getExtra())){
+ if(Cools.isEmpty(rcsReporterTask.getMethod())){
+ log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
EntityWrapper<Task> wrapper = new EntityWrapper<>();
wrapper.eq("task_no", robotTaskCode);
Task task = taskService.selectOne(wrapper);
- if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
- rcsReturn.setCode("Err_RobotCodeNotMatch");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- return rcsReturn;
- }
- JSONObject memo = JSONObject.parseObject(task.getMemo());
-
- switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
- case TASK_START: {
+ String method = rcsReporterTask.getMethod();
+ JSONObject memo = Cools.isEmpty(task) ? null : JSONObject.parseObject(task.getMemo());
+ switch (method) {
+ case "TASK_START": {
task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
task.setModiTime(new Date());
task.setModiUser(defaultUserId);
taskService.updateById(task);
} break;
- case TASK_OUT_BIN: {
+ case "TASK_OUT_BIN": {
// TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
- JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
- mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
+// JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
+// mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
} break;
- case TASK_END: {
+ case "TASK_END": {
+ if(Cools.isEmpty(task)){
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
// 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
task.setModiTime(new Date());
task.setModiUser(defaultUserId);
taskService.updateById(task);
- // 浠诲姟瀹屾垚
-// mesService.reporterTask(rcsReporterTask);
-
-// EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
-// wapper2.eq("wrk_no", task.getWrkNo())
-// .eq("matnr", memo.getString("ItemNo"))
-// .eq("order_no", memo.getString("OrderNo"));
-// TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
-// taskDetl.setAnfme()
-// taskDetlService.updateById();
-
-// // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-// taskService.completeWrkMast();
-// taskDetlService.
-
} break;
- case APPLY_IN_STATION:
- case APPLY_OFF_STATION:
- case ARRIVE_OFF_STATION: {
+ case "APPLY_IN_STATION":
+ case "APPLY_OFF_STATION":
+ case "ARRIVE_OFF_STATION": {
TransParent apply = new TransParent();
apply.setTaskno(robotTaskCode);
apply.setTaskname(memo.getString("taskName"));
@@ -338,21 +381,19 @@
String transType = memo.getString("TransType");
apply.setTransType(transType);
apply.setProductLineId(memo.getString("ProductLineId"));
- if(transType.equals("02") || transType.equals("04") || transType.equals("06")) {
- apply.setStationId(task.getSourceStaNo());
- } else {
- apply.setStationId(task.getStaNo());
- }
-
- if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
+ apply.setStationId(task.getSourceStaNo());
+ //agv鍏ョ珯鐢宠
+ if ("APPLY_IN_STATION".equals(method)) {
mesService.applyInStation(apply);
- } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
+ //agv绂荤珯璇锋眰
+ } else if ("APPLY_OFF_STATION".equals(method)) {
mesService.applyOutStation(apply);
- } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
+ //agv绂荤珯瀹屾垚
+ } else {
mesService.outStation(apply);
}
} break;
- case ARRIVE_ON_STATION: {
+ case "ARRIVE_ON_STATION": {
// TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
break;
@@ -389,10 +430,27 @@
} break;
default: {} break;
}
- } else if ("CTU".equals(carrierType)) { //CTU
- EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
+ }
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+ }else {
+ JSONObject values = rcsReporterTask.getExtra().getJSONObject("values");
+ // start : 浠诲姟寮�濮嬶紱outbin : 璧板嚭鍌ㄤ綅锛沞nd : 浠诲姟瀹屾垚
+ String method = values.getString("method");
+ String carrierType = values.getString("carrierType");
+ String slotCategory = values.getString("slotCategory");
+ String slotCode = values.getString("slotCode");
+ try {
+ // q3,q8=1
+
+ EntityWrapper<Task> wrapper = new EntityWrapper<>();
wrapper.eq("task_no", robotTaskCode);
- WrkMast task = wrkMastService.selectOne(wrapper);
+ Task task = taskService.selectOne(wrapper);
if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
rcsReturn.setCode("Err_RobotCodeNotMatch");
rcsReturn.setMessage("");
@@ -401,55 +459,126 @@
rcsReturn.setData(data);
return rcsReturn;
}
-// JSONObject memo = JSONObject.parseObject(task.getMemo());
+ JSONObject memo = JSONObject.parseObject(task.getMemo());
switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
case TASK_START: {
-// task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-// task.setModiTime(new Date());
-// task.setModiUser(defaultUserId);
-// taskService.updateById(task);
- } break;
-// case TASK_OUT_BIN: {} break;
- case TASK_END: {
- // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
- long wrkSts = task.getWrkSts(); // 1.鍏ュ簱锛�101.鍑哄簱锛�
- if (task.getIoType() == 1) {
- wrkSts = 4L;
- } else if (task.getIoType() == 101) {
- wrkSts = 14L;
- }
-
- task.setWrkSts(wrkSts); // 4.鍏ュ簱瀹屾垚锛�14.宸插嚭搴撴湭纭锛�
+ task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
task.setModiTime(new Date());
task.setModiUser(defaultUserId);
- wrkMastService.updateById(task);
+ taskService.updateById(task);
+ }
+ break;
+ case TASK_OUT_BIN: {
+ // TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
+// JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
+// mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
+ }
+ break;
+ case TASK_END: {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ task.setModiUser(defaultUserId);
+ taskService.updateById(task);
+ // 浠诲姟瀹屾垚
+// mesService.reporterTask(rcsReporterTask);
- // TODO锛氫换鍔″畬鎴愯Е鍙戝嚭鍏ュ簱鍙樻洿鎿嶄綔
+// EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
+// wapper2.eq("wrk_no", task.getWrkNo())
+// .eq("matnr", memo.getString("ItemNo"))
+// .eq("order_no", memo.getString("OrderNo"));
+// TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
+// taskDetl.setAnfme()
+// taskDetlService.updateById();
+// // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+// taskService.completeWrkMast();
+// taskDetlService.
-// // 鍏ュ簱瀹屾垚
-// mesService.inFeedback(memo.getString("OrderNo"));
-// // 鍑哄簱瀹屾垚
-// mesService.outFeedback(memo.getString("OrderNo"));
- } break;
- default: {} break;
+ }
+ break;
+ case APPLY_IN_STATION:
+ case APPLY_OFF_STATION:
+ case ARRIVE_OFF_STATION: {
+ TransParent apply = new TransParent();
+ apply.setTaskno(robotTaskCode);
+ apply.setTaskname(memo.getString("taskName"));
+ apply.setAgvCode(singleRobotCode);
+ String transType = memo.getString("TransType");
+ apply.setTransType(transType);
+ apply.setProductLineId(memo.getString("ProductLineId"));
+ if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
+ apply.setStationId(task.getSourceStaNo());
+ } else {
+ apply.setStationId(task.getStaNo());
+ }
+
+ if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
+ mesService.applyInStation(apply);
+ } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
+ mesService.applyOutStation(apply);
+ } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
+ mesService.outStation(apply);
+ }
+ }
+ break;
+ case ARRIVE_ON_STATION: {
+ // TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
+ if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
+ break;
+ }
+
+ EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
+ wapper2.eq("wrk_no", task.getWrkNo())
+ .eq("matnr", memo.getString("Itemno"))
+ .eq("order_no", memo.getString("OrderNo"));
+ TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
+ TransArrivalStation arrivalStation = new TransArrivalStation();
+ arrivalStation.setTaskno(robotTaskCode);
+ arrivalStation.setTaskname(memo.getString("taskName"));
+ arrivalStation.setTuoPanId(taskDetl.getZpallet()); // memo.getString("TuoPanId")
+ arrivalStation.setProductLineId(memo.getString("ProductLineId"));
+ String transType = memo.getString("TransType");
+ arrivalStation.setDaotype(transType);
+ if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
+ arrivalStation.setStationID(task.getSourceStaNo());
+ } else {
+ arrivalStation.setStationID(task.getStaNo());
+ }
+ arrivalStation.setOrderNo(memo.getString("OrderNo"));
+ arrivalStation.setAgvCode(singleRobotCode);
+ arrivalStation.setItemno(memo.getString("Itemno"));
+ String memo2 = taskDetl.getMemo();
+ List<String> itemBarCode = new ArrayList<>();
+ Matcher matcher = Pattern.compile("\"([^\"]*)\"").matcher(memo2);
+ while (matcher.find()) {
+ itemBarCode.add(matcher.group(1));
+ }
+ arrivalStation.setItemBarcode(itemBarCode);
+ mesService.arriveOnStation(arrivalStation);
+ }
+ break;
+ default: {
+ }
+ break;
}
+
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } catch (Exception e) {
+ log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍐呴儴澶勭悊寮傚父");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
}
- // 杩斿洖RCS
- rcsReturn.setCode("SUCCESS");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- } catch (Exception e) {
- log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
- rcsReturn.setCode("Err_Internal");
- rcsReturn.setMessage("鍐呴儴澶勭悊寮傚父");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
}
return rcsReturn;
@@ -530,17 +659,53 @@
* @param apply
* @return
*/
- public JSONObject hxApplyInLine(TransParent apply) {
+ public RcsReturn hxApplyInLine(TransParent apply) {
- String status = mesService.applyInLine(apply);
- JSONObject result = new JSONObject();
- result.put("Success", 1);
- result.put("Message", status);
+ RcsReturn rcsReturn = new RcsReturn();
+
+ String robotTaskCode = apply.getTaskno();
+ String singleRobotCode = apply.getAgvCode();
+ //鍗庢檽AGV鐢宠
+ if(Cools.isEmpty(apply.getMethod())){
+ log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ EntityWrapper<Task> wrapper = new EntityWrapper<>();
+ wrapper.eq("task_no", robotTaskCode);
+ Task task = taskService.selectOne(wrapper);
+ String method = apply.getMethod();
+ JSONObject memo = Cools.isEmpty(task) ? null : JSONObject.parseObject(task.getMemo());
+ switch (method) {
+ case "APPLY_IN_STATION":
+ case "APPLY_OFF_STATION":
+ case "ARRIVE_OFF_STATION": {
+ //agv鍏ョ珯鐢宠
+ if ("APPLY_IN_STATION".equals(method)) {
+ mesService.applyInStation(apply);
+ //agv绂荤珯璇锋眰
+ } else if ("APPLY_OFF_STATION".equals(method)) {
+ mesService.applyOutStation(apply);
+ //agv绂荤珯瀹屾垚
+ } else {
+ mesService.outStation(apply);
+ }
+ } break;
+ default: {} break;
+ }
+ }
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
JSONObject data = new JSONObject();
- data.put("status", status);
- result.put("Data", data);
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
- return result;
+ return rcsReturn;
}
// endregion
@@ -563,11 +728,16 @@
log.info("sendPost - {} - {}", url, param);
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
- conn.setRequestProperty("accept", "*/*");
- conn.setRequestProperty("connection", "Keep-Alive");
- conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
- conn.setRequestProperty("Accept-Charset", "utf-8");
- conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
+ conn.setRequestProperty("Content-Type", "application/json");
+ conn.setRequestProperty("Content-Length", "<calculated when request is sent>");
+ conn.setRequestProperty("Host", "<calculated when request is sent>");
+ conn.setRequestProperty("Accept", "*/*");
+ conn.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
+ conn.setRequestProperty("Connection", "keep-alive");
+
+ conn.setRequestProperty("X-lr-request-id", String.valueOf(new Date().getTime()));
+ conn.setRequestProperty("X-lr-version", "4.3");
+
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setDoOutput(true);
@@ -581,7 +751,7 @@
{
result.append(line);
}
- log.info("recv - {}", result);
+ log.info("rec - {}", result);
}
catch (ConnectException e)
{
--
Gitblit v1.9.1