zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/StaProtocol.java
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/ConveyorBackgroundService.java
@@ -31,7 +31,6 @@ private ScheduledExecutorService executorService; private final AtomicBoolean running = new AtomicBoolean(false); private long lastDbUpdateTime = 0; @@ -44,7 +43,7 @@ executorService = Executors.newSingleThreadScheduledExecutor(r -> { Thread thread = new Thread(r); thread.setName("cv-background-thread"); thread.setDaemon(true); //thread.setDaemon(true); return thread; }); @@ -53,13 +52,12 @@ properties.getInitialDelay(), properties.getInterval(), TimeUnit.MILLISECONDS); running.set(true); News.info("输送线后台服务线程初始化完成"); } private void processConveyorTasks() { // 系统运行状态判断 if (!SystemProperties.WCS_RUNNING_STATUS.get() || !running.get()) { if (!SystemProperties.WCS_RUNNING_STATUS.get()) { News.info("系统未运行或服务已停止,跳过输送线任务处理"); return; } @@ -68,19 +66,21 @@ News.info("执行输送线操作"); lastDbUpdateTime = currentTime; } try { // 执行配置的操作序列 for (CtuOperationConfig config : properties.getOperations()) { try { operationExecutor.execute(config); } } catch (Exception e) { News.error("输送线任务处理异常,{}", e.getMessage()); News.error("输送线操作执行最终失败, type={}, error={}", config.getType(), e.getMessage()); // 可选:发送告警、暂停调度等 } } } @PreDestroy public void shutDown() { running.set(false); if (executorService != null && !executorService.isShutdown()) { News.info("正在关闭输送线后台服务线程..."); executorService.shutdown(); zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/ConveyorOperationExecutor.java
@@ -32,28 +32,10 @@ News.warn("未找到操作处理器: {}", config.getType()); return; } int retryCount = 0; while (retryCount < config.getMaxRetries()) { try { handler.execute(config); return; } catch (Exception e) { retryCount++; if (retryCount >= config.getMaxRetries()) { News.error("操作执行失败,已达到最大重试次数: {}", config.getType(), e); } else { News.warn("操作执行失败,正在重试({}/{})", retryCount, config.getMaxRetries(), e); try { Thread.sleep(config.getRetryDelay()); } catch (InterruptedException ie) { Thread.currentThread().interrupt(); News.error("重试休眠被中断", ie); return; } } } News.error("操作执行失败,等待下一周期重试: {}", config.getType(), e); } } } zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java
@@ -6,7 +6,6 @@ import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.conveyor.controller.vo.OpenBusSubmitParam; import com.zy.acs.conveyor.controller.vo.TaskDto; import com.zy.acs.conveyor.core.constant.RedisConveyorConstant; import com.zy.acs.conveyor.core.enums.ConveyorStateType; import com.zy.acs.conveyor.core.model.StaProtocol; import com.zy.acs.conveyor.core.operation.OperationHandler; zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/properties/CtuOperationConfig.java
@@ -10,7 +10,5 @@ public class CtuOperationConfig { private ConveyorStateType type; private String mark; private int maxRetries = 3; private long retryDelay = 500; private Map<String, Object> params = new HashMap<>(); } zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
@@ -4,7 +4,7 @@ import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.zy.acs.common.utils.News; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.conveyor.core.constant.*; import com.zy.acs.conveyor.core.constant.RedisConveyorConstant; import com.zy.acs.conveyor.core.enums.DeviceField; import com.zy.acs.conveyor.core.enums.PlcAlarmDefinition; import com.zy.acs.conveyor.core.enums.SafeSignalField; zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/service/impl/WmsMainServiceImpl.java
zy-asc-conveyor/src/main/resources/application.yml
@@ -43,24 +43,14 @@ operations: - type: OUTBOUND mark: 出库流程 max-retries: 3 retry-delay: 800 - type: STARTUP mark: 启动入库流程 max-retries: 2 retry-delay: 800 - type: APPLYLOC mark: 申请入库流程 max-retries: 2 retry-delay: 2000 - type: CLEARSIGNAL mark: 清理信号流程 max-retries: 2 retry-delay: 800 - type: SENDTASK mark: 发送任务RCS流程 max-retries: 2 retry-delay: 800 mybatis-plus: mapper-locations: classpath:mapper/*.xml