package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkOutLockErpReportHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Arrays; import java.util.List; @Slf4j @Component public class WorkOutLockErpReportScheduler { @Autowired private WrkMastService wrkMastService; @Autowired private WorkOutLockErpReportHandler workOutLockErpReportHandler; /** * 7.12 出库任务锁定。 * WCS 上报出库任务开始后,WMS 将 wrk_sts=13 的出库任务锁定信息上报 ERP。 */ @Scheduled(cron = "0/10 * * * * ? ") private void execute() { List wrkMasts = wrkMastService.selectList(new EntityWrapper() .eq("wrk_sts", WorkOutLockErpReportHandler.ERP_LOCK_REPORT_PENDING_WRK_STS) .in("io_type", Arrays.asList(101, 110)) .orderBy("io_time", true) .orderBy("wrk_no", true)); if (wrkMasts.isEmpty()) { return; } for (WrkMast wrkMast : wrkMasts) { ReturnT result = workOutLockErpReportHandler.start(wrkMast); if (!result.isSuccess()) { log.error("workNo={} outbound erp lock report failed: {}", wrkMast.getWrkNo(), result.getMsg()); } } } }