This commit is contained in:
zj
2026-01-04 08:39:00 +08:00
parent 88d01609d8
commit 2b6065d72f
31 changed files with 592 additions and 225 deletions

View File

@@ -134,4 +134,6 @@ public interface IApiService
AjaxResult receiveInMydoJob(ReceiveJob receiveInJob);
AjaxResult selectMydoJobByTrayCodeAndEntranceId(HashMap<String, Object> paramMap);
AjaxResult deleteAgvTray(AgvQueue agvQueue);
}

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.api.domain.InterfaceReceive;
import com.ruoyi.api.domain.RequestLog;
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackRequest;
@@ -73,15 +74,17 @@ public class ApiServiceImpl implements IApiService {
public GenAgvSchedulingTaskResponse genAgvSchedulingTask(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
RequestLog requestLog = requestLogService.getRequestLog(GEN_AGV_SCHEDULING_TASK, "生成AGV任务", JSONUtil.toJsonStr(genAgvSchedulingTaskRequest));
if ("1".equals(requestLog.getIsSuccessful())) {
return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class);
AgvQueue agvQueue = agvQueueService.selectAgvQueueByTaskCode(genAgvSchedulingTaskRequest.getTaskCode());
if(agvQueue != null){
agvQueue.setStatus("1");
agvQueueService.updateAgvQueue(agvQueue);
}
return JSON.parseObject(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class);
} else {
//todo 需要调试
GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse();
response.setCode(500);
response.setMessage("请求失败");
//todo 需要调试小车请求
response.setCode(0);
response.setMessage("模拟测试");
return response;
}
}
@@ -125,13 +128,16 @@ public class ApiServiceImpl implements IApiService {
String endPoint = param.get("endPoint");
String traySize = param.get("traySize");
String wmsTaskNo = param.get("wmsTaskNo");
AgvQueue agvQueue = createAgvQueue(startPoint, endPoint, param.get("trayCode"), param.get("taskNo"), "1", traySize, wmsTaskNo);
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
if (genAgvSchedulingTaskResponse.getCode() == 0) {
return AjaxResult.success();
GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse();
AgvQueue queue = agvQueueService.selectAgvQueueByTaskCode(param.get("taskCode"));
if(queue == null){
AgvQueue agvQueue = createAgvQueue(startPoint, endPoint, param.get("trayCode"), param.get("taskCode"), "1", traySize, wmsTaskNo);
response = requestAgvQueue(agvQueue);
if (response.getCode() == 0) {
return AjaxResult.success();
}
}
return AjaxResult.error(genAgvSchedulingTaskResponse.getMessage());
return AjaxResult.error(response.getMessage());
}
@@ -158,7 +164,7 @@ public class ApiServiceImpl implements IApiService {
String method = request.getMethod();
switch (method) {
case "applyin":
agvQueue.setStatus("1");
agvQueue.setStatus("2");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV请求取货】任务号:{}", request.getTaskCode());
break;
@@ -178,7 +184,6 @@ public class ApiServiceImpl implements IApiService {
log.info("【AGV请求放货】任务号:{}", request.getTaskCode());
break;
case "end":
agvQueue.setStatus("7");
agvQueueService.updateAgvQueue(agvQueue);
log.info("【AGV任务结束】任务号:{}", request.getTaskCode());
@@ -256,7 +261,7 @@ public class ApiServiceImpl implements IApiService {
/**
* 生成agv队列
* 生成agv队列----临时修改起终点
*
* @param code1 起点
* @param code2 终点
@@ -270,14 +275,13 @@ public class ApiServiceImpl implements IApiService {
//生成ctu执行队列
AgvQueue agvQueue = new AgvQueue();
String reqCode = IdUtil.fastSimpleUUID();
// String taskCode = IdUtil.fastSimpleUUID();
agvQueue.setReqCode(reqCode);
agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
agvQueue.setAgvType("AGV");
agvQueue.setPositionCode1(code1);
agvQueue.setPositionCode2(code2);
agvQueue.setTaskType("F01");
agvQueue.setCtnrType(traySize);
agvQueue.setTaskType("A24");
agvQueue.setCtnrType("1");
agvQueue.setCtnrCode("0");
agvQueue.setCtnrNum("0");
agvQueue.setTaskMode("0");
@@ -337,18 +341,13 @@ public class ApiServiceImpl implements IApiService {
GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest();
genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode());
genAgvSchedulingTaskRequest.setTaskMode("0");
genAgvSchedulingTaskRequest.setPriority("10");
genAgvSchedulingTaskRequest.setTaskTyp("F01");
genAgvSchedulingTaskRequest.setCtnrCode("0");
genAgvSchedulingTaskRequest.setCtnrNum("0");
genAgvSchedulingTaskRequest.setTaskMode("0");
genAgvSchedulingTaskRequest.setTaskTyp(agvQueue.getTaskType());
genAgvSchedulingTaskRequest.setCtnrTyp(agvQueue.getCtnrType());
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
genAgvSchedulingTaskRequest.setAgvTyp("AGV");
genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
List<PositionCodeData> positionCodePath = new ArrayList<>();
positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode1(), "0"));
positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode2(), "0"));
positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode1(), "05"));
positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode2(), "05"));
genAgvSchedulingTaskRequest.setPositionCodePath(positionCodePath);
return genAgvSchedulingTask(genAgvSchedulingTaskRequest);
}
@@ -378,6 +377,7 @@ public class ApiServiceImpl implements IApiService {
mydoJob.setRoadwayId(receiveOutJob.getRoadwayId());
mydoJob.setCreateTime(DateUtils.getNowDate());
mydoJob.setExecutionPhase(TASK_EP_CREATE);
mydoJob.setTraySize(receiveOutJob.getDepartmentId());
int i = mydoJobService.insertMydoJob(mydoJob);
if (i > 0) {
return AjaxResult.success();
@@ -403,6 +403,24 @@ public class ApiServiceImpl implements IApiService {
}
}
@Override
public AjaxResult deleteAgvTray(AgvQueue agvQueue) {
Map<String, String> paramMap = new HashMap<>();
paramMap.put("reqCode", IdUtil.fastSimpleUUID());
paramMap.put("ctnrTyp", agvQueue.getCtnrType());
paramMap.put("binName", agvQueue.getPositionCode2());
paramMap.put("indBind", "0");
RequestLog requestLog = requestLogService.getRequestLog(DELETE_BIN_URL, "AGV解绑容器", JSONUtil.toJsonStr(paramMap));
if ("1".equals(requestLog.getIsSuccessful())) {
log.info("站点:"+agvQueue.getPositionCode2()+"{}AGV容器解绑成功!");
return AjaxResult.success();
} else {
log.info("站点:"+agvQueue.getPositionCode2()+"{}AGV容器解绑失败!");
return AjaxResult.error();
}
}
@Override
public AjaxResult selectMydoJobByNoTrayCode(Map<String, Object> param) {

View File

@@ -131,7 +131,7 @@ public class RequestLogServiceImpl implements IRequestLogService
String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr);
InterfaceReceive bean = JSONUtil.toBean(resStr, InterfaceReceive.class);
if (bean.getCode() == 200) {
if (bean.getCode() == 0) {
requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss"));
requestLog.setResponseStatus("1");
requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS)));