From f9ccc882fc1b1296f0c843a888a5962b45df236d Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 09 一月 2026 12:25:35 +0800
Subject: [PATCH] #1
---
src/main/java/com/zy/core/plugin/FakeProcess.java | 154 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 101 insertions(+), 53 deletions(-)
diff --git a/src/main/java/com/zy/core/plugin/FakeProcess.java b/src/main/java/com/zy/core/plugin/FakeProcess.java
index f202acc..5779d9d 100644
--- a/src/main/java/com/zy/core/plugin/FakeProcess.java
+++ b/src/main/java/com/zy/core/plugin/FakeProcess.java
@@ -8,6 +8,7 @@
import com.zy.asrs.domain.param.CreateOutTaskParam;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
+import com.zy.common.entity.FindCrnNoResult;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.RedisUtil;
@@ -20,11 +21,15 @@
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.StationCommand;
import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.DualCrnProtocol;
import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.plugin.api.MainProcessPluginApi;
import com.zy.core.properties.SystemProperties;
import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.DualCrnThread;
import com.zy.core.thread.StationThread;
import com.zy.core.utils.CrnOperateProcessUtils;
+import com.zy.core.utils.DualCrnOperateProcessUtils;
import com.zy.core.utils.StationOperateProcessUtils;
import com.zy.core.utils.WmsOperateUtils;
import com.zy.system.entity.Config;
@@ -61,6 +66,8 @@
@Autowired
private BasCrnpService basCrnpService;
@Autowired
+ private BasDualCrnpService basDualCrnpService;
+ @Autowired
private RedisUtil redisUtil;
@Autowired
private CrnOperateProcessUtils crnOperateUtils;
@@ -68,6 +75,8 @@
private StationOperateProcessUtils stationOperateProcessUtils;
@Autowired
private WmsOperateUtils wmsOperateUtils;
+ @Autowired
+ private DualCrnOperateProcessUtils dualCrnOperateProcessUtils;
@Override
public void run() {
@@ -84,6 +93,11 @@
stationOperateProcessUtils.stationOutExecute();
//妫�娴嬭緭閫佺珯鐐瑰嚭搴撲换鍔℃墽琛屽畬鎴�
stationOperateProcessUtils.stationOutExecuteFinish();
+
+ //鎵ц鍙屽伐浣嶅爢鍨涙満浠诲姟
+ dualCrnOperateProcessUtils.dualCrnIoExecute();
+ //鍙屽伐浣嶅爢鍨涙満浠诲姟鎵ц瀹屾垚
+ dualCrnOperateProcessUtils.dualCrnIoExecuteFinish();
}
public void asyncRun() {
@@ -293,12 +307,12 @@
int nextInt = new Random().nextInt(locMastList.size());
LocMast locMast = locMastList.get(nextInt);
- Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
- if (crnNo == null) {
+ FindCrnNoResult findCrnNoResult = commonService.findCrnNoByLocNo(locMast.getLocNo());
+ if (findCrnNoResult == null) {
continue;
}
- Integer targetStationId = commonService.findInStationId(crnNo, stationId);
+ Integer targetStationId = commonService.findInStationId(findCrnNoResult, stationId);
if (targetStationId == null) {
continue;
}
@@ -374,11 +388,6 @@
}
LocMast locMast = locMastList.get(0);
-
- Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
- if (crnNo == null) {
- continue;
- }
CreateOutTaskParam taskParam = new CreateOutTaskParam();
taskParam.setTaskNo(String.valueOf(commonService.getWorkNo(WrkIoType.OUT.id)));
@@ -541,44 +550,83 @@
News.info("鍫嗗灈鏈�:{} 鍏ュ簱绔欑偣鏈缃�", basCrnp.getCrnNo());
continue;
}
+ checkInStationListCrnTake(inStationList);
+ }
- for (StationObjModel stationObjModel : inStationList) {
- Object lock = redisUtil.get(RedisKeyType.CHECK_IN_STATION_STAY_TIME_OUT_LIMIT.key + stationObjModel.getStationId());
- if(lock != null){
- continue;
- }
+ List<BasDualCrnp> basDualCrnps = basDualCrnpService.selectList(new EntityWrapper<>());
+ for (BasDualCrnp basDualCrnp : basDualCrnps) {
+ List<StationObjModel> inStationList = basDualCrnp.getInStationList$();
+ if(inStationList.isEmpty()){
+ News.info("鍙屽伐浣嶅爢鍨涙満:{} 鍏ュ簱绔欑偣鏈缃�", basDualCrnp.getCrnNo());
+ continue;
+ }
+ checkInStationListCrnTake(inStationList);
+ }
+ }
- StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
- if(stationThread == null){
- continue;
- }
+ private void checkInStationListCrnTake(List<StationObjModel> inStationList) {
+ for (StationObjModel stationObjModel : inStationList) {
+ Object lock = redisUtil.get(RedisKeyType.CHECK_IN_STATION_STAY_TIME_OUT_LIMIT.key + stationObjModel.getStationId());
+ if(lock != null){
+ continue;
+ }
- StationCommand command = stationThread.getMoveCommand(0, stationObjModel.getStationId(), 0, 0);
- if(command == null){
- continue;
- }
+ StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
+ if(stationThread == null){
+ continue;
+ }
- Map<Integer, StationProtocol> statusMap = stationThread.getStatusMap();
- StationProtocol stationProtocol = statusMap.get(stationObjModel.getStationId());
- if (stationProtocol == null) {
- continue;
- }
+ StationCommand command = stationThread.getMoveCommand(0, stationObjModel.getStationId(), 0, 0);
+ if(command == null){
+ continue;
+ }
- if(stationProtocol.getTaskNo() > 0) {
- WrkMast wrkMast = wrkMastService.selectByWorkNo(stationProtocol.getTaskNo());
- if (wrkMast == null) {
- MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
- redisUtil.set(RedisKeyType.CHECK_IN_STATION_STAY_TIME_OUT_LIMIT.key + stationObjModel.getStationId(), "lock",10);
- News.info("杈撻�佺珯鐐归噸缃懡浠や笅鍙戞垚鍔�(task_over)锛岀珯鐐瑰彿={}锛屽懡浠ゆ暟鎹�={}", stationObjModel.getStationId(), JSON.toJSONString(command));
- }else {
- if (wrkMast.getWrkSts() != WrkStsType.NEW_INBOUND.sts && wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts) {
- Integer crnNo = wrkMast.getCrnNo();
+ Map<Integer, StationProtocol> statusMap = stationThread.getStatusMap();
+ StationProtocol stationProtocol = statusMap.get(stationObjModel.getStationId());
+ if (stationProtocol == null) {
+ continue;
+ }
+
+ if(stationProtocol.getTaskNo() > 0) {
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(stationProtocol.getTaskNo());
+ if (wrkMast == null) {
+ MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
+ redisUtil.set(RedisKeyType.CHECK_IN_STATION_STAY_TIME_OUT_LIMIT.key + stationObjModel.getStationId(), "lock",10);
+ News.info("杈撻�佺珯鐐归噸缃懡浠や笅鍙戞垚鍔�(task_over)锛岀珯鐐瑰彿={}锛屽懡浠ゆ暟鎹�={}", stationObjModel.getStationId(), JSON.toJSONString(command));
+ }else {
+ if (wrkMast.getWrkSts() != WrkStsType.NEW_INBOUND.sts && wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts) {
+ Integer crnNo = wrkMast.getCrnNo();
+ if (crnNo != null) {
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
if (crnThread == null) {
continue;
}
CrnProtocol crnProtocol = crnThread.getStatus();
if (!crnProtocol.getStatusType().equals(CrnStatusType.PUT_MOVING) && !crnProtocol.getStatusType().equals(CrnStatusType.PUTTING)) {
+ continue;
+ }
+
+ MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
+ redisUtil.set(RedisKeyType.CHECK_IN_STATION_STAY_TIME_OUT_LIMIT.key + stationObjModel.getStationId(), "lock",10);
+ News.info("杈撻�佺珯鐐归噸缃懡浠や笅鍙戞垚鍔�(crn_fetch)锛岀珯鐐瑰彿={}锛屽懡浠ゆ暟鎹�={}", stationObjModel.getStationId(), JSON.toJSONString(command));
+ }else {
+ Integer dualCrnNo = wrkMast.getDualCrnNo();
+ DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, dualCrnNo);
+ if (dualCrnThread == null) {
+ continue;
+ }
+ DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
+
+ boolean reset = false;
+ if (dualCrnProtocol.getTaskNo() > 0 && dualCrnProtocol.getLoaded() == 1) {
+ reset = true;
+ }
+
+ if (dualCrnProtocol.getTaskNoTwo() > 0 && dualCrnProtocol.getLoadedTwo() == 1) {
+ reset = true;
+ }
+
+ if (!reset) {
continue;
}
@@ -629,25 +677,25 @@
updateWrkSts = WrkStsType.OUTBOUND_RUN_COMPLETE.sts;
//鐢熸垚浠跨湡绔欑偣鏁版嵁
- List<StationObjModel> outStationList = basCrnp.getOutStationList$();
- if(outStationList.isEmpty()){
- News.info("鍫嗗灈鏈�:{} 鍑哄簱绔欑偣鏈缃�", basCrnp.getCrnNo());
- continue;
- }
-
- for (StationObjModel stationObjModel : outStationList) {
- if (!stationObjModel.getStationId().equals(wrkMast.getSourceStaNo())) {
- continue;
- }
-
- StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
- if (stationThread == null) {
- continue;
- }
+// List<StationObjModel> outStationList = basCrnp.getOutStationList$();
+// if(outStationList.isEmpty()){
+// News.info("鍫嗗灈鏈�:{} 鍑哄簱绔欑偣鏈缃�", basCrnp.getCrnNo());
+// continue;
+// }
+//
+// for (StationObjModel stationObjModel : outStationList) {
+// if (!stationObjModel.getStationId().equals(wrkMast.getSourceStaNo())) {
+// continue;
+// }
+//
+// StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
+// if (stationThread == null) {
+// continue;
+// }
//鐢熸垚浠跨湡绔欑偣鏁版嵁
- StationCommand command = stationThread.getMoveCommand(9998, wrkMast.getSourceStaNo(), 0, 0);
- MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
- }
+// StationCommand command = stationThread.getMoveCommand(9998, wrkMast.getSourceStaNo(), 0, 0);
+// MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
+// }
}else if(wrkMast.getWrkSts() == WrkStsType.LOC_MOVE_RUN.sts){
updateWrkSts = WrkStsType.COMPLETE_LOC_MOVE.sts;
}else{
--
Gitblit v1.9.1