From 763863395f8c2174cd754ba04d3561d32e29d066 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 07 四月 2024 08:17:50 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java | 90 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 0 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
index d8f7718..1a3efdc 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
@@ -1,6 +1,21 @@
package com.zy.asrs.wcs.core.utils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wcs.core.entity.Task;
+import com.zy.asrs.wcs.core.entity.TaskSerialNo;
+import com.zy.asrs.wcs.core.service.TaskSerialNoService;
+import com.zy.asrs.wcs.core.service.TaskService;
+import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
+import com.zy.asrs.wcs.rcs.entity.Device;
+import com.zy.asrs.wcs.rcs.entity.DeviceType;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
+import com.zy.asrs.wcs.rcs.service.DeviceService;
+import com.zy.asrs.wcs.rcs.service.DeviceTypeService;
+import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
import java.util.ArrayList;
import java.util.List;
@@ -94,4 +109,79 @@
return list;
}
+ public static boolean hasShuttleInLoc(String locNo, Long deviceId) {
+ DeviceTypeService deviceTypeService = SpringUtils.getBean(DeviceTypeService.class);
+ DeviceService deviceService = SpringUtils.getBean(DeviceService.class);
+
+ DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
+ .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
+ .eq(DeviceType::getStatus, 1));
+ if (deviceType == null) {
+ return false;
+ }
+
+ List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
+ .eq(Device::getDeviceType, deviceType.getId())
+ .eq(Device::getStatus, 1));
+
+ for (Device device : list) {
+ if (deviceId.equals(device.getId())) {
+ continue;
+ }
+
+ //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
+ if (shuttleThread == null) {
+ continue;
+ }
+
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
+ if (shuttleProtocol.getCurrentLocNo().equals(locNo)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * 鐢熸垚宸ヤ綔鍙�
+ * @return taskNo(宸ヤ綔鍙�)
+ */
+ public static int getTaskNo(String flag) {
+ TaskSerialNoService taskSerialNoService = SpringUtils.getBean(TaskSerialNoService.class);
+ TaskService taskService = SpringUtils.getBean(TaskService.class);
+ TaskSerialNo taskSerialNo = taskSerialNoService.getOne(new LambdaQueryWrapper<TaskSerialNo>()
+ .eq(TaskSerialNo::getFlag, flag)
+ .eq(TaskSerialNo::getStatus, 1));
+ if (Cools.isEmpty(taskSerialNo)) {
+ throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+ }
+
+ int taskNo = taskSerialNo.getTaskNo();
+ int sNo = taskSerialNo.getStartNo();
+ int eNo = taskSerialNo.getTargetNo();
+ taskNo = taskNo >= eNo ? sNo : taskNo + 1;
+ while (true) {
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+ .eq(Task::getTaskNo, taskNo));
+ if (null != task) {
+ taskNo = taskNo >= eNo ? sNo : taskNo + 1;
+ } else {
+ break;
+ }
+ }
+ // 淇敼搴忓彿璁板綍
+ if (taskNo > 0){
+ taskSerialNo.setTaskNo(taskNo);
+ taskSerialNoService.updateById(taskSerialNo);
+ return taskNo;
+ }
+ throw new CoolException("宸ヤ綔鍙风敓鎴愬け璐�");
+ }
+
}
--
Gitblit v1.9.1