From 9b93e3d9c29b40a387691e2f925776270777f89e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Fri, 25 Jul 2025 20:22:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9A=82=E5=81=9C=E5=B7=A5=E8=89=BA=20?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=B7=A5=E8=89=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/CraftsController.java | 6 ++- .../common/service/CraftsService.java | 52 ---------------------- 2 files changed, 4 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java b/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java index d521ba5..5f619af 100644 --- a/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java +++ b/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java @@ -1,5 +1,6 @@ package com.iflytop.colortitration.app.controller; +import com.iflytop.colortitration.app.core.crafts.CraftsDispatcher; import com.iflytop.colortitration.app.model.dto.SetCraftsDTO; import com.iflytop.colortitration.common.model.entity.Crafts; import com.iflytop.colortitration.common.result.Result; @@ -23,6 +24,7 @@ import java.util.Arrays; @Validated public class CraftsController { private final CraftsService craftsService; + private final CraftsDispatcher craftsDispatcher; @Operation(summary = "添加新工艺") @PostMapping("") @@ -68,14 +70,14 @@ public class CraftsController { @Operation(summary = "暂停执行工艺") @PostMapping("/pause") public Result pauseCrafts() { - craftsService.pause(); + craftsDispatcher.pause(); return Result.success(); } @Operation(summary = "恢复执行工艺") @PostMapping("/resume") public Result resumeCrafts() { - craftsService.resume(); + craftsDispatcher.resume(); return Result.success(); } diff --git a/src/main/java/com/iflytop/colortitration/common/service/CraftsService.java b/src/main/java/com/iflytop/colortitration/common/service/CraftsService.java index 80462ac..f72ddd6 100644 --- a/src/main/java/com/iflytop/colortitration/common/service/CraftsService.java +++ b/src/main/java/com/iflytop/colortitration/common/service/CraftsService.java @@ -10,14 +10,10 @@ import com.iflytop.colortitration.app.core.state.TubeState; import com.iflytop.colortitration.app.model.dto.SetCraftsDTO; import com.iflytop.colortitration.common.mapper.CraftsMapper; import com.iflytop.colortitration.common.model.entity.Crafts; -import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.ReentrantLock; - /** * 工艺接口服务 */ @@ -27,10 +23,6 @@ import java.util.concurrent.locks.ReentrantLock; public class CraftsService extends ServiceImpl { private final CraftsDispatcher craftsDispatcher; private final DeviceState deviceState; - private final ReentrantLock lock = new ReentrantLock(true); - private final Condition condition = lock.newCondition(); - @Getter - private volatile boolean paused = false; public Crafts findByName(String name) { return this.getOne(new LambdaQueryWrapper<>(new Crafts()).eq(Crafts::getName, name)); @@ -57,48 +49,4 @@ public class CraftsService extends ServiceImpl { } } - /** - * 暂停所有自动滴定任务 - */ - public void pause() { - lock.lock(); - try { - paused = true; - log.info("Titration paused"); - } finally { - lock.unlock(); - } - } - - /** - * 恢复所有自动滴定任务 - */ - public void resume() { - lock.lock(); - try { - paused = false; - condition.signalAll(); - log.info("Titration resumed"); - } finally { - lock.unlock(); - } - } - - /** - * 在各处理步骤前调用,以挂起当前线程直到恢复 - * - * @throws InterruptedException 如果线程被中断 - */ - public void pauseIfNeeded() throws InterruptedException { - lock.lock(); - try { - while (paused) { - log.debug("Titration is paused, waiting..."); - condition.await(); - } - } finally { - lock.unlock(); - } - } - }