From 8e01a40be0a7ba61ece12870332b35a1fa3bfcd5 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 02 一月 2026 10:26:41 +0800
Subject: [PATCH] 1.新增agv状态请求离开 2.修复无法自动生成移库任务
---
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 489 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 354 insertions(+), 135 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 2347bfc..83f63c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -4,15 +4,13 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.core.common.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.RcsRetMethodEnum;
+import com.zy.asrs.service.AgvTaskService;
import com.zy.asrs.service.RcsService;
-import com.zy.asrs.service.TaskService;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
-import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
@@ -29,12 +27,8 @@
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
import java.util.Date;
-import java.util.List;
import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
@Slf4j
@Service
@@ -43,8 +37,11 @@
@Value("${hik.url}")
private String HIK_URL;
+ @Value("${mes.url}")
+ public String MES_URL;
+
@Autowired
- private TaskService taskService;
+ private AgvTaskService agvTaskService;
/**
@@ -56,6 +53,7 @@
*/
@Override
public RcsReturn reporterTask(RcsReporterTask rcsReporterTask) {
+ log.info("娴峰悍AGV绔欑偣浠诲姟璇锋眰={}", JSONObject.toJSONString(rcsReporterTask));
RcsReturn rcsReturn = new RcsReturn();
@@ -71,70 +69,29 @@
String slotCode = values.getString("slotCode");
EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
wrapper.eq("task_no", robotTaskCode);
- AgvTask task = taskService.selectOne(wrapper);
- if(!Cools.isEmpty(task)){
+ AgvTask task = agvTaskService.selectOne(wrapper);
+ if (!Cools.isEmpty(task)) {
try {
- // q3,q8=1
- if ("1".equals(carrierType)) { //AGV
-
- switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
- //鏀捐揣鐢宠
- case APPLY_PUT: {
+ switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+ //鏀捐揣鐢宠
+ case APPLY_PUT: {
+ if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
Integer sourceStaNo = Integer.valueOf(task.getStaNo());
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
//wcs鍙嶉rcs缁х画鎵ц
if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
- RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
- rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(task.getTaskNo());
+ if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
- String url =HIK_URL + "api/robot/controller/task/extend/continue";
- String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
- if (!StringUtils.isEmpty(response) && response.contains("code")){
- RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
- if("200".equals(rcsReturn1.getCode())) {
- //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
- boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
- log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
- if (result) {
- // 杩斿洖RCS
- rcsReturn.setCode("SUCCESS");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- }else {
- // 杩斿洖RCS
- rcsReturn.setCode("Err_Internal");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- }
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ log.info("鍏佽AGV鏀捐揣鎴愬姛");
}
- }
- }
- }
- break;
-
- //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
- case TASK_END: {
- Integer sourceStaNo = Integer.valueOf(task.getStaNo());
- SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
- //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
- if (staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() ==0) {
- staProtocol.setWorkNo((short) 9991);
- staProtocol.setStaNo(Short.valueOf(task.getStaNo()));
- boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
- log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
- if(result){
- // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
- task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
- task.setModiTime(new Date());
- taskService.updateById(task);
// 杩斿洖RCS
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
@@ -142,42 +99,27 @@
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
}else {
- // 杩斿洖RCS
- rcsReturn.setCode("Err_Internal");
- rcsReturn.setMessage("");
- JSONObject data = new JSONObject();
- data.put("robotTaskCode", robotTaskCode);
- rcsReturn.setData(data);
- }
- }
- }
- break;
- //rcs璇锋眰wms鍙栬揣鐢宠
- case APPLY_PICK: {
- Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
- SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
- //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
- if (staProtocol != null && staProtocol.isLoading()
- && staProtocol.isEmptyOutType()
- && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
- RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
- rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(task.getTaskNo());
-
- String url =HIK_URL + "api/robot/controller/task/extend/continue";
- String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
- if (!StringUtils.isEmpty(response) && response.contains("code")){
- RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
- if("200".equals(rcsReturn1.getCode())) {
+ //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
+ if (result) {
+ log.info("鍏ュ簱绔欑偣={}瑙﹀彂鎵爜鎴愬姛", staProtocol.getSiteId());
// 杩斿洖RCS
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
- }else {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ log.info("鍏佽AGV鏀捐揣鎴愬姛");
+ }
+ } else {
// 杩斿洖RCS
rcsReturn.setCode("Err_Internal");
rcsReturn.setMessage("");
@@ -187,27 +129,65 @@
}
}
}
+ }else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setStationId(task.getStaNo());
+ transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+ int i = applyInStation(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
}
- break;
- //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
- case PICK_COMPLETE: {
- Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+
+ }
+ break;
+
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
+ case TASK_END: {
+ if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
+ Integer sourceStaNo = Integer.valueOf(task.getStaNo());
SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ Boolean boo = false;
+ Short wrkNo = 9991;
//鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
- if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType() && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
- staProtocol.setWorkNo((short) 0);
- staProtocol.setStaNo((short) 0);
+ //琛ョ┖鏂欐灦 --銆媋gv宸茬粡绔嬪簱 --銆嬬粰PLC绔欑偣鍐�9995宸ヤ綔鍙�
+ if (task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+ boo = true;
+ wrkNo = 9995;
+ } else if (!task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+ boo = true;
+ }
+ if (boo) {
+ staProtocol.setWorkNo(wrkNo);//绌烘枡鏋跺埌浣嶄俊鍙风偣
+ staProtocol.setStaNo(Short.valueOf("0"));
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
- log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
- if(result){
+ log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+ if (result) {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ agvTaskService.updateById(task);
// 杩斿洖RCS
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
- }else {
+ } else {
// 杩斿洖RCS
rcsReturn.setCode("Err_Internal");
rcsReturn.setMessage("");
@@ -215,16 +195,232 @@
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
}
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }else {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ agvTaskService.updateById(task);
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ break;
+ //rcs璇锋眰wms鍙栬揣鐢宠
+ case APPLY_PICK: {
+ if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
+ Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
+ if (staProtocol != null && (staProtocol.isLoading() || task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�"))
+ && staProtocol.isEmptyOutType()) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+ if ("200".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }
+ }else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setStationId(task.getStaNo());
+ transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+ int i = applyInStation(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
}
}
- break;
+ }
+ break;
+ //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
+ case PICK_COMPLETE: {
+ Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+ if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
+ staProtocol.setWorkNo((short) 0);
+ staProtocol.setStaNo((short) 0);
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+ log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+ if (result) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
- default: {
}
+ }
+ break;
+ //AGV鍙栬揣绂荤珯璇锋眰
+ case APPLY_IN_OFF_STATION:{
+ //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+ if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+ if ("200".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }else{
+ //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setStationId(task.getStaNo());
+ transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+ int i = applyOutStation(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ break;
+ }
+ //AGV鏀捐揣绂荤珯璇锋眰
+ case APPLY_OFF_STATION:{
+ //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+ if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+
+ String url = HIK_URL + "api/robot/controller/task/extend/continue";
+ String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+ if ("200".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }else{
+ //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ transParent.setStationId(task.getStaNo());
+ transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+ int i = applyOutStation(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+
break;
}
+
+ default: {
+ }
+ break;
}
+
} catch (Exception e) {
log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
@@ -241,7 +437,7 @@
/**
* 鍚戞寚瀹� URL 鍙戦�丳OST鏂规硶鐨勮姹�
*
- * @param url 鍙戦�佽姹傜殑 URL
+ * @param url 鍙戦�佽姹傜殑 URL
* @param param 璇锋眰鍙傛暟锛岃姹傚弬鏁板簲璇ユ槸 name1=value1&name2=value2 鐨勫舰寮忋��
* @return 鎵�浠h〃杩滅▼璧勬簮鐨勫搷搴旂粨鏋�
*/
@@ -249,8 +445,7 @@
PrintWriter out = null;
BufferedReader in = null;
StringBuilder result = new StringBuilder();
- try
- {
+ try {
log.info("sendPost - {} - {}", url, param);
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
@@ -273,46 +468,70 @@
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
String line;
- while ((line = in.readLine()) != null)
- {
+ while ((line = in.readLine()) != null) {
result.append(line);
}
log.info("recv - {}", result);
- }
- catch (ConnectException e)
- {
+ } catch (ConnectException e) {
log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
- }
- catch (SocketTimeoutException e)
- {
+ } catch (SocketTimeoutException e) {
log.error("璋冪敤HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
- }
- catch (IOException e)
- {
+ } catch (IOException e) {
log.error("璋冪敤HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.error("璋冪敤HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
- }
- finally
- {
- try
- {
- if (out != null)
- {
+ } finally {
+ try {
+ if (out != null) {
out.close();
}
- if (in != null)
- {
+ if (in != null) {
in.close();
}
- }
- catch (IOException ex)
- {
+ } catch (IOException ex) {
log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
}
}
return result.toString();
}
+
+ /**
+ * 鍏ョ珯璇锋眰锛氳浆鍙慉GV->鍏ョ珯璇锋眰->缁橫ES
+ *
+ * @param apply
+ * @return
+ */
+ public int applyInStation(TransParent apply) {
+ String path = "AGVTransportPalletNotice";
+ String url = MES_URL + path;
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+
+ /**
+ * 绂荤珯璇锋眰锛氳浆鍙慉GV->绂荤珯璇锋眰->缁橫ES
+ *
+ * @param apply
+ * @return
+ */
+ public int applyOutStation(TransParent apply) {
+
+ String url = MES_URL + "AGVDepartureRequest";
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
}
--
Gitblit v1.9.1