臂式ctu入库 流程测试

This commit is contained in:
liuhanqing
2025-07-16 16:02:25 +08:00
parent 570509f61c
commit 5cebe0369c
11 changed files with 108 additions and 97 deletions

View File

@@ -40,9 +40,9 @@ public class AgvController extends BaseController {
* @param mydoJob
* @return
*/
@PostMapping("/pushOutMydoJob")
public AjaxResult PushOutMydoJob(@RequestBody MydoJob mydoJob) {
return apiService.PushOutMydoJob(mydoJob);
@PostMapping("/receiveOutMydoJob")
public AjaxResult receiveOutMydoJob(@RequestBody MydoJob mydoJob) {
return apiService.receiveOutMydoJob(mydoJob);
}
/**
@@ -50,9 +50,9 @@ public class AgvController extends BaseController {
* @param genAgvSchedulingTaskRequest
* @return
*/
@PostMapping("/agvMoveJob")
public AjaxResult agvMoveJob(@RequestBody GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
return apiService.agvMoveJob(genAgvSchedulingTaskRequest);
@PostMapping("/receiveAgvMoveJob")
public AjaxResult receiveAgvMoveJob(@RequestBody GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
return apiService.receiveAgvMoveJob(genAgvSchedulingTaskRequest);
}
}

View File

@@ -23,7 +23,7 @@ public class GenAgvSchedulingTaskRequest {
* 请求时间
* 格式: “yyyy-MM-dd HH:mm:ss”
*/
private String reqTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).toString();
private String reqTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
/**
* 客户端编号
* 客户端编号,如PDA,HCWMS等

View File

@@ -46,7 +46,7 @@ public interface IApiService
* WMS出库任务推送
* @param mydoJob
*/
public AjaxResult PushOutMydoJob(MydoJob mydoJob);
public AjaxResult receiveOutMydoJob(MydoJob mydoJob);
/**
* 取消AGV任务
@@ -83,7 +83,7 @@ public interface IApiService
* @param genAgvSchedulingTaskRequest
* @return
*/
AjaxResult agvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest);
AjaxResult receiveAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest);
RequestLog finishMydoJob(String agvFinishUrl, String point, Map<String, Object> param);
}

View File

