自动化立体仓库 - WMS系统
skyouc
1 天以前 707d414c0e6a8baff3ce7affec820f0fc1a13c19
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,7 +1,10 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.api.controller.params.AgvCarriesParam;
import com.zy.api.controller.params.WorkTaskParams;
import com.zy.api.entity.CallAgvParams;
import com.zy.api.service.AgvScheduleService;
import com.zy.api.service.WcsApiService;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
@@ -40,6 +43,8 @@
    private MobileService mobileService;
    @Autowired
    private TaskService taskService;
    @Autowired
    private AgvScheduleService agvScheduleService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute() {
@@ -92,7 +97,7 @@
        if (wrkMasts.isEmpty()) {
            return;
        }
        Collections.shuffle(wrkMasts);
//        Collections.shuffle(wrkMasts);
        wrkMasts.forEach(wrkMast -> {
            WorkTaskParams params = new WorkTaskParams();
            if (wrkMast.getIoType().equals(11)) {
@@ -112,7 +117,34 @@
                wcsApiService.pubWrkToWcs(params);
            }
        });
    }
    /**
     * AGV任务自动下发出库任务
     *
     * @author Ryan
     * @date 2026/1/10 14:42
     */
    @Scheduled(cron = "0/5 * * * * ? ")
    private void autoPubAgvTasks() {
        List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().in("wrk_sts", Arrays.asList(201L, 301L)));
        if (tasks.isEmpty()) {
            return;
        }
        Collections.shuffle(tasks);
        tasks.forEach(wrkMast -> {
            CallAgvParams param = new CallAgvParams();
            if (wrkMast.getIoType() == 1) {
                param.setWrkNo(wrkMast.getWrkNo() + "");
                param.setOrgSite(wrkMast.getSourceStaNo());
                param.setTarSite(wrkMast.getLocNo());
            } else if (wrkMast.getIoType() == 110 ||wrkMast.getIoType() == 101){
                param.setWrkNo(wrkMast.getWrkNo() + "");
                param.setOrgSite(wrkMast.getSourceLocNo());
                param.setTarSite(wrkMast.getStaNo());
            }
            agvScheduleService.callAgvCarry(param);
        });
    }
}