From b461974ee651e037608e0b090360fc5ac50a991a Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 13 六月 2024 16:47:06 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 71 ++++++++++++++++++++++++++---------
1 files changed, 52 insertions(+), 19 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index e3860e7..8f68095 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -9,7 +9,6 @@
import com.zy.asrs.common.utils.HttpHandler;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SnowflakeIdWorker;
-import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wcs.core.domain.dto.MatDto;
import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
import com.zy.asrs.wcs.core.domain.dto.StaDto;
@@ -18,6 +17,7 @@
import com.zy.asrs.wcs.core.model.MapNode;
import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
import com.zy.asrs.wcs.core.model.enums.MotionStsType;
+import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
import com.zy.asrs.wcs.core.model.enums.TaskStsType;
import com.zy.asrs.wcs.core.service.*;
import com.zy.asrs.wcs.core.utils.RedisUtil;
@@ -81,6 +81,8 @@
private BasConveyorService basConveyorService;
@Autowired
private BasConveyorStaService basConveyorStaService;
+ @Autowired
+ private BasConveyorPathService basConveyorPathService;
@Autowired
private BasLedService basLedService;
@@ -180,7 +182,7 @@
//鑾峰彇鍏ュ簱浠诲姟绫诲瀷
TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
- .eq(TaskCtg::getFlag, "IN")
+ .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN))
.eq(TaskCtg::getStatus, 1));
// 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -219,10 +221,19 @@
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
- devpThread.writeWorkSta(staProtocol.getSiteId(), dto.getWorkNo().shortValue(), dto.getStaNo().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- } else if (code == 500) {
+ //鑾峰彇杈撻�佽矾寰�
+ BasConveyorPath conveyorPath = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>()
+ .eq(BasConveyorPath::getTypeNo, TaskCtgType.IN.val())
+ .eq(BasConveyorPath::getDeviceId, devp.getId())
+ .eq(BasConveyorPath::getStnNo, staProtocol.getSiteId()));
+ if (conveyorPath == null) {
+ News.error("杈撻�佽矾寰勪笉瀛樺湪");
+ }else {
+ devpThread.writeWorkSta(staProtocol.getSiteId(), dto.getWorkNo().shortValue(), conveyorPath.getDeviceStn().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ }
+ }else {
if (ledThread != null) {
String errorMsg = jsonObject.getString("msg");
if (!Cools.isEmpty(errorMsg)) {
@@ -231,18 +242,6 @@
}
}
News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v2", JSON.toJSONString(param), response);
- } else if (code == 700) {
-// staProtocol.setWorkNo((short) 32002);
-// staProtocol.setRollback102(1);//102绔欏洖閫�淇″彿
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol));
-
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒";
- ledThread.error(errorMsg);
- ledThread.setLedMk(false);
- }
}
} catch (Exception e) {
e.printStackTrace();
@@ -422,6 +421,23 @@
// 瑙f瀽鍏ュ簱宸ヤ綔妗�
public synchronized void analyzeInBoundTask() {
for (Task task : taskService.selectWaitAnalyzeInBoundTask()) {
+ if (Cools.isEmpty(task.getShuttleNo())) {
+ //鍒嗛厤灏忚溅
+ //鎼滅储绌洪棽杞�
+ ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
+ if (shuttleThread == null) {
+ News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+ continue;
+ }
+
+ task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+ }
+ continue;
+ }
+
// generate motion list
List<Motion> motionList = analyzeService.generateMotion(task);
if (motionList.isEmpty()) {
@@ -516,6 +532,23 @@
// 瑙f瀽灏忚溅绉诲姩宸ヤ綔妗�
public synchronized void analyzeMoveTask() {
for (Task task : taskService.selectWaitAnalyzeMoveTask()) {
+ if (Cools.isEmpty(task.getShuttleNo())) {
+ //鍒嗛厤灏忚溅
+ //鎼滅储绌洪棽杞�
+ ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
+ if (shuttleThread == null) {
+ News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+ continue;
+ }
+
+ task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+ }
+ continue;
+ }
+
// generate motion list
List<Motion> motionList = analyzeService.generateMotion(task);
if (motionList.isEmpty()) {
@@ -546,7 +579,7 @@
//鑾峰彇鍏呯數浠诲姟绫诲瀷
TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
- .eq(TaskCtg::getFlag, "CHARGE")
+ .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.CHARGE))
.eq(TaskCtg::getStatus, 1));
if (taskCtg == null) {
return;
@@ -690,7 +723,7 @@
//鑾峰彇杩佺Щ浠诲姟绫诲瀷
TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
- .eq(TaskCtg::getFlag, "MOVE")
+ .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE))
.eq(TaskCtg::getStatus, 1));
if (taskCtg == null) {
return;
--
Gitblit v1.9.1