返修下线调整
parent
d22b015d6c
commit
3009854769
|
|
@ -102,7 +102,7 @@ public class BydAppServiceImpl implements BydAppService {
|
||||||
Point endPoint = pointList.get(0);
|
Point endPoint = pointList.get(0);
|
||||||
|
|
||||||
//创建下发任务
|
//创建下发任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.ASN, stock, srcPoint, endPoint, "FORKLIFT_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.ASN, stock, srcPoint.getCode(), endPoint.getCode(), "FORKLIFT_MOVE");
|
||||||
|
|
||||||
//创建ASN明细和ItemKey和Task任务
|
//创建ASN明细和ItemKey和Task任务
|
||||||
createAsnDetailsAndItemKeysAndTasks(barCodeVos, item, stock, srcPoint, endPoint, agvTask);
|
createAsnDetailsAndItemKeysAndTasks(barCodeVos, item, stock, srcPoint, endPoint, agvTask);
|
||||||
|
|
|
||||||
|
|
@ -94,28 +94,32 @@ public interface AgvTaskService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建agvTask任务
|
* 创建agvTask任务
|
||||||
* @param bizStatus 状态
|
*
|
||||||
* @param stock 容器
|
* @param bizStatus 状态
|
||||||
* @param srcPoint 起点
|
* @param stock 容器
|
||||||
* @param endPoint 终点
|
* @param srcPointCode 起点
|
||||||
* @param jobType 任务类型
|
* @param endPointCode 终点
|
||||||
|
* @param jobType 任务类型
|
||||||
*/
|
*/
|
||||||
AgvTask createAgvTask(String bizStatus, Stock stock, Point srcPoint, Point endPoint, String jobType);
|
AgvTask createAgvTask(String bizStatus, Stock stock, String srcPointCode, String endPointCode, String jobType);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据容器查询任务
|
* 根据容器查询任务
|
||||||
|
*
|
||||||
* @param stockCode 容器
|
* @param stockCode 容器
|
||||||
*/
|
*/
|
||||||
List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode);
|
List<AgvTask> findRepeat(String stockCode, String srcPointCode, String endPointCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据终点查询是否有重复任务
|
* 根据终点查询是否有重复任务
|
||||||
* @param stockCode 容器
|
*
|
||||||
|
* @param endSlotCode 点位
|
||||||
|
* @param type 任务类型
|
||||||
|
* @param jobType 作业类型
|
||||||
*/
|
*/
|
||||||
Boolean findByEndSlotCode(String endSlotCode, String type, String jobType);
|
Boolean findByEndSlotCode(String endSlotCode, String type, String jobType);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询打开的任务并轮询下发
|
* 查询打开的任务并轮询下发
|
||||||
*/
|
*/
|
||||||
|
|
@ -123,13 +127,13 @@ public interface AgvTaskService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 翻包返库时,查询起点是否有多条不同容器的任务(不包括当前任务)
|
* 翻包返库时,查询起点是否有多条不同容器的任务(不包括当前任务)
|
||||||
* @param agvTaskId 任务ID
|
*
|
||||||
|
* @param agvTaskId 任务ID
|
||||||
* @param srcPointCode 起点
|
* @param srcPointCode 起点
|
||||||
*/
|
*/
|
||||||
int existsBySrcPoint(Long agvTaskId, String srcPointCode);
|
int existsBySrcPoint(Long agvTaskId, String srcPointCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* 统计本周任务数量
|
* 统计本周任务数量
|
||||||
*/
|
*/
|
||||||
Map<String, Object> queryWeeklyTaskCounts();
|
Map<String, Object> queryWeeklyTaskCounts();
|
||||||
|
|
|
||||||
|
|
@ -125,12 +125,12 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public AgvTask createAgvTask(String bizStatus, Stock stock, Point srcPoint, Point endPoint, String jobType) {
|
public AgvTask createAgvTask(String bizStatus, Stock stock, String srcPointCode, String endPointCode, String jobType) {
|
||||||
AgvTask agvTask = new AgvTask();
|
AgvTask agvTask = new AgvTask();
|
||||||
agvTask.setType(bizStatus);
|
agvTask.setType(bizStatus);
|
||||||
agvTask.setStockCode(stock == null ? null : stock.getCode());
|
agvTask.setStockCode(stock == null ? null : stock.getCode());
|
||||||
agvTask.setStartSlotCode(srcPoint.getCode());
|
agvTask.setStartSlotCode(srcPointCode);
|
||||||
agvTask.setEndSlotCode(endPoint.getCode());
|
agvTask.setEndSlotCode(endPointCode);
|
||||||
agvTask.setStatus(BizStatus.OPEN);
|
agvTask.setStatus(BizStatus.OPEN);
|
||||||
agvTask.setJobType(jobType);
|
agvTask.setJobType(jobType);
|
||||||
agvTaskRepository.save(agvTask);
|
agvTaskRepository.save(agvTask);
|
||||||
|
|
|
||||||
|
|
@ -262,11 +262,10 @@ public class KMReServiceImpl implements KMReService {
|
||||||
@Override
|
@Override
|
||||||
public synchronized String sendAgvTaskGtJson(AgvTask agvTask) {
|
public synchronized String sendAgvTaskGtJson(AgvTask agvTask) {
|
||||||
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
||||||
String agvCode = TimeNumberUtils.getGTTaskCode();
|
|
||||||
Map<String, Object> objMap = new LinkedHashMap<>();
|
Map<String, Object> objMap = new LinkedHashMap<>();
|
||||||
objMap.put("orgId", agvCode);//库存组织 ID(或工厂代码,供应商代码)
|
objMap.put("orgId", agvTask.getId());//库存组织 ID(或工厂代码,供应商代码)
|
||||||
objMap.put("requestId", agvCode);//请求 id
|
objMap.put("requestId", agvTask.getId());//请求 id
|
||||||
objMap.put("missionCode", agvCode);//任务编号
|
objMap.put("missionCode", agvTask.getId());//任务编号
|
||||||
objMap.put("missionType", "ROLLER_MOVE");//任务类型 :滚筒
|
objMap.put("missionType", "ROLLER_MOVE");//任务类型 :滚筒
|
||||||
objMap.put("viewBoardType", "");//上视识别类型:
|
objMap.put("viewBoardType", "");//上视识别类型:
|
||||||
objMap.put("robotType", "ROLLER");
|
objMap.put("robotType", "ROLLER");
|
||||||
|
|
@ -280,9 +279,9 @@ public class KMReServiceImpl implements KMReService {
|
||||||
missionDataMap.put("position", agvTask.getStartSlotCode());//起点
|
missionDataMap.put("position", agvTask.getStartSlotCode());//起点
|
||||||
missionDataMap.put("type", "NODE_POINT");//
|
missionDataMap.put("type", "NODE_POINT");//
|
||||||
missionDataMap.put("actionType", "ROLLER_RECEIVE");//
|
missionDataMap.put("actionType", "ROLLER_RECEIVE");//
|
||||||
missionDataMap.put("binCode", agvTask.getStockCode());//容器
|
missionDataMap.put("binCode", "");//容器
|
||||||
missionDataMap.put("rollerLevel", 1);//
|
missionDataMap.put("rollerLevel", 1);//
|
||||||
missionDataMap.put("deviceCode", agvTask.getSlotCode());//设备编号
|
missionDataMap.put("deviceCode", agvTask.getStartSlotCode());//设备编号
|
||||||
missionDataMap.put("actionConfirm", true);//
|
missionDataMap.put("actionConfirm", true);//
|
||||||
missionDataMap.put("passStrategy", "AUTO");//
|
missionDataMap.put("passStrategy", "AUTO");//
|
||||||
missionDataObj.putAll(missionDataMap);
|
missionDataObj.putAll(missionDataMap);
|
||||||
|
|
@ -291,10 +290,10 @@ public class KMReServiceImpl implements KMReService {
|
||||||
JSONObject missionDataObj2 = new JSONObject(new LinkedHashMap<>());
|
JSONObject missionDataObj2 = new JSONObject(new LinkedHashMap<>());
|
||||||
Map<String, Object> missionDataMap2 = new LinkedHashMap<>();
|
Map<String, Object> missionDataMap2 = new LinkedHashMap<>();
|
||||||
missionDataMap2.put("sequence", 2);//序号
|
missionDataMap2.put("sequence", 2);//序号
|
||||||
missionDataMap2.put("position", agvTask.getEndSlotCode());//起点
|
missionDataMap2.put("position", "FX001");//中转点
|
||||||
missionDataMap2.put("type", "NODE_POINT");//
|
missionDataMap2.put("type", "NODE_POINT");//
|
||||||
missionDataMap2.put("actionType", "");//
|
missionDataMap2.put("actionType", "");//
|
||||||
missionDataMap2.put("binCode", agvTask.getStockCode());//容器
|
missionDataMap2.put("binCode", "");//容器
|
||||||
missionDataMap2.put("rollerLevel", 1);//
|
missionDataMap2.put("rollerLevel", 1);//
|
||||||
missionDataMap2.put("deviceCode", "");//
|
missionDataMap2.put("deviceCode", "");//
|
||||||
missionDataMap2.put("actionConfirm", false);//
|
missionDataMap2.put("actionConfirm", false);//
|
||||||
|
|
@ -305,12 +304,12 @@ public class KMReServiceImpl implements KMReService {
|
||||||
JSONObject missionDataObj3 = new JSONObject(new LinkedHashMap<>());
|
JSONObject missionDataObj3 = new JSONObject(new LinkedHashMap<>());
|
||||||
Map<String, Object> missionDataMap3 = new LinkedHashMap<>();
|
Map<String, Object> missionDataMap3 = new LinkedHashMap<>();
|
||||||
missionDataMap3.put("sequence", 3);//序号
|
missionDataMap3.put("sequence", 3);//序号
|
||||||
missionDataMap3.put("position", agvTask.getStartSlotCode());//起点
|
missionDataMap3.put("position", agvTask.getEndSlotCode());//终点
|
||||||
missionDataMap3.put("type", "NODE_POINT");//
|
missionDataMap3.put("type", "NODE_POINT");//
|
||||||
missionDataMap3.put("actionType", "ROLLER_RECEIVE");//
|
missionDataMap3.put("actionType", "ROLLER_RECEIVE");//
|
||||||
missionDataMap3.put("binCode", agvTask.getStockCode());//容器
|
missionDataMap3.put("binCode", "");//容器
|
||||||
missionDataMap3.put("rollerLevel", 1);//
|
missionDataMap3.put("rollerLevel", 1);//
|
||||||
missionDataMap3.put("deviceCode", agvTask.getSlotCode());//
|
missionDataMap3.put("deviceCode", agvTask.getEndSlotCode());//终点
|
||||||
missionDataMap3.put("actionConfirm", true);//
|
missionDataMap3.put("actionConfirm", true);//
|
||||||
missionDataMap3.put("passStrategy", "AUTO");//
|
missionDataMap3.put("passStrategy", "AUTO");//
|
||||||
missionDataObj3.putAll(missionDataMap3);
|
missionDataObj3.putAll(missionDataMap3);
|
||||||
|
|
@ -355,9 +354,6 @@ public class KMReServiceImpl implements KMReService {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void missionStateCallback(AgvTask agvTask, String status, String containerCode) {
|
public void missionStateCallback(AgvTask agvTask, String status, String containerCode) {
|
||||||
Stock stock = stockService.findByCode(containerCode);
|
Stock stock = stockService.findByCode(containerCode);
|
||||||
if (stock == null) {
|
|
||||||
throw new BadRequestException(containerCode + "容器不存在或已失效");
|
|
||||||
}
|
|
||||||
//顶升的是起点;其它终点;
|
//顶升的是起点;其它终点;
|
||||||
Point point;
|
Point point;
|
||||||
String pointCode;
|
String pointCode;
|
||||||
|
|
@ -405,7 +401,7 @@ public class KMReServiceImpl implements KMReService {
|
||||||
Point endPoint = endPointList.get(0);
|
Point endPoint = endPointList.get(0);
|
||||||
|
|
||||||
//创建任务
|
//创建任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.FB_RETURN, stock, srcPoint, endPoint, "FORKLIFT_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.FB_RETURN, stock, srcPoint.getCode(), endPoint.getCode(), "FORKLIFT_MOVE");
|
||||||
|
|
||||||
//点位占用
|
//点位占用
|
||||||
pointService.usedPoint(endPoint);
|
pointService.usedPoint(endPoint);
|
||||||
|
|
@ -439,7 +435,7 @@ public class KMReServiceImpl implements KMReService {
|
||||||
pointService.freePoint(startPoint);
|
pointService.freePoint(startPoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
agvTask.setStockCode(stock.getCode());
|
agvTask.setStockCode(stock == null ? null : stock.getCode());
|
||||||
agvTask.setStatus(BizStatus.UP_CONTAINER);
|
agvTask.setStatus(BizStatus.UP_CONTAINER);
|
||||||
agvTaskService.update(agvTask);
|
agvTaskService.update(agvTask);
|
||||||
|
|
||||||
|
|
@ -489,6 +485,9 @@ public class KMReServiceImpl implements KMReService {
|
||||||
case BizStatus.Cp_Off_Line:
|
case BizStatus.Cp_Off_Line:
|
||||||
handleCpOffLine(endPoint, stock);//成品下线完成
|
handleCpOffLine(endPoint, stock);//成品下线完成
|
||||||
break;
|
break;
|
||||||
|
case BizStatus.Fx_Off_Line:
|
||||||
|
handleFxOffLine(agvTask);//返修下线完成
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//更新任务状态
|
//更新任务状态
|
||||||
|
|
@ -520,7 +519,7 @@ public class KMReServiceImpl implements KMReService {
|
||||||
* @param agvTask 任务
|
* @param agvTask 任务
|
||||||
*/
|
*/
|
||||||
private synchronized void handleResendTask(AgvTask agvTask) {
|
private synchronized void handleResendTask(AgvTask agvTask) {
|
||||||
List<AgvTask> repeatList = agvTaskService.findRepeat(agvTask.getStockCode(),agvTask.getStartSlotCode(),agvTask.getEndSlotCode());
|
List<AgvTask> repeatList = agvTaskService.findRepeat(agvTask.getStockCode(), agvTask.getStartSlotCode(), agvTask.getEndSlotCode());
|
||||||
if (!repeatList.isEmpty()) {
|
if (!repeatList.isEmpty()) {
|
||||||
throw new BadRequestException("任务已重新生成,请勿重复操作! ");
|
throw new BadRequestException("任务已重新生成,请勿重复操作! ");
|
||||||
}
|
}
|
||||||
|
|
@ -687,6 +686,10 @@ public class KMReServiceImpl implements KMReService {
|
||||||
stockService.usedStock(stock, endPoint, BaseStatus.USED);
|
stockService.usedStock(stock, endPoint, BaseStatus.USED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleFxOffLine(AgvTask agvTask) {
|
||||||
|
this.updateAgvTaskStatus(agvTask, null, BizStatus.FINISH);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 满车入库
|
* 满车入库
|
||||||
*
|
*
|
||||||
|
|
@ -770,7 +773,7 @@ public class KMReServiceImpl implements KMReService {
|
||||||
* @param status 状态
|
* @param status 状态
|
||||||
*/
|
*/
|
||||||
private void updateAgvTaskStatus(AgvTask agvTask, Stock stock, String status) {
|
private void updateAgvTaskStatus(AgvTask agvTask, Stock stock, String status) {
|
||||||
agvTask.setStockCode(stock.getCode());
|
agvTask.setStockCode(stock == null ? null : stock.getCode());
|
||||||
agvTask.setStatus(status);
|
agvTask.setStatus(status);
|
||||||
agvTask.setEndTime(new Timestamp(new Date().getTime()));
|
agvTask.setEndTime(new Timestamp(new Date().getTime()));
|
||||||
agvTaskService.update(agvTask);
|
agvTaskService.update(agvTask);
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,7 @@ import com.youchain.businessdata.service.AgvTaskService;
|
||||||
import com.youchain.businessdata.service.MesService;
|
import com.youchain.businessdata.service.MesService;
|
||||||
import com.youchain.exception.BadRequestException;
|
import com.youchain.exception.BadRequestException;
|
||||||
import com.youchain.modules.system.service.DeptService;
|
import com.youchain.modules.system.service.DeptService;
|
||||||
import com.youchain.utils.AreaNameDic;
|
import com.youchain.utils.*;
|
||||||
import com.youchain.utils.BaseStatus;
|
|
||||||
import com.youchain.utils.BizStatus;
|
|
||||||
import com.youchain.utils.StringUtils;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -47,6 +44,7 @@ public class MesServiceImpl implements MesService {
|
||||||
private final AgvTaskService agvTaskService;
|
private final AgvTaskService agvTaskService;
|
||||||
private final KMReServiceImpl kmReService;
|
private final KMReServiceImpl kmReService;
|
||||||
private final DeptService deptService;
|
private final DeptService deptService;
|
||||||
|
private final GtLineMap gtLineMap;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
|
@ -274,7 +272,7 @@ public class MesServiceImpl implements MesService {
|
||||||
throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!");
|
throw new BadRequestException(endPoint.getCode() + "点位有任务,请稍后再试!");
|
||||||
}
|
}
|
||||||
//创建Agv任务
|
//创建Agv任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint, endPoint, "RACK_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Up, emptyStock, srcPoint.getCode(), endPoint.getCode(), "RACK_MOVE");
|
||||||
// 更新点位状态
|
// 更新点位状态
|
||||||
pointService.usedPoint(endPoint);
|
pointService.usedPoint(endPoint);
|
||||||
//下发任务
|
//下发任务
|
||||||
|
|
@ -296,7 +294,7 @@ public class MesServiceImpl implements MesService {
|
||||||
//验证终点是否有任务
|
//验证终点是否有任务
|
||||||
if (agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Line, "RACK_MOVE")) {
|
if (agvTaskService.findByEndSlotCode(endPoint.getCode(), BizStatus.Cp_Off_Line, "RACK_MOVE")) {
|
||||||
//创建Agv任务
|
//创建Agv任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, fullStock, srcPoint, endPoint, "RACK_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, fullStock, srcPoint.getCode(), endPoint.getCode(), "RACK_MOVE");
|
||||||
// 更新点位状态
|
// 更新点位状态
|
||||||
pointService.usedPoint(endPoint);
|
pointService.usedPoint(endPoint);
|
||||||
//占用容器
|
//占用容器
|
||||||
|
|
@ -330,7 +328,7 @@ public class MesServiceImpl implements MesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建Agv任务
|
//创建Agv任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint, endPoint, "RACK_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Cp_Off_Line, stock, srcPoint.getCode(), endPoint.getCode(), "RACK_MOVE");
|
||||||
// 更新点位状态
|
// 更新点位状态
|
||||||
pointService.usedPoint(endPoint);
|
pointService.usedPoint(endPoint);
|
||||||
//占用容器
|
//占用容器
|
||||||
|
|
@ -340,15 +338,19 @@ public class MesServiceImpl implements MesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moveFxOffLine(TransTask transTask) {
|
private void moveFxOffLine(TransTask transTask) {
|
||||||
Point srcPoint = pointService.validatePoint(transTask.getPointCode());//起点
|
if (!gtLineMap.containsKey(transTask.getPointCode())) {
|
||||||
List<Point> pointList = pointService.queryPoints(null, BaseStatus.FREE, BaseStatus.BOX, AreaNameDic.FXSXQ);
|
throw new BadRequestException(transTask.getPointCode() + "点位不存在,请核实!");
|
||||||
if (pointList.isEmpty()) {
|
|
||||||
throw new BadRequestException("返修上线区没有空闲点位!");
|
|
||||||
}
|
}
|
||||||
Point endPoint = pointList.get(0);
|
List<String> points = gtLineMap.getData(transTask.getPointCode());
|
||||||
|
|
||||||
|
//验证终点是否有任务
|
||||||
|
if (!agvTaskService.findByEndSlotCode(points.get(1), BizStatus.Fx_Off_Line, "ROLLER_MOVE")) {
|
||||||
|
// 直接在条件判断为false时抛出异常,表示该点位有任务
|
||||||
|
throw new BadRequestException(points.get(1) + "点位有任务,请稍后再试!");
|
||||||
|
}
|
||||||
|
|
||||||
//生成任务
|
//生成任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Fx_Off_Line, null, srcPoint, endPoint, "ROLLER_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.Fx_Off_Line, null, transTask.getPointCode(), points.get(1), "ROLLER_MOVE");
|
||||||
agvTask.setSlotCode(srcPoint.getName());
|
|
||||||
agvTaskService.update(agvTask);
|
agvTaskService.update(agvTask);
|
||||||
|
|
||||||
//下发任务
|
//下发任务
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
List<AgvTask> agvTaskList = agvTaskService.findRepeat(task.getSrcStockCode(),task.getSrcPointCode(),task.getDstPointCode());
|
List<AgvTask> agvTaskList = agvTaskService.findRepeat(task.getSrcStockCode(),task.getSrcPointCode(),task.getDstPointCode());
|
||||||
if (agvTaskList.isEmpty()) {
|
if (agvTaskList.isEmpty()) {
|
||||||
//创建任务
|
//创建任务
|
||||||
agvTask = agvTaskService.createAgvTask(BizStatus.PICK, task.getSrcStock(), task.getSrcPoint(), task.getDstPoint(), "FORKLIFT_MOVE");
|
agvTask = agvTaskService.createAgvTask(BizStatus.PICK, task.getSrcStock(), task.getSrcPoint().getCode(), task.getDstPoint().getCode(), "FORKLIFT_MOVE");
|
||||||
|
|
||||||
//终点占用
|
//终点占用
|
||||||
pointService.usedPoint(task.getDstPoint());
|
pointService.usedPoint(task.getDstPoint());
|
||||||
|
|
@ -267,7 +267,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
|
|
||||||
|
|
||||||
//创建任务
|
//创建任务
|
||||||
agvTaskService.createAgvTask(BizStatus.CALL_RETURN, stock, srcPoint, endPoint, "RACK_MOVE");
|
agvTaskService.createAgvTask(BizStatus.CALL_RETURN, stock, srcPoint.getCode(), endPoint.getCode(), "RACK_MOVE");
|
||||||
|
|
||||||
//终点占用
|
//终点占用
|
||||||
pointService.usedPoint(endPoint);
|
pointService.usedPoint(endPoint);
|
||||||
|
|
@ -295,7 +295,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
Stock stock = pick.getStock();
|
Stock stock = pick.getStock();
|
||||||
|
|
||||||
//创建任务
|
//创建任务
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, stock, srcPoint, endPoint, "RACK_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, stock, srcPoint.getCode(), endPoint.getCode(), "RACK_MOVE");
|
||||||
agvTask.setLineSlotCode(pick.getCode());
|
agvTask.setLineSlotCode(pick.getCode());
|
||||||
agvTaskService.update(agvTask);
|
agvTaskService.update(agvTask);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.youchain.utils;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 滚筒任务路线
|
||||||
|
* 下线点 BYDGTO06、BYDGT007、BVDGTO01、BXDGT003、BYDGT005
|
||||||
|
* 上线点 BYDGTO02、BYDGTO04、BYDGTO08
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class GtLineMap {
|
||||||
|
public static final Map<String, List<String>> dataMap;
|
||||||
|
|
||||||
|
static {
|
||||||
|
dataMap = new ConcurrentHashMap<>();
|
||||||
|
// 初始化Map
|
||||||
|
dataMap.put("BYDGT006", Arrays.asList("FX001", "BYDGT002"));
|
||||||
|
dataMap.put("BYDGT007", Arrays.asList("FX001", "BYDGT002"));
|
||||||
|
dataMap.put("BVDGT001", Arrays.asList("FX001", "BYDGT002"));
|
||||||
|
dataMap.put("BXDGT003", Arrays.asList("FX001", "BYDGT004"));
|
||||||
|
dataMap.put("BYDGT005", Arrays.asList("FX001", "BYDGT008"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getData(String key) {
|
||||||
|
return dataMap.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean containsKey(String key) {
|
||||||
|
return dataMap.containsKey(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue