From 7fc738861fca3e59b19feddbcded17206e8ebefd Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Mon, 29 Sep 2025 17:54:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkTicketServiceImpl.java | 29 ++++++++------ .../com/zhgd/xmgl/util/AsyncTaskUtil.java | 38 +++++++++++++++++++ 2 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/WorkTicketServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/WorkTicketServiceImpl.java index 2de06e3e2..a3171b723 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/WorkTicketServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/WorkTicketServiceImpl.java @@ -27,12 +27,11 @@ import com.zhgd.xmgl.modules.quality.service.IQualityRegionService; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; -import com.zhgd.xmgl.util.EntityUtils; -import com.zhgd.xmgl.util.MapBuilder; -import com.zhgd.xmgl.util.PageUtil; -import com.zhgd.xmgl.util.RefUtil; +import com.zhgd.xmgl.util.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -86,6 +85,9 @@ public class WorkTicketServiceImpl extends ServiceImpl queryPageList(HashMap param) { @@ -254,14 +256,6 @@ public class WorkTicketServiceImpl extends ServiceImpl { + PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(ticket.getProjectSn()); + if (manufacturer != null) { + if (workTicketDto.getOperateStatus() == 1 || workTicketDto.getOperateStatus() == 3) { + manufacturer.beginWork(ticket, finalHis.getId() + "", finalHis.getNo()); + } else if (workTicketDto.getOperateStatus() == 2 || workTicketDto.getOperateStatus() == 4) { + manufacturer.endWork(ticket, finalHis.getId() + ""); + } + } + }); } } diff --git a/src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java b/src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java new file mode 100644 index 000000000..4f54c5f73 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/util/AsyncTaskUtil.java @@ -0,0 +1,38 @@ +package com.zhgd.xmgl.util; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; + +@Component +public class AsyncTaskUtil { + + private static ThreadPoolTaskExecutor doubleCarbonExecutor; + + /** + * 执行异步任务 + */ + public static CompletableFuture runAsync(Runnable task) { + return CompletableFuture.runAsync(task, doubleCarbonExecutor); + } + + /** + * 执行异步任务并支持异常处理 + */ + public static CompletableFuture runAsync(Runnable task, Consumer exceptionHandler) { + return CompletableFuture.runAsync(task, doubleCarbonExecutor) + .exceptionally(throwable -> { + exceptionHandler.accept(throwable); + return null; + }); + } + + @Autowired + public void setDoubleCarbonExecutor(@Qualifier("doubleCarbonExecutor") ThreadPoolTaskExecutor executor) { + AsyncTaskUtil.doubleCarbonExecutor = executor; + } +}