#
Junjie
2025-05-10 2a7fd275313003968fc186ee4617aec4eca90266
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
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.entity.param.TaskCreateParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
@@ -91,4 +93,54 @@
        return map;
    }
    @Override
    public boolean generateAgvTask(GenerateAgvTaskParam param) {
        Date now = new Date();
        String originPoint = param.getOriginPoint();
        String targetPoint = param.getTargetPoint();
        LocMast startLocMast = locMastService.selectByLocNo(originPoint);
        if(startLocMast == null){
            throw new CoolException("取货点库位不存在");
        }
        if (!startLocMast.getLocSts().equals("F")) {
            throw new CoolException("取货点不处于在库");
        }
        LocMast targetLocMast = locMastService.selectByLocNo(targetPoint);
        if(targetLocMast == null){
            throw new CoolException("放货点库位不存在");
        }
        if (!targetLocMast.getLocSts().equals("O")) {
            throw new CoolException("放货点不处于空库");
        }
        TaskWrk taskWrk = new TaskWrk();
        int workNo1 = commonService.getWorkNo(WorkNoType.AGV.type);//获取AGV工作号
        taskWrk.setTaskNo(String.valueOf(workNo1));//任务号
        taskWrk.setWrkNo(workNo1);
        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收
        taskWrk.setCreateTime(now);
        taskWrk.setWrkSts(11);
        taskWrk.setIoType(4);//AGV搬运
        taskWrk.setStartPoint(param.getOriginPoint());//取货点
        taskWrk.setTargetPoint(param.getTargetPoint());//放货点
        boolean insert = taskWrkService.insert(taskWrk);
        if (!insert) {
            throw new CoolException("任务生成失败");
        }
        startLocMast.setLocSts("R");
        startLocMast.setModiTime(now);
        locMastService.updateById(startLocMast);
        targetLocMast.setLocSts("S");
        targetLocMast.setModiTime(now);
        locMastService.updateById(targetLocMast);
        return true;
    }
}