产线输送机

This commit is contained in:
张怡蓉
2025-09-25 09:19:46 +08:00
parent 8382e25d79
commit 345f1e00e5
8 changed files with 261 additions and 111 deletions

View File

@@ -45,7 +45,7 @@ public interface IApiService
* WMS出库任务推送
* @param receiveOutJob
*/
public AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob);
// public AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob);
/**
* 生成agv队列
@@ -56,7 +56,7 @@ public interface IApiService
* @param wmsTaskType 1-入库 2-出库 3-agv搬运
* @return
*/
public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String wmsTaskNo,String wmsTaskType);
public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String wmsTaskNo,String wmsTaskType,String traySize);
/**
* 取消AGV任务
@@ -68,10 +68,10 @@ public interface IApiService
/**
* 继续AGV任务
* @param continueTaskRequest
* @param agvQueue
* @return
*/
public ContinueTaskResponse continueTask(ContinueTaskRequest continueTaskRequest);
public AjaxResult continueTask(AgvQueue agvQueue);
/**
* 生成AGV生成任务
@@ -130,7 +130,7 @@ public interface IApiService
* WMS流利架入库任务推送
* @param receiveInJob
*/
AjaxResult receiveInMydoJob(ReceiveJob receiveInJob);
// AjaxResult receiveInMydoJob(ReceiveJob receiveInJob);
/**
@@ -159,5 +159,7 @@ public interface IApiService
*/
public AjaxResult createInMydoJob(Map<String, Object> param);
public AjaxResult selectMydoJobByNoTrayCode(Map<String, Object> param);
public AjaxResult requestEnterByEnterIdAndTrayCode();
}

View File

