diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java new file mode 100644 index 0000000..b0eb882 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java @@ -0,0 +1,28 @@ +package org.springblade.desk.order.feign; + +import org.springblade.core.launch.constant.AppConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * 排产相关定时任务接口声明 + * + * @author lqk + */ +@FeignClient( + value = AppConstant.APPLICATION_DESK_NAME +) +public interface IApsClient { + + String API_PREFIX = "/feign/aps/"; + + String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes"; + + /** + * 从旧mes平台同步生产订单 + * + * @return + */ + @GetMapping(SYNC_ORDER_FROM_OLD_MES) + Boolean syncOrderFromOldMes(); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java new file mode 100644 index 0000000..62a8d76 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.order.feign; + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.RequiredArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.desk.order.service.IYieldOrderService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Feign 排产相关定时任务接口 + * + * @author Chill + */ +@NonDS +@Hidden() +@RestController +@RequiredArgsConstructor +public class ApsClient implements IApsClient { + + private final IYieldOrderService yieldOrderService; + + @Override + @GetMapping(SYNC_ORDER_FROM_OLD_MES) + public Boolean syncOrderFromOldMes() { + // 同步生产订单 + List cardNoList = yieldOrderService.syncYieldOrderFromOldMes(); + + // 推送同步结果,避免重复同步 + yieldOrderService.syncYieldOrderResultToOldMes(cardNoList); + + return Boolean.TRUE; + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/task/OrderApsJob.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/task/OrderApsJob.java new file mode 100644 index 0000000..c641e50 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/task/OrderApsJob.java @@ -0,0 +1,46 @@ +package org.springblade.desk.order.task; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.order.service.IYieldOrderService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 排产定时任务 + * + * @author Chill + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class OrderApsJob { + private final IYieldOrderService yieldOrderService; + + @Value("${business.oldMes.jobEnable}") + private String jobEnable; + + /** + * 同步生产订单定时任务 + * TODO 以后需要交由PowerJob服务统一管理 + */ + @Scheduled(cron = "0 0/3 * * * ?") + public void syncOrderFromOldMes() { + log.info("开始同步生产订单..."); + + if ("false".equals(jobEnable)) { + log.info("同步生产订单已关闭..."); + return; + } + + // 同步生产订单 + List cardNoList = yieldOrderService.syncYieldOrderFromOldMes(); + + // 推送同步结果,避免重复同步 + yieldOrderService.syncYieldOrderResultToOldMes(cardNoList); + log.info("同步生产订单已完成..."); + } +} diff --git a/blade-service/blade-desk/src/main/resources/application-dev.yml b/blade-service/blade-desk/src/main/resources/application-dev.yml index a3e40b5..8f66f99 100644 --- a/blade-service/blade-desk/src/main/resources/application-dev.yml +++ b/blade-service/blade-desk/src/main/resources/application-dev.yml @@ -11,6 +11,7 @@ spring: business: oldMes: - url: 127.0.0.1:32111 + jobEnable: false + url: 192.168.169.172:9000 syncOrderList: /zhgd-rb/aiWebapi/syncApsOrderData pushSyncResult: /zhgd-rb/aiWebapi/syncApsOrderDataResult