package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.mapper.BasAgvMapper; import com.zy.asrs.entity.BasAgv; import com.zy.asrs.service.BasAgvService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; import java.util.Random; @Slf4j @Service("basAgvService") public class BasAgvServiceImpl extends ServiceImpl implements BasAgvService { @Override public BasAgv selectIdleAgv() { List idleAgvs = this.selectList(new EntityWrapper() .eq("in_enable", "Y") .eq("is_user", 1) .eq("status", 6) ); if (Cools.isEmpty(idleAgvs)) { log.warn("没有空闲的Agv小车"); throw new CoolException("没有空闲的Agv小车"); } return idleAgvs.get(0); } @Override public String getAgvWorkNo() { String workNo = null; for (int i = 0; i < 10; i++) { workNo = getRandom(); int count = this.selectCount(new EntityWrapper().eq("task_code", workNo)); if (count == 0) { break; } } if (Cools.isEmpty(workNo)) { throw new CoolException("下发AGV任务错误,工作号异常"); } return workNo; } private String getRandom() { return String.format("%04d",new Random().nextInt(9999)); } }