From a403410276a4e7744d5808004eae6dc3494aea4f Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 24 十月 2025 14:30:13 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 128 +++++++++++++++++++++++++++++++++++++++++-
src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java | 4 +
src/main/java/com/zy/core/MainProcess.java | 5 +
3 files changed, 133 insertions(+), 4 deletions(-)
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 f6ff49a..4ba63d1 100644
--- a/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
@@ -1,5 +1,6 @@
package com.zy.asrs.entity.param;
+import com.zy.asrs.entity.BasAgvMast;
import lombok.Data;
/*
@@ -19,4 +20,7 @@
public AgvTaskAssignmentParam(int id) {
this.id = String.valueOf(id);
}
+ public AgvTaskAssignmentParam(BasAgvMast basAgvMast) {
+
+ }
}
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 aaf30a6..2fa2bdb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4614,13 +4614,86 @@
}
/*
- * agv浠诲姟涓嬪彂
+ * agv浠诲姟涓嬪彂:AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣
* */
- public synchronized void agvTaskAssignment() {
+ public synchronized void agvTaskAssignment0() {
try{
List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
for (BasAgvMast basAgvMast : basAgvMastList) {
- if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=3){//3==銆嬪嚭搴�==>杈撻�佺嚎绔欑偣==銆婣GV搴撲綅
+ if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=0){//0==銆婣GV搴撲綅==銆嬭緭閫佺嚎绔欑偣
+ continue;
+ }
+ try{
+ // 鑾峰彇绔欑偣淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getDevpId());
+ StaProtocol staProtocol = devpThread.getStation().get(basAgvMast.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ if (staProtocol.isAutoing()){
+
+ AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
+
+ //浠诲姟涓嬪彂
+ ReturnT<String> result = new PostMesDataUtils().postMesData("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());
+ }
+ }
+ }catch (Exception e){
+ log.error("AGV浠诲姟涓嬪彂澶辫触"+e.getMessage());
+ }
+ }
+
+ /*
+ * agv浠诲姟涓嬪彂:AGV搴撲綅==銆婣GV搴撲綅
+ * */
+ public synchronized void agvTaskAssignment1() {
+ try{
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
+ for (BasAgvMast basAgvMast : basAgvMastList) {
+ if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=1){//1==銆婣GV搴撲綅==銆婣GV搴撲綅
+ continue;
+ }
+ try{
+ AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam();
+
+ //浠诲姟涓嬪彂
+ ReturnT<String> result = new PostMesDataUtils().postMesData("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());
+ }
+ }
+ }catch (Exception e){
+ log.error("AGV浠诲姟涓嬪彂澶辫触"+e.getMessage());
+ }
+ }
+
+ /*
+ * agv浠诲姟涓嬪彂:杈撻�佺嚎绔欑偣==銆婣GV搴撲綅
+ * */
+ public synchronized void agvTaskAssignment2() {
+ try{
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
+ for (BasAgvMast basAgvMast : basAgvMastList) {
+ if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=2){//2==銆嬭緭閫佺嚎绔欑偣==銆婣GV搴撲綅
continue;
}
try{
@@ -4655,6 +4728,55 @@
}
}
+ /*
+ * agv浠诲姟涓嬪彂:杈撻�佺嚎绔欑偣==銆嬭緭閫佺嚎绔欑偣
+ * */
+ public synchronized void agvTaskAssignment3() {
+ try{
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
+ for (BasAgvMast basAgvMast : basAgvMastList) {
+ if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=3){//3==銆嬭緭閫佺嚎绔欑偣==銆嬭緭閫佺嚎绔欑偣
+ continue;
+ }
+ try{
+ // 鑾峰彇绔欑偣淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getDevpId());
+ StaProtocol staProtocol = devpThread.getStation().get(basAgvMast.getSourceStaNo());
+ if (staProtocol == null || !staProtocol.isLoading()) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鑾峰彇绔欑偣淇℃伅
+ StaProtocol staProtocolEnd = devpThread.getStation().get(basAgvMast.getStaNo());
+ if (staProtocolEnd == null || !staProtocolEnd.isAutoing()) {
+ continue;
+ } else {
+ staProtocolEnd = staProtocolEnd.clone();
+ }
+
+ if (!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())){
+
+ AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam();
+
+ //浠诲姟涓嬪彂
+ ReturnT<String> result = new PostMesDataUtils().postMesData("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());
+ }
+ }
+ }catch (Exception e){
+ log.error("AGV浠诲姟涓嬪彂澶辫触"+e.getMessage());
+ }
+ }
+
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/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index f7ef9b8..02eb215 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -193,7 +193,10 @@
continue;
}
//agv浠诲姟涓嬪彂
- mainService.agvTaskAssignment();//0===銆�1
+ mainService.agvTaskAssignment0();//0===銆�1 AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣 0
+ mainService.agvTaskAssignment1();//0===銆�1 AGV搴撲綅==銆婣GV搴撲綅 1
+ mainService.agvTaskAssignment2();//0===銆�1 杈撻�佺嚎绔欑偣==銆婣GV搴撲綅 2
+ mainService.agvTaskAssignment3();//0===銆�1 杈撻�佺嚎绔欑偣==銆嬭緭閫佺嚎绔欑偣 3
} catch (Exception e) {
e.printStackTrace();
--
Gitblit v1.9.1