skyouc
2025-09-09 ccfbcdf2a2ee13a7575bb7bbd0cbf5311df2827b
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java
@@ -21,6 +21,7 @@
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.asrs.service.impl.LocServiceImpl;
import com.zy.asrs.wms.asrs.service.impl.OrderServiceImpl;
import com.zy.asrs.wms.utils.Utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -68,6 +69,12 @@
    private CacheSiteService cacheSiteService;
    @Autowired
    private OperationPortService operationPortService;
    @Autowired
    private WaveSeedService waveSeedService;
    @Autowired
    private MobileService mobileService;
    @Autowired
    private OrderService orderService;
    /***
     * 入库任务---通知ESS输送线流动
@@ -76,7 +83,8 @@
    @Transactional(rollbackFor = Exception.class)
    public void conveyorStart() {
        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                .eq(Task::getTaskSts, TaskStsType.WCS_CONTAINER_RECEIVE.id).eq(Task::getStatus, 1));
                .eq(Task::getTaskSts, TaskStsType.WCS_CONTAINER_RECEIVE.id)
                .eq(Task::getStatus, 1));
        tasks.forEach(task -> {
            try {
                ConveyorStarParam conveyorStarParam = new ConveyorStarParam();
@@ -117,8 +125,8 @@
    /**
     * 生成自动盘点任务
     */
    @Scheduled(cron = "0/50 * * * * ?")
    @Transactional(rollbackFor = Exception.class)
//    @Scheduled(cron = "0/50 * * * * ?")
//    @Transactional(rollbackFor = Exception.class)
    public void genCheckTask() {
        Loc locs = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocStsId, LocStsType.F.val()).orderByAsc(Loc::getLocNo).last("limit 1"));
        if (Objects.isNull(locs)) {
@@ -185,7 +193,6 @@
            throw new CoolException("库位状态修改失败!!");
        }
    }
    /***
     * 入库任务---下发入库任务
@@ -320,6 +327,41 @@
    }
    /***
     * @author Ryan
     * @date 2025/9/9
     * @description: 添加亮灯动作
     * @version 1.0
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    @Transactional(rollbackFor = Exception.class)
    public void holdLight() {
        //获取播种中的出库任务
        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                .ge(Task::getTaskType, TaskStsType.GENERATE_OUT.id)
                .eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
        for (Task task : tasks) {
            //获取绑定地标的播种信息
            List<WaveSeed> seeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>()
                    .eq(WaveSeed::getTaskId, task.getId()));
            if (seeds.isEmpty()) {
                continue;
            }
            seeds.forEach(seed -> {
               if (!Objects.isNull(seed.getSiteId())) {
                   Order order = orderService.getById(seed.getOrderId());
                   if (Objects.isNull(order)) {
                       throw new CoolException("单据不存在!!");
                   }
                   //绑定成功,播种墙亮灯
                   mobileService.sowLightMange(seed.getSiteNo(), order, "LIGHT");
               }
            });
        }
    }
    /**
     * 出库任务--- 每隔3秒,获取当前出库任务列表状态为GENERATE_OUT的任务,下发任务至ESS
     * //TODO  出库任务分两种: