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; + } +}