From dfb16176c060ace64d01926c42e041d268e90262 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 24 十一月 2025 08:31:40 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 63 ++++++++++++++++----
src/main/java/com/zy/common/constant/AgvConstant.java | 1
src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinParam.java | 73 ++++++++++++++++++++++++
src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java | 8 +-
src/main/java/com/zy/core/MainProcess.java | 2
5 files changed, 128 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinParam.java b/src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinParam.java
new file mode 100644
index 0000000..851a3b5
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinParam.java
@@ -0,0 +1,73 @@
+package com.zy.asrs.entity.param;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.SnowflakeIdWorker;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasAgvLocNo;
+import com.zy.asrs.entity.BasAgvMast;
+import com.zy.asrs.service.BasAgvLocNoService;
+import lombok.Data;
+
+import java.util.ArrayList;
+
+/*
+ * Created by Monkey D. Luffy on 2025.09.09
+ * */
+@Data
+public class AgvBindCtnrAndBinParam {
+
+ private String reqCode;
+ private String reqTime;
+ private String clientCode;
+ private String tokenCode;
+ private String ctnrCode;
+ private String ctnrTyp;
+ private String stgBinCode;
+ private String positionCode;
+ private String indBind;
+
+ public AgvBindCtnrAndBinParam() {
+
+ }
+ public AgvBindCtnrAndBinParam(BasAgvMast basAgvMast) {
+ switch (basAgvMast.getIoType()){
+ case 0:
+ getAgvTaskAssignmentParam0(basAgvMast);
+ indBind = "0";
+ return;
+ case 1:
+ getAgvTaskAssignmentParam0(basAgvMast);
+ indBind = "1";
+ return;
+ case 2:
+ getAgvTaskAssignmentParam1(basAgvMast);
+ indBind = "1";
+ return;
+ case 3:
+ getAgvTaskAssignmentParam1(basAgvMast);
+ indBind = "0";
+ return;
+ default:
+ return;
+ }
+
+ }
+
+ public void getAgvTaskAssignmentParam0(BasAgvMast basAgvMast) {
+ BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
+ this.reqCode = basAgvMast.getTaskNo() + "-" + System.currentTimeMillis();
+ BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
+ this.positionCode = basAgvLocNoSou.getAgvLocNo();
+ BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()));
+ this.stgBinCode = basAgvLocNoEnd.getAgvLocNo();
+ }
+
+ public void getAgvTaskAssignmentParam1(BasAgvMast basAgvMast) {
+ BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
+ this.reqCode = basAgvMast.getTaskNo() + "-" + System.currentTimeMillis();
+ BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
+ this.positionCode = basAgvLocNoSou.getAgvLocNo();
+ BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()));
+ this.stgBinCode = basAgvLocNoEnd.getAgvLocNo();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java b/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
index 221871e..8922962 100644
--- a/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
@@ -66,7 +66,7 @@
SnowflakeIdWorker snowflakeIdWorker = SpringUtils.getBean(SnowflakeIdWorker.class);
long nextId = snowflakeIdWorker.nextId();
- this.taskCode = String.valueOf(nextId);
+ this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
PositionCodePathClass positionCodePathClassEnd = new PositionCodePathClass();
BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
positionCodePathClassEnd.setPositionCode(basAgvLocNoSou.getAgvLocNo());
@@ -83,7 +83,7 @@
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
this.reqCode = basAgvMast.getTaskNo().toString();
- this.taskCode = basAgvMast.getTimestamp().toString();
+ this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getSourceLocNo()));
positionCodePathClassSou.setPositionCode(basAgvLocNoSou.getAgvLocNo());
@@ -98,7 +98,7 @@
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
this.reqCode = basAgvMast.getTaskNo().toString();
- this.taskCode = basAgvMast.getTimestamp().toString();
+ this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
BasAgvLocNo basAgvLocNoSou= basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getSourceStaNo()));
positionCodePathClassSou.setPositionCode(basAgvLocNoSou.getAgvLocNo());
@@ -113,7 +113,7 @@
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
this.reqCode = basAgvMast.getTaskNo().toString();
- this.taskCode = basAgvMast.getTimestamp().toString();
+ this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
PositionCodePathClass positionCodePathClassSou = new PositionCodePathClass();
BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getSourceStaNo()));
positionCodePathClassSou.setPositionCode(basAgvLocNoSou.getAgvLocNo());
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 0a2b19e..4053997 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,10 +7,7 @@
import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.AgvTaskAssignmentParam;
-import com.zy.asrs.entity.param.ArmOrderAssignmentParam;
-import com.zy.asrs.entity.param.ArmTaskAssignmentParam;
-import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
@@ -323,7 +320,15 @@
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.error("杈撻�佺嚎涓嬪彂2锛�"+dto.getWorkNo()+","+dto.getStaNo());
-
+ if(staProtocol.getSiteId() == 1036){ //1036
+ BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("sta_no", 1037));
+ AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
+ agvBindCtnrAndBinParam.setCtnrCode(barcode);
+ ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV瀹瑰櫒缁戝畾瑙g粦", AgvConstant.AGV_URL, AgvConstant.AGV_CTNRANDBING, agvBindCtnrAndBinParam);
+ if (resultBind.getCode()!=200){
+ agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV瀹瑰櫒缁戝畾瑙g粦", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+ }
+ }
ledThread.errorReset();
log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
@@ -4725,6 +4730,7 @@
basAgvMastService.insert(basAgvMast);
+
wrkMast.setTakeNone("2");
wrkMastMapper.updateById(wrkMast);
} else {
@@ -4956,7 +4962,6 @@
if (staProtocol.isAutoing()){
AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
-
//浠诲姟涓嬪彂
ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
if (result.getCode()==200){
@@ -5033,15 +5038,30 @@
(basAgvMast.getSourceStaNo().equals(2033))){
AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
-
- //浠诲姟涓嬪彂
- ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
- if (result.getCode()==200){
- basAgvMast.setStatus(1);
- basAgvMastService.updateById(basAgvMast);
+ AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
+ WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
+ agvBindCtnrAndBinParam.setCtnrCode(wrkMast.getBarcode());
+ ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV瀹瑰櫒缁戝畾瑙g粦", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvBindCtnrAndBinParam);
+ if (resultBind.getCode()==200){
+ //浠诲姟涓嬪彂
+ ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+ if (result.getCode()==200){
+ basAgvMast.setStatus(1);
+ basAgvMastService.updateById(basAgvMast);
+ } else {
+ agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV浠诲姟涓嬪彂澶辫触", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+ }
} else {
- agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV浠诲姟涓嬪彂澶辫触", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+ agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV瀹瑰櫒缁戝畾瑙g粦", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
}
+// //浠诲姟涓嬪彂
+// ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+// if (result.getCode()==200){
+// basAgvMast.setStatus(1);
+// basAgvMastService.updateById(basAgvMast);
+// } else {
+// agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV浠诲姟涓嬪彂澶辫触", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+// }
}
} catch (Exception e){
log.error("浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"====銆婣GV浠诲姟涓嬪彂澶辫触"+e.getMessage());
@@ -5082,7 +5102,21 @@
if (!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())){
AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
-
+// AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
+//
+// ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV瀹瑰櫒缁戝畾瑙g粦", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvBindCtnrAndBinParam);
+// if (resultBind.getCode()==200){
+// //浠诲姟涓嬪彂
+// ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+// if (result.getCode()==200){
+// basAgvMast.setStatus(1);
+// basAgvMastService.updateById(basAgvMast);
+// } else {
+// agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV浠诲姟涓嬪彂澶辫触", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+// }
+// } else {
+// agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV瀹瑰櫒缁戝畾瑙g粦", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
+// }
//浠诲姟涓嬪彂
ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
if (result.getCode()==200){
@@ -5101,6 +5135,7 @@
}
}
+
public void agvTaskAssignmentCallApiLogSave(BasAgvMast basAgvMast ,String tableName, String response, Boolean bool) {
ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>()
.eq("namespace", "Agv浠诲姟涓嬪彂")
diff --git a/src/main/java/com/zy/common/constant/AgvConstant.java b/src/main/java/com/zy/common/constant/AgvConstant.java
index 5ac7c5f..9e7d66c 100644
--- a/src/main/java/com/zy/common/constant/AgvConstant.java
+++ b/src/main/java/com/zy/common/constant/AgvConstant.java
@@ -9,6 +9,7 @@
public static final String AGV_URL = "http://10.10.10.200:8181";
public static final String AGV_ADAPTOR = "rcms/services/rest/hikRpcService/genAgvSchedulingTask";//鍒涘缓璁㈠崟
+ public static final String AGV_CTNRANDBING = "rcms/services/rest/hikRpcService/bindCtnrAndBin";//瀹瑰櫒缁戝畾
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index d741421..1d8e812 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -174,7 +174,7 @@
mainService.agvTaskCreateFull();//浠诲姟鐢熸垚 鍑哄簱鍙�==銆婣GV搴撲綅
mainService.agvTaskCreateEmpty();//浠诲姟鐢熸垚 鍑哄簱鍙�==銆婣GV搴撲綅
mainService.agvTaskCreateR();//浠诲姟鐢熸垚 AGV搴撲綅==銆嬪叆搴撳彛
- mainService.agvTaskCreateException();//浠诲姟鐢熸垚 鍑哄簱鍙�==銆嬪叆搴撳彛
+// mainService.agvTaskCreateException();//浠诲姟鐢熸垚 鍑哄簱鍙�==銆嬪叆搴撳彛
} catch (Exception e) {
e.printStackTrace();
--
Gitblit v1.9.1