From e4e76d2c4bdb815a198ec5e7a3da40ed19c48157 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期三, 03 四月 2024 08:36:40 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java | 4 +-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 65 ++++++++++++++++++++++++++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java | 2 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java | 6 +++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java | 3 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java | 5 ++
zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml | 8 ++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java | 5 ++
8 files changed, 96 insertions(+), 2 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
index e53be9c..88f8c0a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
@@ -51,8 +51,8 @@
// mainService.initRealtimeBasMap();
// // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
//// mainService.stnToCrnStnPick();
-// // 鍑哄簱 =====>>
-// mainService.generateOutboundWrkMast();
+ // 鍑哄簱 =====>>
+ mainService.generateOutboundWrkMast();
// 瑙f瀽鍏ュ簱宸ヤ綔妗�
mainService.analyzeInBoundTask();
// // 寮傚父淇℃伅璁板綍
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
index 2c11ed9..2254cd8 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
@@ -20,4 +20,6 @@
List<Task> selectWaitAnalyzeInBoundTask();
+ List<Task> selectPakOut();
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
index 338afcb..21bbcdd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wcs.core.entity.Task;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -17,4 +18,6 @@
List<Task> selectWaitAnalyzeInBoundTask();
+ List<Task> selectPakOut();
+
}
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 bda1a5f..0b8e774 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
@@ -1,5 +1,6 @@
package com.zy.asrs.wcs.core.service.impl;
+import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wcs.core.entity.Task;
import com.zy.asrs.wcs.core.kernel.AnalyzeService;
import com.zy.asrs.wcs.core.model.enums.TaskStsType;
@@ -7,6 +8,10 @@
import com.zy.asrs.wcs.rcs.News;
import com.zy.asrs.wcs.core.entity.Motion;
import com.zy.asrs.wcs.core.service.MotionService;
+import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -58,4 +63,64 @@
}
}
+ /**
+ * 鍑哄簱 ====>> 鍚屼竴鏃堕棿涓�鍙扮┛姊溅鍙兘鏈変竴涓嚭搴撲换鍔�
+ */
+ public synchronized void generateOutboundWrkMast() {
+ List<Task> tasks = taskService.selectPakOut();
+ if (tasks.isEmpty()) {
+ return;
+ }
+
+ for (Task task : tasks) {
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(task.getOriginSite()));//婧愮珯
+ StaProtocol staProtocol1 = devpThread.getStation().get(Integer.parseInt(task.getDestSite()));//鐩爣绔�
+ if (staProtocol == null || staProtocol1 == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ staProtocol1 = staProtocol1.clone();
+ }
+
+// // 鏌ヨ绔欑偣璇︾粏淇℃伅
+// BasDevp staDetl = basDevpService.selectById(outSta.getStaNo());
+// if (staDetl == null) {
+// log.error("鍑哄簱 ===>> 绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", outSta.getStaNo());
+// continue;
+// }
+ // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+
+ if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) {
+ continue;
+ }
+
+// //鍚屽簱浣嶇粍鏍¢獙
+// List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
+// List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
+// if (!outerLocMasts.isEmpty()) {
+// News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo());
+// continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟
+// }
+
+ // generate motion list
+ List<Motion> motionList = analyzeService.generateMotion(task);
+ if (Cools.isEmpty(motionList)) {
+ log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo());
+ continue;
+ }
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+
+ // 鏇存柊宸ヤ綔涓绘。
+ task.setTaskSts(TaskStsType.ANALYZE_OUTBOUND.sts); // 宸ヤ綔鐘舵��
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+ }
+
+ }
+ }
+ }
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
index c0a5e5a..4580124 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
@@ -69,4 +69,9 @@
public List<Task> selectWaitAnalyzeInBoundTask() {
return this.baseMapper.selectWaitAnalyzeInBoundTask();
}
+
+ @Override
+ public List<Task> selectPakOut() {
+ return this.baseMapper.selectPakOut();
+ }
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java
index 1599049..b3bddd0 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/DevpThread.java
@@ -1,7 +1,13 @@
package com.zy.asrs.wcs.rcs.thread;
+import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
+
+import java.util.Map;
+
public interface DevpThread extends ThreadHandler{
+ Map<Integer, StaProtocol> getStation();
+
boolean writeWorkNo(int siteId, short workNo);//鍐欏叆宸ヤ綔鍙�
boolean writeStaNo(int siteId,short staNo);//鍐欏叆鐩爣绔�
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java
index 756c10a..e465c7d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SiemensDevpThread.java
@@ -243,4 +243,9 @@
}
return false;
}
+
+ @Override
+ public Map<Integer, StaProtocol> getStation() {
+ return this.station;
+ }
}
diff --git a/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml b/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
index 0ed53c7..6e65e4a 100644
--- a/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
+++ b/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
@@ -28,4 +28,12 @@
select * from wcs_task where task_ctg = 1 and task_sts = 1
</select>
+ <select id="selectPakOut" resultType="com.zy.asrs.wcs.core.entity.Task">
+ select * from wcs_task
+ where task_sts=101
+ and (task_ctg=101 or task_ctg=110)
+ order by priority desc,start_time,task_no asc
+ </select>
+
+
</mapper>
--
Gitblit v1.9.1