@@ -150,30 +150,15 @@ public class ApiServiceImpl implements IApiService {
public AjaxResult receiveAgvMoveJob(Map<String, String> param) {
String startPoint = param.get("startPoint");
String endPoint = param.get("endPoint");
//todo 待调试
WcsPort startWcsPort = wcsPortService.selectWcsPortByPortCode(startPoint);
WcsPort endWcsPort = wcsPortService.selectWcsPortByPortCode(endPoint);
if (ObjUtil.isNull(startWcsPort)){
return AjaxResult.error("起始点不存在");
}
if (ObjUtil.isNull(endWcsPort)){
return AjaxResult.error("结束点不存在");
}
if ("1".equals(startWcsPort.getStatus()) && "0".equals(endWcsPort.getStatus())){
AgvQueue agvQueue = createAgvQueue(startWcsPort.getSpare2(),endWcsPort.getSpare2(), param.get("containerCode"), param.get("taskNo"), "3");
String traySize = param.get("traySize");
AgvQueue agvQueue = createAgvQueue(startPoint,endPoint, param.get("trayCode"), param.get("taskNo"), "1",traySize);
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
if (genAgvSchedulingTaskResponse.getCode() == 0) {
return AjaxResult.success();
}
return AjaxResult.error(genAgvSchedulingTaskResponse.getMessage());
}
if ("0".equals(startWcsPort.getStatus())){
return AjaxResult.error("起始点位无容器");
}
if ("1".equals(endWcsPort.getStatus())){
return AjaxResult.error("目标点位有容器");
}
return AjaxResult.error();
}
/**
@@ -223,6 +208,40 @@ public class ApiServiceImpl implements IApiService {
* @param request
*/
private void agvCallbackInfo(AgvCallbackRequest request) {
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(request.getTaskCode());
if (agvQueue != null ) {
String method = request.getMethod();
switch (method) {
case "applyin":
agvQueue.setStatus("1");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV请求取货】任务号:{}", request.getTaskCode());
break;
case "start":
agvQueue.setStatus("3");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV任务开始】任务号:{}", request.getTaskCode());
break;
case "outbin":
agvQueue.setStatus("4");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV走出储位】任务号:{}", request.getTaskCode());
break;
case "applyout":
agvQueue.setStatus("5");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV请求放货】任务号:{}", request.getTaskCode());
break;
case "end":
agvQueue.setStatus("7");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV任务结束】任务号:{}", request.getTaskCode());
break;
default:
log.info("未知方法");
}
}
}
@@ -234,30 +253,30 @@ public class ApiServiceImpl implements IApiService {
* @param receiveOutJob
* @return
*/
@Override
public AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob) {
AgvQueue agvQueue = createAgvQueue(receiveOutJob.getCargoSpaceId(),receiveOutJob.getExitId(),receiveOutJob.getTrayCode(),receiveOutJob.getTaskNo(),"2");
if (agvQueue != null){
return AjaxResult.success();
}else {
return AjaxResult.error("生成agv任务失败");
}
}
// @Override
// public AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob) {
// AgvQueue agvQueue = createAgvQueue(receiveOutJob.getCargoSpaceId(),receiveOutJob.getExitId(),receiveOutJob.getTrayCode(),receiveOutJob.getTaskNo(),"2");
// if (agvQueue != null){
// return AjaxResult.success();
// }else {
// return AjaxResult.error("生成agv任务失败");
// }
// }
/**
* 接收流利架空料箱入库任务
*
* @param receiveInJob
* @return
*/
@Override
public AjaxResult receiveInMydoJob(ReceiveJob receiveInJob) {
AgvQueue agvQueue = createAgvQueue(receiveInJob.getEntranceId(),receiveInJob.getCargoSpaceId(),receiveInJob.getTrayCode(),receiveInJob.getTaskNo(),"1");
if (agvQueue != null){
return AjaxResult.success();
}else {
return AjaxResult.error("生成agv任务失败");
}
}
// @Override
// public AjaxResult receiveInMydoJob(ReceiveJob receiveInJob) {
// AgvQueue agvQueue = createAgvQueue(receiveInJob.getEntranceId(),receiveInJob.getCargoSpaceId(),receiveInJob.getTrayCode(),receiveInJob.getTaskNo(),"1");
// if (agvQueue != null){
// return AjaxResult.success();
// }else {
// return AjaxResult.error("生成agv任务失败");
// }
// }
/**
* 取消ctu任务
@@ -308,18 +327,18 @@ public class ApiServiceImpl implements IApiService {
* @return
*/
@Override
public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String wmsTaskNo,String wmsTaskType) {
public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String wmsTaskNo,String wmsTaskType,String traySize) {
//生成ctu执行队列
AgvQueue agvQueue = new AgvQueue();
String reqCode = IdUtil.fastSimpleUUID();
String taskCode = IdUtil.fastSimpleUUID();
agvQueue.setReqCode(reqCode);
agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
agvQueue.setAgvType("CTU");
agvQueue.setAgvType("AGV");
agvQueue.setPositionCode1(code1);
agvQueue.setPositionCode2(code2);
agvQueue.setTaskType("F01");
agvQueue.setCtnrType("0");
agvQueue.setCtnrType(traySize);
agvQueue.setCtnrCode("0");
agvQueue.setCtnrNum("0");
agvQueue.setTaskMode("0");
@@ -348,13 +367,22 @@ public class ApiServiceImpl implements IApiService {
/**
* 继续agv任务
* @param continueTaskRequest
* @param agvQueue
* @return
*/
@Override
public ContinueTaskResponse continueTask(ContinueTaskRequest continueTaskRequest) {
public AjaxResult continueTask(AgvQueue agvQueue) {
ContinueTaskRequest continueTaskRequest = new ContinueTaskRequest();
continueTaskRequest.setReqCode(IdUtil.fastSimpleUUID());
continueTaskRequest.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
continueTaskRequest.setTaskCode(agvQueue.getTaskCode());
RequestLog requestLog = requestLogService.getRequestLog(CONTINUE_TASK_URL, "继续执行任务", JSONUtil.toJsonStr(continueTaskRequest));
return BeanUtil.toBean(requestLog.getResponseBody(), ContinueTaskResponse.class);
if ("1".equals(requestLog.getIsSuccessful())){
return AjaxResult.success();
}else{
return AjaxResult.error();
}
}
@@ -376,7 +404,7 @@ public class ApiServiceImpl implements IApiService {
genAgvSchedulingTaskRequest.setCtnrNum("0");
genAgvSchedulingTaskRequest.setTaskMode("0");
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getWmsTaskNo());
genAgvSchedulingTaskRequest.setAgvTyp("CTU");
genAgvSchedulingTaskRequest.setAgvTyp("AGV");
genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
List<PositionCodeData> positionCodePath = new ArrayList<>();
@@ -400,4 +428,15 @@ public class ApiServiceImpl implements IApiService {
public AjaxResult requestEnterByEnterIdAndTrayCode() {
return null;
}
@Override
public AjaxResult selectMydoJobByNoTrayCode(Map<String, Object> param) {
RequestLog requestLog = requestLogService.getRequestLog(REQUEST_MYDO_JOB_URL, "入库请求补码作业", JSONUtil.toJsonStr(param));
if ("1".equals(requestLog.getIsSuccessful())) {
return AjaxResult.success();
} else {
return AjaxResult.error();
}
}
}