diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/dashboard/CalculateCoatingMaterialProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/dashboard/CalculateCoatingMaterialProcessor.java new file mode 100644 index 00000000..cd8db237 --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/dashboard/CalculateCoatingMaterialProcessor.java @@ -0,0 +1,33 @@ +package org.springblade.job.processor.dashboard; + +import jakarta.annotation.Resource; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.order.feign.IOrderClient; +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; + +import java.util.concurrent.CompletableFuture; + +/** + * 工艺模块-返工任务 + * @author liweidong + */ +@Component +@Data +@Slf4j +public class CalculateCoatingMaterialProcessor implements BasicProcessor { + + @Resource + private IOrderClient client; + + @Override + public ProcessResult process(TaskContext context) throws Exception { + log.info("镀层物料需求任务开始"); + CompletableFuture runFuture = CompletableFuture.runAsync(()->client.calculateCoatingMaterial()); + log.info("镀层物料需求任务结束"); + return new ProcessResult(true); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java index f4bf3dc3..1d459e69 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java @@ -15,9 +15,10 @@ import org.springframework.web.bind.annotation.GetMapping; ) public interface IOrderClient { - String API_PREFIX = "/feign/order/"; + String API_PREFIX = "/feign/client/order/"; String SAVE_GLASS_CAKE = API_PREFIX + "/saveGlassCake"; + String CALCULATE_COATING_MATERIAL = API_PREFIX + "/calculateCoatingMaterial"; /** @@ -29,4 +30,12 @@ public interface IOrderClient { @GetMapping(SAVE_GLASS_CAKE) Boolean saveGlassCake(YieldPlan yieldPlan); + /** + * 镀层物料需求 + * + * @return + */ + @GetMapping(CALCULATE_COATING_MATERIAL) + void calculateCoatingMaterial(); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java index 1e8284ec..6e867257 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java @@ -29,6 +29,7 @@ import io.swagger.v3.oas.annotations.Hidden; import lombok.RequiredArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.desk.order.pojo.entity.YieldPlan; +import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldPlanService; import org.springframework.web.bind.annotation.RestController; @@ -44,10 +45,16 @@ import org.springframework.web.bind.annotation.RestController; public class OrderClient implements IOrderClient { private final IYieldPlanService yieldPlanService; + private final IYieldOrderService orderService; @Override public Boolean saveGlassCake(YieldPlan yieldPlan) { yieldPlanService.saveGlassCake(yieldPlan); return null; } + + @Override + public void calculateCoatingMaterial() { + orderService.calculateCoatingMaterial(); + } } 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 abcd1aab..65974d00 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 @@ -285,4 +285,6 @@ public interface IYieldOrderService extends BaseService { String nextCode(Object obj); List getToolByPartCode(String partCode); + + void calculateCoatingMaterial(); } 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 f4d922dc..c26694eb 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 @@ -35,10 +35,7 @@ import org.springblade.desk.order.constant.YieldOrderConst; import org.springblade.desk.order.mapper.MoldDemandMapper; import org.springblade.desk.order.mapper.YieldOrderMapper; import org.springblade.desk.order.mapper.YieldPlanMapper; -import org.springblade.desk.order.pojo.entity.MoldDemand; -import org.springblade.desk.order.pojo.entity.YieldOrder; -import org.springblade.desk.order.pojo.entity.YieldOrderCraft; -import org.springblade.desk.order.pojo.entity.YieldPlan; +import org.springblade.desk.order.pojo.entity.*; import org.springblade.desk.order.pojo.enums.MoldDemandEnum; import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.pojo.vo.LineMemoVo; @@ -54,6 +51,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.MessageFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @@ -374,7 +374,6 @@ public class YieldOrderServiceImpl extends BaseServiceImpl wrapper = Wrappers.query().lambda() + .between(YieldOrder::getReceiveTime, + DateUtil.toDate(startOfDay), + DateUtil.toDate(endOfDay)).isNull(YieldOrder::getGoodsDemand); + List list = this.list(wrapper); + if(CollectionUtils.isNotEmpty(list)){ + for(YieldOrder yieldOrder : list){ + plateGoodsRecordService.calculateCoatingMaterial(yieldOrder); + } + } + } + /** * 验证零件子件信息 * @@ -1230,7 +1246,11 @@ public class YieldOrderServiceImpl extends BaseServiceImpl