From 39958698d27f209a635667432f73a7da5e14c6aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Tue, 16 Jun 2026 13:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E6=B4=BE=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E8=AE=A2=E5=8D=95=E5=AE=9A=E6=97=B6=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=88=86=E6=B4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../YieldOrderAutoDispatchProcessor.java | 30 +++++++++++++++++++ .../desk/produce/feign/IApsProduceClient.java | 11 +++++-- .../order/service/IYieldOrderService.java | 7 +++++ .../service/impl/YieldOrderServiceImpl.java | 9 +++++- .../desk/produce/feign/ApsProduceClient.java | 16 ++++++++++ 5 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java new file mode 100644 index 000000000..58e51241b --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java @@ -0,0 +1,30 @@ +package org.springblade.job.processor.produce; + +import jakarta.annotation.Resource; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.produce.feign.IApsProduceClient; +import org.springframework.stereotype.Component; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +/** + * 异常订单自动分派 + * + * @author litao + */ +@Component +@Data +@Slf4j +public class YieldOrderAutoDispatchProcessor implements BasicProcessor { + + @Resource + private IApsProduceClient client; + + @Override + public ProcessResult process(TaskContext context) throws Exception { + log.info("异常订单自动分派开始"); + return new ProcessResult(client.yieldOrderAutoDispatch()); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java index 227bbd5a6..39a748809 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java @@ -18,8 +18,7 @@ public interface IApsProduceClient { String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes"; String CONFIRM_ORDER = API_PREFIX + "/confirmOrder"; - - + String YIELD_ORDER_AUTO_DISPATCH = API_PREFIX + "/yieldOrderAutoDispatch"; /** * 从旧mes平台同步生产订单 * @@ -35,4 +34,12 @@ public interface IApsProduceClient { */ @GetMapping(CONFIRM_ORDER) boolean confirmOrder(); + + /** + * 异常订单自动分派 + * + * @return + */ + @GetMapping(YIELD_ORDER_AUTO_DISPATCH) + boolean yieldOrderAutoDispatch(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java index 34cf19854..e46ee4d5a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java @@ -340,4 +340,11 @@ public interface IYieldOrderService extends BaseService { YieldOrder getByCardNo(String cardNo); List getSubCompleteData(YieldOrder yieldOrder); + + /** + * 生产订单自动分派 + * @param yieldOrder + * @return + */ + List yieldOrderAutoDispatch(YieldOrder yieldOrder); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 408ef1825..49856e7a0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -1000,6 +1000,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl yieldOrderAutoDispatch(YieldOrder yieldOrder) { boolean result = this.verifyYieldOrderResource(yieldOrder); if (result) { List list = yieldOrderCraftService.list(Wrappers.lambdaQuery().eq(YieldOrderCraft::getYoId, yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo)); - list.stream().forEach(craft -> { + list.forEach(craft -> { if (craft.getWorkCenterId() != null) { WorkCenter workCenter = workCenterService.getById(craft.getWorkCenterId()); craft.setWorkCenterName(workCenter.getWcName()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java index a049f07f9..4c7640014 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.time.ZoneId; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -61,4 +62,19 @@ public class ApsProduceClient implements IApsProduceClient { return true; } + @Override + public boolean yieldOrderAutoDispatch() { + List orders = yieldOrderService.list(Wrappers.lambdaQuery().eq(YieldOrder::getValidationResult, YieldOrderEnum.VALIDATION_RESULT_LESS_RESOURCE.getCode())); + log.info("异常订单待自动分派数量:{}", orders.size()); + for (YieldOrder yieldOrder : orders) { + try { + yieldOrderService.yieldOrderAutoDispatch(yieldOrder); + } catch (Exception e) { + log.error("异常订单自动分派失败,流程卡号{},错误信息为{}", yieldOrder.getCardNo(), e.getMessage()); + } + } + log.info("异常订单自动分派结束"); + return true; + } + }