@@ -31,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -54,10 +55,15 @@ public class ApiServiceImpl implements IApiService {
@Override
public MydoJob requestEnter(MydoJob mydoJob) {
RequestLog requestLog = requestLogService.getRequestLog(GET_MYDOJOB_URL, "请求入库", JSONUtil.toJsonStr(mydoJob));
String responseBody = requestLog.getResponseBody();
InterfaceReceive bean = JSONUtil.toBean(responseBody, InterfaceReceive.class);
return JSONUtil.toBean(JSONUtil.toJsonStr(bean.getData()), MydoJob.class);
RequestLog requestLog = requestLogService.getRequestLog(REQUEST_ENTER, "请求入库", JSONUtil.toJsonStr(mydoJob));
if ("1".equals(requestLog.getIsSuccessful())) {
String responseBody = requestLog.getResponseBody();
InterfaceReceive bean = JSONUtil.toBean(responseBody, InterfaceReceive.class);
return JSONUtil.toBean(JSONUtil.toJsonStr(bean.getData()), MydoJob.class);
} else {
return null;
}
}
@Override
@@ -78,7 +84,7 @@ public class ApiServiceImpl implements IApiService {
@Transactional(rollbackFor = Exception.class)
public AgvCallbackResponse agvCallback(AgvCallbackRequest request) {
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(request), "AGV任务执行通知");
requestLog.setRequestUrl("http://10.214.18.61:8089/external/log/outStockJob");
//requestLog.setRequestUrl("http://10.214.18.61:8089/external/log/outStockJob");
AgvCallbackResponse response = new AgvCallbackResponse(0, "成功", "");
try {
agvCallbackInfo(request);
@@ -97,12 +103,12 @@ public class ApiServiceImpl implements IApiService {
}
@Override
public AjaxResult agvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
public AjaxResult receiveAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
//todo 生成agvQueue队列
AgvQueue agvQueue = new AgvQueue();
agvQueueService.insertAgvQueue(agvQueue);
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = genAgvSchedulingTask(genAgvSchedulingTaskRequest);
if (genAgvSchedulingTaskResponse.getCode() == 0){
if (genAgvSchedulingTaskResponse.getCode() == 0) {
return AjaxResult.success();
}
return AjaxResult.error(genAgvSchedulingTaskResponse.getMessage());
@@ -141,55 +147,52 @@ public class ApiServiceImpl implements IApiService {
Map<String, Object> param = new HashMap<>();
param.put("wmsType", agvQueue.getWmsTaskType());
if ("1".equals(agvQueue.getWmsTaskType()) || "2".equals(agvQueue.getWmsTaskType())){
//通知wms 任务结束
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTaskNo(agvQueue.getWmsTaskNo());
mydoJobParam.setTrayCode(agvQueue.getWmsTraycode());
List<MydoJob> mydoJobList = getMydoJobList(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobList)) {
MydoJob mydoJob = mydoJobList.get(0);
param.put("taskNo", agvQueue.getWmsTaskNo());
param.put("trayCode", agvQueue.getWmsTraycode());
if (Convert.toInt(mydoJob.getInOrOut()) < 20) {
//入库任务 暂无特殊逻辑
RequestLog requestLog = requestLogService.getRequestLog(AGV_FINISH_URL, "agv任务完成", JSONUtil.toJsonStr(param));
if ("1".equals(requestLog.getIsSuccessful())){
//插入历史
agvQueueService.insertHistory(agvQueue.getReqCode());
//删除队列
agvQueueService.deleteAgvQueueByReqCode(agvQueue.getReqCode());
log.info("【AGV入库任务结束】任务号:{}", taskCode);
}
} else {
//写入对应的plc 任务号
DeviceSsj deviceSsj = PlcRead.deviceMap.get(mydoJob.getExitId());
if (ObjUtil.isNotNull(deviceSsj)){
SendData rwh = new SendData(Tools.DINT, mydoJob.getTaskNo());
byte[] bytes = Tools.sendData(rwh);
//写入信息 取货完成
int i = PlcRead.WriteToSSJ(deviceSsj.getPlcDbWriteAddress(), bytes);
if (i==1){
//插入历史
agvQueueService.insertHistory(agvQueue.getReqCode());
//删除队列
agvQueueService.deleteAgvQueueByReqCode(agvQueue.getReqCode());
log.info("【AGV出库任务结束】任务号:{}", taskCode);
}
}
}
} else {
log.info("【AGV任务结束】任务号:{},wms不存在对应的作业", taskCode);
if ("1".equals(agvQueue.getWmsTaskType())) {
param.put("taskNo", agvQueue.getWmsTaskNo());
param.put("trayCode", agvQueue.getWmsTraycode());
//入库任务 暂无特殊逻辑
RequestLog requestLog = requestLogService.getRequestLog(AGV_FINISH_URL, "agv任务完成", JSONUtil.toJsonStr(param));
if ("1".equals(requestLog.getIsSuccessful())) {
agvQueue.setFinishTime(DateUtil.formatDateTime(new Date()));
agvQueueService.updateAgvQueue(agvQueue);
//插入历史
agvQueueService.insertHistory(agvQueue.getReqCode());
//删除队列
agvQueueService.deleteAgvQueueByReqCode(agvQueue.getReqCode());
log.info("【AGV入库任务结束】任务号:{}", taskCode);
}
}else if ("3".equals(agvQueue.getWmsTaskType())){
} else if ("2".equals(agvQueue.getWmsTaskType())) {
//通知wms 任务结束
param.put("taskNo", agvQueue.getWmsTaskNo());
param.put("trayCode", agvQueue.getWmsTraycode());
//写入对应的plc 任务号
DeviceSsj deviceSsj = PlcRead.deviceMap.get(agvQueue.getPositionCode2());
if (ObjUtil.isNotNull(deviceSsj)) {
SendData rwh = new SendData(Tools.DINT, agvQueue.getWmsTaskNo());
byte[] bytes = Tools.sendData(rwh);
//写入信息 取货完成
int i = PlcRead.WriteToSSJ(deviceSsj.getPlcDbWriteAddress(), bytes);
if (i == 1) {
agvQueue.setFinishTime(DateUtil.formatDateTime(new Date()));
agvQueueService.updateAgvQueue(agvQueue);
//插入历史
agvQueueService.insertHistory(agvQueue.getReqCode());
//删除队列
agvQueueService.deleteAgvQueueByReqCode(agvQueue.getReqCode());
log.info("【AGV出库任务结束】任务号:{}", taskCode);
}
}
} else if ("3".equals(agvQueue.getWmsTaskType())) {
param.put("positionCode1", agvQueue.getPositionCode1());
param.put("positionCode2", agvQueue.getPositionCode2());
param.put("containerCode", agvQueue.getWmsTraycode());
//绑定点位和料架
RequestLog requestLog = requestLogService.getRequestLog(AGV_FINISH_URL, "agv任务完成", JSONUtil.toJsonStr(param));
if ("1".equals(requestLog.getIsSuccessful())){
if ("1".equals(requestLog.getIsSuccessful())) {
//插入历史
agvQueueService.insertHistory(agvQueue.getReqCode());
//删除队列
@@ -226,7 +229,7 @@ public class ApiServiceImpl implements IApiService {
}
@Override
public AjaxResult PushOutMydoJob(MydoJob mydoJob) {
public AjaxResult receiveOutMydoJob(MydoJob mydoJob) {
AgvQueue agvQueue = new AgvQueue();
String reqCode = IdUtil.fastSimpleUUID();
agvQueue.setReqCode(reqCode);

View File

@@ -108,7 +108,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return requestLog
*/
@Override
public RequestLog getRequestLog(String url, String param, String endPoint) {
public RequestLog getRequestLog(String url, String endPoint,String param) {
RequestLog requestLog = new RequestLog();
Date requestTime = new Date();
requestLog.setRequestTime(DateUtil.format(requestTime, "yyyy-MM-dd HH:mm:ss"));
@@ -124,7 +124,7 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setResponseBody(resStr);
InterfaceReceive bean = JSONUtil.toBean(resStr, InterfaceReceive.class);
Date responseTime =new Date();
if (bean.getCode() == 0) {
if (bean.getCode() == 200) {
requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss"));
requestLog.setResponseStatus("1");
requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS)));