From 770a7701c1473993c0e8148377c4f44dfec31e20 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 28 十一月 2023 16:34:19 +0800
Subject: [PATCH] #接口+高度位变更为检测小车+扫码
---
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 5 +
src/main/java/com/zy/asrs/controller/SiteController.java | 1
src/main/java/com/zy/asrs/entity/param/TaskOverParam.java | 10 ++
src/main/java/com/zy/asrs/utils/Utils.java | 6
src/main/java/com/zy/asrs/controller/OpenController.java | 18 ++++
src/main/resources/application-prod.yml | 58 +++++++++-----
src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java | 1
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 102 ++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/OpenService.java | 3
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 4
src/main/java/com/zy/core/ServerBootstrap.java | 22 ++--
11 files changed, 189 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index ed3afdb..3451eaf 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -8,6 +8,7 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.taskCreateParam;
import com.zy.asrs.service.*;
@@ -50,6 +51,23 @@
public static final ArrayList<String> APP_KEY_LIST = new ArrayList<String>() {{
add("ea1f0459efc02a79f046f982767939ae");
}};
+ @PostMapping("/toAgvTaskOver")
+ public R getAgvTaskOver(@RequestHeader String appkey,
+ @RequestBody TaskOverParam param,
+ HttpServletRequest request){
+ auth(appkey, param, request);
+ if (Cools.isEmpty(param)) {
+ return R.parse(BaseRes.PARAM);
+ }
+ if (Cools.isEmpty(param.getWharfCode())){
+ return R.error("鐮佸ご[wharfCode]涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(param.getStatus())){
+ return R.error("瀹屾垚鏍囪[status]涓嶈兘涓虹┖");
+ }
+ openService.getAgvTaskOver(param);
+ return R.ok();
+ }
//鍒涘缓浠诲姟
@PostMapping("/taskCreate")
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 90caa8f..d3fd0ff 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -186,6 +186,7 @@
vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿
vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔�
vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�"); //楂樹綆搴撲綅
+ vo.setCar(staProtocol.isCar() ? "鏈�": "鏃�");
return R.ok().add(vo);
}
}
diff --git a/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java b/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
index 42b7bc9..6007fce 100644
--- a/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -37,4 +37,5 @@
//楂樹綆搴撲綅
private String locType1 = "-";
+ private String car = "-";
}
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java b/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
new file mode 100644
index 0000000..17bb554
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
@@ -0,0 +1,10 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class TaskOverParam {
+ private String wharfCode;
+ private Boolean status;
+
+}
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 345157b..0af74f2 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,6 +1,7 @@
package com.zy.asrs.service;
import com.core.common.R;
+import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.taskCreateParam;
@@ -12,4 +13,6 @@
void taskCreate(taskCreateParam param);
R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException;
+
+ void getAgvTaskOver(TaskOverParam param);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 1819c4a..2741292 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -8,11 +8,20 @@
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.ToWmsDTO;
+import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.taskCreateParam;
import com.zy.asrs.service.OpenService;
import com.zy.asrs.service.TaskWrkService;
import com.zy.common.utils.HttpHandler;
+import com.zy.core.DevpThread;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.properties.SlaveProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -25,9 +34,14 @@
@Autowired
private TaskWrkService taskWrkService;
+ @Autowired
+ private SlaveProperties slaveProperties;
@Value("${wms.url}")
private String wmsUrl;
+ public ArrayList<String> wharfCode1 = new ArrayList<String>(){{
+ add("J-1101"); add("J-1103"); add("J-1105"); add("J-1107"); add("J-1109"); add("J-1111");
+ }};
@Override
public void taskCreate(taskCreateParam param) {
@@ -74,9 +88,8 @@
ToWmsDTO toWmsDTO = new ToWmsDTO();
Map<String, Object> map = new HashMap<>();
map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
- List<Integer> list = new ArrayList<>();
- list.add(1);
- list.add(4);
+ List<Integer> list = getInEnableRoadway();
+
//TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
toWmsDTO.setWarehouseId("1688469798893297665");
toWmsDTO.setContainerCode(param.getContainerCode());
@@ -105,4 +118,87 @@
}
}
+
+ @Override
+ public void getAgvTaskOver(TaskOverParam param) {
+ Map<String,Integer> map = new HashMap<>();
+ map.put("J-1101",102);map.put("J-1102",101);
+ map.put("J-1103",106);map.put("J-1104",105);
+ map.put("J-1105",110);map.put("J-1106",109);
+ map.put("J-1107",114);map.put("J-1108",113);
+ map.put("J-1109",118);map.put("J-1110",117);
+ map.put("J-1111",122);map.put("J-1112",121);
+
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(map.get(param.getWharfCode()));
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ Short workNo = staProtocol.getWorkNo();
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ if (inSta.getBackSta().equals(map.get(param.getWharfCode()))){
+ if (wharfCode1.contains(param.getWharfCode())){
+ if (!staProtocol.isLoading() && !staProtocol.isCar()){
+ //AGV鍑哄簱瀹屾垚浠ュ悗
+ }
+
+ }else {
+ if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0){
+ //AGV鍏ュ簱瀹屾垚浠ュ悗
+ staProtocol.setWorkNo((short) 9998);
+ staProtocol.setStaNo(inSta.getStaNo().shortValue());
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (result) {
+
+ } else {
+ throw new RuntimeException("agv杩斿洖瀹屾垚鍚庯紝鍛戒护涓嬪彂澶辫触");
+ }
+ }
+ }
+ }
+ }
+
+
+
+ }
+
+ }
+
+ public List<Integer> getInEnableRoadway(){
+ int[] roadway = null;
+ List<Integer> list = new ArrayList<>();
+ Map<Integer,Integer> map = new HashMap<>();
+ map.put(103,1);
+ map.put(107,2);
+ map.put(111,3);
+ map.put(115,4);
+ map.put(119,5);
+ map.put(123,6);
+ map.put(300,7);
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鍏ュ簱鍙�
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getBackSta());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ Short workNo = staProtocol.getWorkNo();
+ if (workNo == 0 && !staProtocol.isLoading()){
+ list.add(map.get(inSta.getStaNo()));
+ }
+ }
+ }
+ //roadway = list.stream().mapToInt(Integer::intValue).toArray();
+ return list;
+ }
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 367f9ca..4342fb5 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -23,14 +23,14 @@
int[] wcsRow = getWcsRow(split[0]);
int[] ints = null;
if (split[3].equals("01")){
- ints = Arrays.copyOfRange(wcsRow, 0, wcsRow.length / 2);
+ ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2);
if (split[4].equals("01")){
ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1);
}else {
ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2);
}
}else {
- ints = Arrays.copyOfRange(wcsRow, wcsRow.length / 2,wcsRow.length-1 );
+ ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2,wcsRow.length-1 );
if (split[4].equals("01")){
ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2);
@@ -284,7 +284,7 @@
// slaveProperties.setGroupCount(4);
// Integer deepRow = getDeepRow(slaveProperties, 6);
// System.out.println(deepRow);
- String wcsLocNo = getWcsLocNo("03-52-01-01-02");
+ String wcsLocNo = getWcsLocNo("06-52-01-01-01");
System.out.println(wcsLocNo);
}
}
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 4876375..a97d9a0 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -55,10 +55,10 @@
for (Slave devp : slaveProperties.getDevp()) {
MessageQueue.init(SlaveType.Devp, devp);
}
-// // 鍒濆鍖栨潯鐮佹壂鎻忎华mq
-// for (Slave barcode : slaveProperties.getBarcode()) {
-// MessageQueue.init(SlaveType.Barcode, barcode);
-// }
+ // 鍒濆鍖栨潯鐮佹壂鎻忎华mq
+ for (Slave barcode : slaveProperties.getBarcode()) {
+ MessageQueue.init(SlaveType.Barcode, barcode);
+ }
// // 鍒濆鍖朙ed鐏痬q
// for (Slave led : slaveProperties.getLed()) {
// MessageQueue.init(SlaveType.Led, led);
@@ -88,13 +88,13 @@
new Thread((Runnable) devpThread).start();
SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread);
}
-// // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼
-// log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
-// for (Slave barcode : slaveProperties.getBarcode()) {
-// BarcodeThread barcodeThread = new BarcodeThread(barcode);
-//// new Thread(barcodeThread).start();
-// SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
-// }
+ // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼
+ log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
+ for (Slave barcode : slaveProperties.getBarcode()) {
+ BarcodeThread barcodeThread = new BarcodeThread(barcode);
+// new Thread(barcodeThread).start();
+ SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
+ }
// // 鍒濆鍖朙ED绾跨▼
// log.info("鍒濆鍖朙ED绾跨▼...................................................");
// for (LedSlave led : slaveProperties.getLed()) {
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index f6bde14..8dbd9ce 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -42,11 +42,14 @@
private boolean fullPlt;
// 楂�
- private boolean high;
+ private boolean high = false;
// 浣�
private boolean low;
+ //agv
+ private boolean car;
+
// 閿佸畾鏍囪
private boolean pakMk = true;
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 30e8f67..7b417cf 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -223,7 +223,7 @@
staProtocol.setOutEnable(status[3]);// 鍙嚭
staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
- staProtocol.setHigh(status[6]); // 楂樺簱浣�
+ staProtocol.setCar(status[6]); // 鏄惁鏈夎溅
staProtocol.setLow(status[7]); // 浣庡簱浣�
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
@@ -239,7 +239,7 @@
OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)60);
if (result2.IsSuccess) {
for (int i = 0; i < 6; i++) {
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,8, "UTF-8");
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
barcodeThread.setBarcode(barcode);
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index c1953f2..7759046 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -233,23 +233,23 @@
scale: ${wcs-slave.scale[0].id}
staNo: 111
backSta: 110
- barcode: ${wcs-slave.barcode[0].id}
+ barcode: ${wcs-slave.barcode[2].id}
inSta[3]: #鍏ュ簱鍙�1
scale: ${wcs-slave.scale[0].id}
staNo: 115
backSta: 114
- barcode: ${wcs-slave.barcode[0].id}
+ barcode: ${wcs-slave.barcode[3].id}
inSta[4]: #鍏ュ簱鍙�2
scale: ${wcs-slave.scale[1].id}
staNo: 119
backSta: 118
- barcode: ${wcs-slave.barcode[1].id}
+ barcode: ${wcs-slave.barcode[4].id}
#slot: 0
inSta[5]: #鍏ュ簱鍙�1
scale: ${wcs-slave.scale[0].id}
staNo: 123
backSta: 122
- barcode: ${wcs-slave.barcode[0].id}
+ barcode: ${wcs-slave.barcode[5].id}
outSta[0]: #鍑哄簱鍙�1
staNo: 100
outSta[1]: #鍑哄簱鍙�2
@@ -284,21 +284,21 @@
#slot: 0
outSta[0]: #鍑哄簱鍙�1
staNo: 307
- devp[3]: #杈撻�佺嚎
- id: 4
- ip: 10.10.10.30
- rack: 0
- slot: 0
- port: 102
- emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
- staNo: 406
- inSta[0]: #鍏ュ簱鍙�1
- scale: ${wcs-slave.scale[1].id}
- staNo: 406
- barcode: ${wcs-slave.barcode[1].id}
- #slot: 0
- outSta[0]: #鍑哄簱鍙�1
- staNo: 407
+# devp[3]: #杈撻�佺嚎
+# id: 4
+# ip: 10.10.10.30
+# rack: 0
+# slot: 0
+# port: 102
+# emptyInSta[0]: #绌烘澘鍏ュ簱鍙�1
+# staNo: 406
+# inSta[0]: #鍏ュ簱鍙�1
+# scale: ${wcs-slave.scale[1].id}
+# staNo: 406
+# barcode: ${wcs-slave.barcode[1].id}
+# #slot: 0
+# outSta[0]: #鍑哄簱鍙�1
+# staNo: 407
scale[0]: #纾呯Г
port: 5005
ip: 10.10.10.201
@@ -309,9 +309,25 @@
id: 2
barcode[0]: #鏉$爜鎵弿浠�
port: 51236
- ip: 10.10.10.52
+ ip: 172.17.91.39
id: 1
barcode[1]:
port: 51236
- ip: 10.10.10.52
+ ip: 172.17.91.40
id: 2
+ barcode[2]:
+ port: 51236
+ ip: 172.17.91.41
+ id: 3
+ barcode[3]:
+ port: 51236
+ ip: 172.17.91.42
+ id: 4
+ barcode[4]:
+ port: 51236
+ ip: 172.17.91.43
+ id: 5
+ barcode[5]:
+ port: 51236
+ ip: 172.17.91.44
+ id: 6
--
Gitblit v1.9.1