PTL配送逻辑

This commit is contained in:
liuhanqing
2025-08-13 09:44:12 +08:00
parent 847926aa63
commit a0b2c9373a
7 changed files with 80 additions and 25 deletions

View File

@@ -1,6 +1,8 @@
package com.ruoyi.api.controller;
import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +42,7 @@ public class ToWcsApiController {
* @return
*/
@PostMapping("/pushAgvMoveJob")
public AjaxResult pushAgvMoveJob(@RequestBody GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
return toWcsService.pushAgvMoveJob(genAgvSchedulingTaskRequest);
public AjaxResult pushAgvMoveJob(@RequestBody AgvMoveParam agvMoveParam) {
return toWcsService.pushAgvMoveJob(agvMoveParam);
}
}

View File

@@ -105,7 +105,8 @@ public class ToWmsApiController {
/**
* ctu取完箱子反馈
* @param map{
* "lljCode"
* "portCode"
* "wmsType"
* }
* @return
*/

View File

@@ -0,0 +1,15 @@
package com.ruoyi.api.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AgvMoveParam {
private String startPoint;
private String endPoint;
private String containerCode;
private String taskNo;
}

View File

@@ -1,5 +1,6 @@
package com.ruoyi.api.service;
import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -20,7 +21,7 @@ public interface IToWcsService {
* 推送agv搬运作业
* @return
*/
AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest);
AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam);
/**
* 推送流利架入库任务

View File

@@ -2,9 +2,11 @@ package com.ruoyi.api.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWcsService;
@@ -17,6 +19,8 @@ import com.ruoyi.bas.taskNo.service.IBasTaskNoService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.device.agv.domain.AgvContainerTask;
import com.ruoyi.device.agv.service.IAgvContainerTaskService;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
@@ -28,10 +32,7 @@ import com.ruoyi.out.tagTask.service.ITagTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 作业统计 Service 实现
@@ -42,6 +43,8 @@ public class ToWcsServiceImpl implements IToWcsService {
private IRequestLogService requestLogService;
@Autowired
private IMydoJobService mydoJobService;
@Autowired
private IAgvContainerTaskService agvContainerTaskService;
public static final String PUSH_OUT_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveOutMydoJob";
public static final String PUSH_IN_MYDO_JOB = "http://localhost:8081/wcs2Wms/api/receiveInMydoJob";
@@ -72,9 +75,18 @@ public class ToWcsServiceImpl implements IToWcsService {
}
@Override
public AjaxResult pushAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
RequestLog requestLog = requestLogService.getRequestLog(PUSH_AGV_MOVE_JOB, JSONUtil.toJsonStr(genAgvSchedulingTaskRequest), "推送出库任务");
public AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam) {
agvMoveParam.setTaskNo(IdUtil.fastSimpleUUID());
RequestLog requestLog = requestLogService.getRequestLog(PUSH_AGV_MOVE_JOB, JSONUtil.toJsonStr(agvMoveParam), "推送搬运任务");
if ("1".equals(requestLog.getIsSuccessful())){
AgvContainerTask agvContainerTask = new AgvContainerTask();
agvContainerTask.setContainer(agvMoveParam.getContainerCode());
agvContainerTask.setStartPoint(agvMoveParam.getStartPoint());
agvContainerTask.setEndPoint(agvMoveParam.getEndPoint());
agvContainerTask.setStatus("0");
agvContainerTask.setTaskNo(agvMoveParam.getTaskNo());
agvContainerTask.setCreateTime(new Date());
agvContainerTaskService.insertAgvContainerTask(agvContainerTask);
return AjaxResult.success();
}
return AjaxResult.error(requestLog.getDuration());

View File

@@ -185,7 +185,7 @@ public class ToWmsServiceImpl implements IToWmsService {
//绑定料架和点位
BasContainer basContainerParam = new BasContainer();
basContainerParam.setContainerId(wmsJobRequest.getContainerCode());
basContainerParam.setPortName(wmsJobRequest.getPositionCode1());
//basContainerParam.setPortName(wmsJobRequest.getPositionCode2());
List<BasContainer> basContainers = basContainerService.selectBasContainerList(basContainerParam);
if (basContainers.isEmpty()){
log.error("没有该料架 {}", wmsJobRequest.getContainerCode());
@@ -289,19 +289,42 @@ public class ToWmsServiceImpl implements IToWmsService {
/**
* ctu取完箱子反馈
* @param map{
* "lljCode"
* "portCode"
* "wmsType"
* }
* @return
*/
@Override
public AjaxResult takeCompleted(Map<String, Object> map) {
String lljCode = Convert.toStr(map.get("lljCode"));
BasTag basTagParam = new BasTag();
basTagParam.setPickAdd(lljCode);
List<BasTag> basTags = iBasTagService.selectBasTagList(basTagParam);
for (BasTag basTag : basTags) {
basTag.setSpare2("2");
iBasTagService.updateBasTag(basTag);
String wmsType = Convert.toStr(map.get("wmsType"));
switch (wmsType){
case "1":
//流利架入库
String lljCode = Convert.toStr(map.get("portCode"));
BasTag basTagParam = new BasTag();
basTagParam.setPickAdd(lljCode);
List<BasTag> basTags = iBasTagService.selectBasTagList(basTagParam);
for (BasTag basTag : basTags) {
basTag.setSpare2("2");
iBasTagService.updateBasTag(basTag);
}
case "2":
break;
case "3":
//小车搬运料架
String startPoint = Convert.toStr(map.get("portCode"));
BasContainer basContainerParam = new BasContainer();
basContainerParam.setPortName(startPoint);
List<BasContainer> basContainers = basContainerService.selectBasContainerList(basContainerParam);
for (BasContainer basContainer : basContainers) {
basContainer.setPortName("");
basContainerService.updateBasContainer(basContainer);
}
break;
default:
throw new RuntimeException("wmsType错误");
}
return AjaxResult.success();
}

View File

@@ -8,6 +8,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.api.domain.AgvMoveParam;
import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
@@ -633,12 +634,12 @@ public class PdaServiceImp implements PdaService {
//todo 调用agv搬运接口
//使用HttpUtil post请求,参数为startPoint,endPoint,和containerCode
String taskNo = IdUtil.fastSimpleUUID();
Map<String,Object> map = new HashMap<>();
map.put("startPoint", startPoint);
map.put("endPoint", startPoint);
map.put("wmsTrayCode", basContainer1.getContainerId());
map.put("taskNo", taskNo);
String result = HttpUtil.post("http://192.168.1.100:8080/agv/api/receiveAgvMoveJob", JSONUtil.toJsonStr( map));
AgvMoveParam agvMoveParam =new AgvMoveParam();
agvMoveParam.setStartPoint(startPoint);
agvMoveParam.setEndPoint(endPoint);
agvMoveParam.setContainerCode(basContainer1.getContainerId());
agvMoveParam.setTaskNo(taskNo);
String result = HttpUtil.post("http://192.168.1.100:8080/agv/api/receiveAgvMoveJob", JSONUtil.toJsonStr( agvMoveParam));
//接口的返回结果为AjaxResult,从result中获取code
//获取code
int code = JSONObject.parseObject(result).getIntValue("code");