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<BasAgvMapper, BasAgv> implements BasAgvService {
|
|
@Override
|
public BasAgv selectIdleAgv() {
|
List<BasAgv> idleAgvs = this.selectList(new EntityWrapper<BasAgv>()
|
.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<BasAgv>().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));
|
}
|
|
}
|