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 | 274 +++++++++++++++++++++++++++---------------------------
1 files changed, 138 insertions(+), 136 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 e77e4a2..e3fa69b 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -233,7 +233,7 @@
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
JSONObject data = rcsReturn.getData();
- String robotTaskCode = data.getString("RobotTaskCode");
+ String robotTaskCode = data.getString("robotTaskCode");
if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
return 1;
}
@@ -256,7 +256,7 @@
String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
if (!StringUtils.isEmpty(response) && response.contains("code")){
RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
- if("200".equals(rcsReturn.getCode())) {
+ if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
return 1;
}
}
@@ -327,6 +327,8 @@
String robotTaskCode = rcsReporterTask.getRobotTaskCode();
String singleRobotCode = rcsReporterTask.getSingleRobotCode();
+ String[] split = robotTaskCode.split("-");
+ robotTaskCode = split[0];
//鍗庢檽AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
if(Cools.isEmpty(rcsReporterTask.getExtra())){
if(Cools.isEmpty(rcsReporterTask.getMethod())){
@@ -445,41 +447,41 @@
String slotCode = values.getString("slotCode");
try {
// q3,q8=1
- if ("1".equals(carrierType)) { //AGV
- 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: {
- task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
- task.setModiTime(new Date());
- task.setModiUser(defaultUserId);
- taskService.updateById(task);
- }
- break;
- case TASK_OUT_BIN: {
- // TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
+ 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: {
+ task.setWrkSts(302L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ task.setModiUser(defaultUserId);
+ 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);
- // 浠诲姟瀹屾垚
+ }
+ break;
+ case TASK_END: {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ 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<>();
@@ -494,74 +496,74 @@
// taskService.completeWrkMast();
// taskDetlService.
- }
- 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;
}
+ 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("");
@@ -664,44 +666,44 @@
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("");
+ 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);
- //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+ }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("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
return rcsReturn;
}
@@ -749,7 +751,7 @@
{
result.append(line);
}
- log.info("recv - {}", result);
+ log.info("rec - {}", result);
}
catch (ConnectException e)
{
--
Gitblit v1.9.1