自动化立体仓库 - WMS系统
skyouc
3 天以前 19feb4af89f6e5e67c3dc97cbbcf6cfc40350781
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,7 +1,12 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.api.controller.params.WorkTaskParams;
import com.zy.api.service.WcsApiService;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.CompleteParam;
import com.zy.asrs.service.MobileService;
import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
@@ -12,6 +17,8 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -28,10 +35,14 @@
    @Autowired
    private WorkMastHandler workMastHandler;
    @Autowired
    private WcsApiService wcsApiService;
    @Autowired
    private MobileService mobileService;
    @Autowired
    private TaskService taskService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
    private void execute() {
        List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
        if (wrkMasts.isEmpty()) {
            return;
@@ -50,7 +61,7 @@
    }
    @Scheduled(cron = "0/3 * * * * ? ")
    private void executeTask(){
    private void executeTask() {
        List<Task> wrkMasts = taskService.selectToBeCompleteData();
        if (wrkMasts.isEmpty()) {
            return;
@@ -68,4 +79,40 @@
        }
    }
    /**
     * 任务自动下发出库任务
     *
     * @author Ryan
     * @date 2026/1/10 14:42
     */
    @Scheduled(cron = "0/5 * * * * ? ")
    private void autoPubTasks() {
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(11L, 1L)));
        if (wrkMasts.isEmpty()) {
            return;
        }
        Collections.shuffle(wrkMasts);
        wrkMasts.forEach(wrkMast -> {
            WorkTaskParams params = new WorkTaskParams();
            if (wrkMast.getIoType().equals(11)) {
                CompleteParam param = new CompleteParam();
                param.setTaskNo(wrkMast.getWrkNo() + "");
                param.setSourceLocNo(wrkMast.getSourceLocNo());
                param.setLocNo(wrkMast.getLocNo());
//                param.set
                mobileService.taskMove(param, 9527L);
            } else if (wrkMast.getIoType() > 100) {
                params.setType("out")
                        .setTaskNo(wrkMast.getWrkNo() + "")
                        .setLocNo(wrkMast.getSourceLocNo())
                        .setBarcode(wrkMast.getBarcode())
                        .setStaNo(wrkMast.getStaNo())
                        .setTaskPri(wrkMast.getIoPri().intValue());
                wcsApiService.pubWrkToWcs(params);
            }
        });
    }
}