diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/AdvanceJob.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/AdvanceJob.java new file mode 100644 index 000000000..c6e780d69 --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/AdvanceJob.java @@ -0,0 +1,58 @@ +package com.logpm.factorydata.olo.job; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; +import com.logpm.factorydata.olo.service.DeliveryNoteService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 我乐定时生成暂存单 + * + * @author zhaoqiaobo + * @create 2024-04-02 + */ +@AllArgsConstructor +@Component +@Slf4j +public class AdvanceJob { + + private final DeliveryNoteService deliveryNoteService; + + /** + * 定时扫描数据库 + * 背景:我乐每天晚上凌晨1点拉取订单数据,然后存入我乐订单池。 + * 任务:1点半去定时生成暂存单 + * + * @param param + * @return + * @throws Exception + */ + @XxlJob("createAdvance") + public ReturnT createAdvance(String param) throws Exception { + // 指定天数生成暂存单或者系统自动处理 + DateTime time = DateUtil.date(); + if (StrUtil.isNotEmpty(param)) { + time = DateUtil.parseDate(param); + } + // 1 查询出当前拉取的数据 + // 大于等于 time 的开始 小于 time 的结束 + List list = deliveryNoteService.list(Wrappers.lambdaQuery().between(DeliveryNoteEntity::getCreateTime, DateUtil.beginOfDay(time), DateUtil.endOfDay(time))); + // 2 按订单和发货单分组作为一个暂存单 + if (CollUtil.isNotEmpty(list)) { + // 3 生成暂存单 + deliveryNoteService.buildAdvance(list); + } + return ReturnT.SUCCESS; + } + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java index 6261c84cd..ccad88250 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java @@ -153,8 +153,8 @@ public class FactoryOrderListener { } if (CollUtil.isNotEmpty(entities)) { deliveryNoteService.saveBatch(entities); - // 处理暂存单 - deliveryNoteService.buildAdvance(entities); + // 处理暂存单 暂存单由定时任务定时生成 + // deliveryNoteService.buildAdvance(entities); FactoryOrderLogEntity logEntity1 = new FactoryOrderLogEntity(); logEntity1.setSaxStatus(SaxStatusEnums.SUCCESS.getCode()); logEntity1.setId(logId);