#
Junjie
2025-05-24 1096df7b05cb00d0771d9f8c6cc43d8022099c7b
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,9 +5,13 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.GenerateAgvTaskParam;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -57,11 +61,213 @@
    private CommandInfoService commandInfoService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private OpenService openService;
    @Autowired
    private CommonService commonService;
    @Value("${wcs.urlWcs}")
    private String wcsUrl;
    @Value("${wcs.inboundTaskApplyPathWcs}")
    private String wcsInboundTaskApplyPath;
    public synchronized void demo() {
        boolean demoEnable = false;
        Config demoEnableConfig = configService.selectByCode("demoEnable");
        if(demoEnableConfig != null) {
            demoEnable = Boolean.parseBoolean(demoEnableConfig.getValue());
        }
        if (!demoEnable) {
            return;
        }
        //演示模式-AGV出库
        demoAgvOut();
        //演示模式-AGV入库
        demoAgvIn();
        //演示模式-四向库出库
        demoShuttleOut();
        //演示模式-四向库入库
        demoShuttleIn();
    }
    //演示模式-AGV出库
    private synchronized void demoAgvOut() {
        LocMast locMast = locMastService.selectByLocNo("0900601");
        if(locMast == null) {
            return;
        }
        if (!locMast.getLocSts().equals("O")) {
            return;
        }
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                .eq("mk", "agv")
                .eq("loc_sts", "F")
                .notIn("loc_no", "1100601")
        );
        if (locMasts.isEmpty()) {
            return;
        }
        LocMast originLocMast = locMasts.get(0);
        //生成AGV出库任务
        GenerateAgvTaskParam param = new GenerateAgvTaskParam();
        param.setOriginPoint(originLocMast.getLocNo());
        param.setTargetPoint(locMast.getLocNo());
        openService.generateAgvTask(param);
    }
    //演示模式-AGV入库
    private synchronized void demoAgvIn() {
        LocMast locMast = locMastService.selectByLocNo("1100601");
        if(locMast == null) {
            return;
        }
        if (!locMast.getLocSts().equals("F")) {
            return;
        }
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                .eq("mk", "agv")
                .eq("loc_sts", "O")
                .notIn("loc_no", "0900601")
        );
        if (locMasts.isEmpty()) {
            return;
        }
        LocMast targetLocMast = locMasts.get(0);
        //生成AGV出库任务
        GenerateAgvTaskParam param = new GenerateAgvTaskParam();
        param.setOriginPoint(locMast.getLocNo());
        param.setTargetPoint(targetLocMast.getLocNo());
        openService.generateAgvTask(param);
    }
    //演示模式-四向库出库
    private synchronized void demoShuttleOut() {
        LocMast locMast = locMastService.selectByLocNo("1100601");
        if(locMast == null) {
            return;
        }
        if (!locMast.getLocSts().equals("O")) {
            return;
        }
        ArrayList<Integer> disableLevList = new ArrayList<>();
        disableLevList.add(1);
        //query in task
        List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>()
                .eq("io_type", 1));
        for (TaskWrk taskWrk : taskWrks) {
            int lev = Utils.getLev(taskWrk.getTargetPoint());
            if(!disableLevList.contains(lev)) {
                disableLevList.add(lev);
            }
        }
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                .notIn("lev1", disableLevList)
                .eq("loc_sts", "F")
        );
        if(locMasts.isEmpty()) {
            return;
        }
        LocMast locMast1 = locMasts.get(0);
        Date now = new Date();
        TaskWrk taskWrk = new TaskWrk();
        int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//获取入库工作号
        taskWrk.setTaskNo(String.valueOf(workNo1));//任务号
        taskWrk.setWrkNo(workNo1);
        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收
        taskWrk.setWrkSts(11);
        taskWrk.setCreateTime(now);
        taskWrk.setIoType(2);//出库
        taskWrk.setIoPri(100);//优先级
        taskWrk.setStartPoint(locMast1.getLocNo());
        taskWrk.setTargetPoint("101");//终点
        boolean result = taskWrkService.insert(taskWrk);
        locMast1.setLocSts("R");
        locMast1.setModiTime(now);
        locMastService.updateById(locMast1);
        locMast.setLocSts("S");
        locMast.setModiTime(now);
        locMastService.updateById(locMast);
    }
    //演示模式-四向库入库
    private synchronized void demoShuttleIn() {
        LocMast locMast = locMastService.selectByLocNo("0900601");
        if(locMast == null) {
            return;
        }
        if (!locMast.getLocSts().equals("F")) {
            return;
        }
        ArrayList<Integer> disableLevList = new ArrayList<>();
        disableLevList.add(1);
        //query out task
        List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>()
                .eq("io_type", 2));
        for (TaskWrk taskWrk : taskWrks) {
            int lev = Utils.getLev(taskWrk.getTargetPoint());
            if(!disableLevList.contains(lev)) {
                disableLevList.add(lev);
            }
        }
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                .notIn("lev1", disableLevList)
                .eq("loc_sts", "O")
        );
        if(locMasts.isEmpty()) {
            return;
        }
        LocMast locMast1 = locMasts.get(0);
        Date now = new Date();
        TaskWrk taskWrk = new TaskWrk();
        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
        taskWrk.setTaskNo(String.valueOf(workNo1));//任务号
        taskWrk.setWrkNo(workNo1);
        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收
        taskWrk.setWrkSts(1);
        taskWrk.setCreateTime(now);
        taskWrk.setIoType(1);//入库
        taskWrk.setIoPri(100);//优先级
        taskWrk.setOriginStartPoint("1");
        taskWrk.setOriginTargetPoint(String.valueOf(Utils.getLev(locMast1.getLocNo())));
        taskWrk.setTargetPoint(locMast1.getLocNo());//终点
        boolean result = taskWrkService.insert(taskWrk);
        locMast1.setLocSts("S");
        locMast1.setModiTime(now);
        locMastService.updateById(locMast1);
        locMast.setLocSts("R");
        locMast.setModiTime(now);
        locMastService.updateById(locMast);
    }
    /**
     * 堆垛机站出库到出库站
     */