From 67b35b4a8b23c64103e1324a2cd0e253d72622bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Mon, 11 May 2026 18:12:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8E=A5=E6=94=B6=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../produce/ConfirmOrderProcessor.java | 30 +++++++++++ .../desk/produce/feign/IApsProduceClient.java | 8 +++ .../desk/produce/feign/ApsProduceClient.java | 53 ++++++++++++++----- 3 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/ConfirmOrderProcessor.java diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/ConfirmOrderProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/ConfirmOrderProcessor.java new file mode 100644 index 000000000..6e1031fe7 --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/ConfirmOrderProcessor.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 ConfirmOrderProcessor implements BasicProcessor { + + @Resource + private IApsProduceClient client; + + @Override + public ProcessResult process(TaskContext context) throws Exception { + log.info("自动开始订单接收"); + return new ProcessResult(client.confirmOrder()); + } +} 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 11c882621..227bbd5a6 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 @@ -17,6 +17,7 @@ public interface IApsProduceClient { String API_PREFIX = "/feign/aps/produce"; String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes"; + String CONFIRM_ORDER = API_PREFIX + "/confirmOrder"; /** @@ -27,4 +28,11 @@ public interface IApsProduceClient { @GetMapping(SYNC_ORDER_FROM_OLD_MES) Boolean syncOrderFromOldMes(); + /** + * 订单接收 + * + * @return + */ + @GetMapping(CONFIRM_ORDER) + boolean confirmOrder(); } 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 765ecf884..ac78c5c72 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 @@ -1,12 +1,19 @@ package org.springblade.desk.produce.feign; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.v3.oas.annotations.Hidden; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.desk.order.pojo.entity.YieldOrder; +import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.service.IYieldOrderService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; import java.util.List; /** @@ -18,21 +25,39 @@ import java.util.List; @Hidden() @RestController @RequiredArgsConstructor +@Slf4j public class ApsProduceClient implements IApsProduceClient { - private final IYieldOrderService yieldOrderService; - - - @Override - @GetMapping(SYNC_ORDER_FROM_OLD_MES) - public Boolean syncOrderFromOldMes() { - // 同步生产订单 - List cardNoList = yieldOrderService.syncYieldOrderFromOldMes(); - - // 推送同步结果,避免重复同步 - yieldOrderService.syncYieldOrderResultToOldMes(cardNoList); - - return Boolean.TRUE; - } + private final IYieldOrderService yieldOrderService; + + + @Override + @GetMapping(SYNC_ORDER_FROM_OLD_MES) + public Boolean syncOrderFromOldMes() { + // 同步生产订单 + List cardNoList = yieldOrderService.syncYieldOrderFromOldMes(); + + // 推送同步结果,避免重复同步 + yieldOrderService.syncYieldOrderResultToOldMes(cardNoList); + + return Boolean.TRUE; + } + + @Override + public boolean confirmOrder() { + // 获取上1小时开始、结束时间 + Date startTime = Date.from(LocalDateTime.now().minusHours(1).withMinute(0).withSecond(0).withNano(0).atZone(ZoneId.systemDefault()).toInstant()); + Date endTime = Date.from(LocalDateTime.now().minusHours(1).withMinute(59).withSecond(59).withNano(999_999_999).atZone(ZoneId.systemDefault()).toInstant()); + List orders = yieldOrderService.list(Wrappers.lambdaQuery().eq(YieldOrder::getValidationResult, YieldOrderEnum.VALIDATION_RESULT_PASS.getCode()).between(YieldOrder::getUpdateTime, startTime, endTime)); + for (YieldOrder yieldOrder : orders) { + try { + yieldOrderService.confirm(yieldOrder.getCardNo(), "0"); + } catch (Exception e) { + log.error("订单接收失败,流程卡号{},错误信息为{}", yieldOrder.getCardNo(), e.getMessage()); + } + } + log.info("自动接收订单结束"); + return true; + } }