package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.OrderPakout; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.OrderPakoutService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.handler.JlerHandler; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * @author pang.jiabao * @description 济南二机床刀具库相关定时任务 * @createDate 2025/11/18 14:18 */ @Component public class JlerScheduler { @Resource private JlerHandler jlerHandler; @Resource private WrkMastService wrkMastService; @Resource private OrderPakoutService orderPakoutService; /** * 货物到达入库口接驳位开始呼叫料箱机器人 */ @Scheduled(cron = "0/5 * * * * ? ") private void callAgvToWarehouse() { List wrkMastList = wrkMastService.selectList(new EntityWrapper().eq("mk", "Y").eq("wrk_sts", 2)); for (WrkMast wrkMast : wrkMastList) { jlerHandler.callAgvToWarehouse(wrkMast); } } /** * 根据出库订单自动生成出库任务 */ @Scheduled(cron = "0/8 * * * * ? ") private void autoGenerateOutTask() { OrderPakout orderPakout = orderPakoutService.selectOne(new EntityWrapper().eq("settle", 1)); if (orderPakout == null) { return; } jlerHandler.autoGenerateOutTask(orderPakout); } /** * 根据出库任务自动呼叫料箱机器人搬运 */ @Scheduled(cron = "0/10 * * * * ? ") private void outboundCallBinRobot() { // 每次取3条 List wrkMastList = wrkMastService.selectList(new EntityWrapper().setSqlSelect("TOP 3 *").eq("source_sta_no", 101).eq("wrk_sts", 11).orderBy("io_type")); for(WrkMast wrkMast:wrkMastList) { jlerHandler.outboundCallBinRobot(wrkMast); } } }