统一agv生成代码 agv请求代码
This commit is contained in:
@@ -11,6 +11,7 @@ import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRequest
|
|||||||
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse;
|
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse;
|
||||||
import com.ruoyi.api.domain.wcs2wms.MydoJob;
|
import com.ruoyi.api.domain.wcs2wms.MydoJob;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.device.agv.domain.AgvQueue;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -39,11 +40,22 @@ public interface IApiService
|
|||||||
public AjaxResult receiveOutMydoJob(MydoJob mydoJob);
|
public AjaxResult receiveOutMydoJob(MydoJob mydoJob);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消AGV任务
|
* 生成agv队列
|
||||||
*
|
* @param code1 起点
|
||||||
* @param cancelTaskRequest
|
* @param code2 终点
|
||||||
|
* @param wmsTrayCode 容器码 托盘料箱码/容器码
|
||||||
|
* @param wmsTaskNo mydojob 任务
|
||||||
|
* @param wmsTaskType 1-入库 2-出库 3-agv搬运
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String wmsTaskNo,String wmsTaskType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消AGV任务
|
||||||
|
*
|
||||||
|
* @param cancelTaskRequest
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public CancelTaskResponse cancelTask(CancelTaskRequest cancelTaskRequest);
|
public CancelTaskResponse cancelTask(CancelTaskRequest cancelTaskRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -91,4 +103,11 @@ public interface IApiService
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public AjaxResult sendOutMydoJobStatus(Map<String, Object> param) ;
|
public AjaxResult sendOutMydoJobStatus(Map<String, Object> param) ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下发agv任务
|
||||||
|
* @param agvQueue
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import com.ruoyi.api.domain.agv.continueTask.ContinueTaskRequest;
|
|||||||
import com.ruoyi.api.domain.agv.continueTask.ContinueTaskResponse;
|
import com.ruoyi.api.domain.agv.continueTask.ContinueTaskResponse;
|
||||||
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRequest;
|
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRequest;
|
||||||
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse;
|
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse;
|
||||||
|
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.PositionCodeData;
|
||||||
import com.ruoyi.api.domain.wcs2wms.MydoJob;
|
import com.ruoyi.api.domain.wcs2wms.MydoJob;
|
||||||
import com.ruoyi.api.service.IApiService;
|
import com.ruoyi.api.service.IApiService;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
@@ -27,14 +28,12 @@ import com.ruoyi.schedule.plcRead.ssj.PlcRead;
|
|||||||
import com.ruoyi.schedule.plcRead.ssj.domain.SendData;
|
import com.ruoyi.schedule.plcRead.ssj.domain.SendData;
|
||||||
import com.ruoyi.schedule.plcRead.util.Tools;
|
import com.ruoyi.schedule.plcRead.util.Tools;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static com.ruoyi.common.Constant.*;
|
import static com.ruoyi.common.Constant.*;
|
||||||
|
|
||||||
@@ -73,15 +72,16 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发agv编码
|
* 下发agv编码
|
||||||
|
*
|
||||||
* @param genAgvSchedulingTaskRequest
|
* @param genAgvSchedulingTaskRequest
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public GenAgvSchedulingTaskResponse genAgvSchedulingTask(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
|
public GenAgvSchedulingTaskResponse genAgvSchedulingTask(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
|
||||||
RequestLog requestLog = requestLogService.getRequestLog(GEN_AGV_SCHEDULING_TASK, "生成AGV任务", JSONUtil.toJsonStr(genAgvSchedulingTaskRequest));
|
RequestLog requestLog = requestLogService.getRequestLog(GEN_AGV_SCHEDULING_TASK, "生成AGV任务", JSONUtil.toJsonStr(genAgvSchedulingTaskRequest));
|
||||||
if("1".equals(requestLog.getIsSuccessful())){
|
if ("1".equals(requestLog.getIsSuccessful())) {
|
||||||
return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class);
|
return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class);
|
||||||
}else {
|
} else {
|
||||||
GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse();
|
GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse();
|
||||||
response.setCode(500);
|
response.setCode(500);
|
||||||
response.setMessage("请求失败");
|
response.setMessage("请求失败");
|
||||||
@@ -122,10 +122,9 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult receiveAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
|
public AjaxResult receiveAgvMoveJob(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) {
|
||||||
//todo 生成agvQueue队列
|
List<PositionCodeData> positionCodePath = genAgvSchedulingTaskRequest.getPositionCodePath();
|
||||||
AgvQueue agvQueue = new AgvQueue();
|
AgvQueue agvQueue = createAgvQueue(positionCodePath.get(0).getPositionCode(), positionCodePath.get(1).getPositionCode(), "", "", "3");
|
||||||
agvQueueService.insertAgvQueue(agvQueue);
|
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
|
||||||
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = genAgvSchedulingTask(genAgvSchedulingTaskRequest);
|
|
||||||
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
@@ -282,27 +281,48 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult receiveOutMydoJob(MydoJob mydoJob) {
|
public AjaxResult receiveOutMydoJob(MydoJob mydoJob) {
|
||||||
|
AgvQueue agvQueue = createAgvQueue(mydoJob.getCargoSpaceId(),mydoJob.getExitId(),mydoJob.getTrayCode(),mydoJob.getTaskNo(),"2");
|
||||||
|
if (agvQueue != null){
|
||||||
|
return AjaxResult.success(agvQueue);
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("生成agv任务失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成agv队列
|
||||||
|
* @param code1 起点
|
||||||
|
* @param code2 终点
|
||||||
|
* @param wmsTrayCode 容器码 托盘料箱码/容器码
|
||||||
|
* @param wmsTaskNo mydojob 任务
|
||||||
|
* @param wmsTaskType 1-入库 2-出库 3-agv搬运
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String wmsTaskNo,String wmsTaskType) {
|
||||||
|
//生成ctu执行队列
|
||||||
AgvQueue agvQueue = new AgvQueue();
|
AgvQueue agvQueue = new AgvQueue();
|
||||||
String reqCode = IdUtil.fastSimpleUUID();
|
String reqCode = IdUtil.fastSimpleUUID();
|
||||||
String taskCode = IdUtil.fastSimpleUUID();
|
String taskCode = IdUtil.fastSimpleUUID();
|
||||||
agvQueue.setReqCode(reqCode);
|
agvQueue.setReqCode(reqCode);
|
||||||
agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
|
agvQueue.setReqTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
agvQueue.setAgvType("CTU");
|
agvQueue.setAgvType("CTU");
|
||||||
agvQueue.setPositionCode1(mydoJob.getCargoSpaceId());
|
agvQueue.setPositionCode1(code1);
|
||||||
agvQueue.setPositionCode2(mydoJob.getExitId());
|
agvQueue.setPositionCode2(code2);
|
||||||
agvQueue.setTaskCode(taskCode);
|
agvQueue.setTaskType("F01");
|
||||||
agvQueue.setWmsTaskType("2");
|
agvQueue.setCtnrType("0");
|
||||||
agvQueue.setWmsTraycode(mydoJob.getTrayCode());
|
agvQueue.setCtnrCode("0");
|
||||||
agvQueue.setWmsTaskNo(mydoJob.getTaskNo());
|
agvQueue.setCtnrNum("0");
|
||||||
|
agvQueue.setTaskMode("0");
|
||||||
|
agvQueue.setPriority("10");
|
||||||
|
agvQueue.setRequest("0");
|
||||||
|
agvQueue.setWmsTraycode(wmsTrayCode);
|
||||||
|
agvQueue.setWmsTaskNo(wmsTaskNo);
|
||||||
agvQueue.setStatus("0");
|
agvQueue.setStatus("0");
|
||||||
int i = agvQueueService.insertAgvQueue(agvQueue);
|
agvQueue.setTaskCode(taskCode);
|
||||||
if (i > 0) {
|
agvQueue.setWmsTaskType(wmsTaskType);
|
||||||
log.info("向AGV下任务成功");
|
agvQueueService.insertAgvQueue(agvQueue);
|
||||||
return AjaxResult.success("向AGV下任务成功");
|
return agvQueue;
|
||||||
} else {
|
|
||||||
log.info("向AGV下任务失败");
|
|
||||||
return AjaxResult.error("向AGV下任务失败");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -328,4 +348,33 @@ public class ApiServiceImpl implements IApiService {
|
|||||||
return BeanUtil.toBean(requestLog.getResponseBody(), ContinueTaskResponse.class);
|
return BeanUtil.toBean(requestLog.getResponseBody(), ContinueTaskResponse.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求海康生成agv任务,并修改wms任务状态
|
||||||
|
*
|
||||||
|
* @param agvQueue
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) {
|
||||||
|
//todo 请求ctu
|
||||||
|
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.setTaskCode(agvQueue.getWmsTaskNo());
|
||||||
|
genAgvSchedulingTaskRequest.setAgvTyp("CTU");
|
||||||
|
genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
|
||||||
|
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
|
||||||
|
List<PositionCodeData> positionCodePath = new ArrayList<>();
|
||||||
|
positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode1(), "0"));
|
||||||
|
positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode2(), "0"));
|
||||||
|
genAgvSchedulingTaskRequest.setPositionCodePath(positionCodePath);
|
||||||
|
return genAgvSchedulingTask(genAgvSchedulingTaskRequest);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,9 +123,9 @@ public class BsInSsjThread implements Runnable {
|
|||||||
MydoJob mydoJob = apiService.requestEnter(mydoJobParam);
|
MydoJob mydoJob = apiService.requestEnter(mydoJobParam);
|
||||||
if (ObjUtil.isNotNull(mydoJob)) {
|
if (ObjUtil.isNotNull(mydoJob)) {
|
||||||
//生成agv队列
|
//生成agv队列
|
||||||
AgvQueue agvQueue = createAgvQueue(lljCode, mydoJob);
|
AgvQueue agvQueue = apiService.createAgvQueue(lljCode, mydoJob.getCargoSpaceId(),mydoJob.getTrayCode(),mydoJob.getTaskNo(),"1");
|
||||||
//请求任务生成
|
//请求任务生成
|
||||||
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
|
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = apiService.requestAgvQueue(agvQueue);
|
||||||
//修改wms任务状态
|
//修改wms任务状态
|
||||||
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
||||||
//修改ctu执行状态
|
//修改ctu执行状态
|
||||||
@@ -169,9 +169,9 @@ public class BsInSsjThread implements Runnable {
|
|||||||
if (ObjUtil.isNotNull(mydoJob)) {
|
if (ObjUtil.isNotNull(mydoJob)) {
|
||||||
|
|
||||||
//生成agv队列
|
//生成agv队列
|
||||||
AgvQueue agvQueue = createAgvQueue(inSsjDevice.getDeviceCode(), mydoJob);
|
AgvQueue agvQueue = apiService.createAgvQueue(inSsjDevice.getName(), mydoJob.getCargoSpaceId(),mydoJob.getTrayCode(),mydoJob.getTaskNo(),"1");
|
||||||
//请求任务生成
|
//请求任务生成
|
||||||
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue( agvQueue);
|
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = apiService.requestAgvQueue( agvQueue);
|
||||||
//修改wms任务状态
|
//修改wms任务状态
|
||||||
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
||||||
//修改ctu执行状态
|
//修改ctu执行状态
|
||||||
@@ -186,7 +186,7 @@ public class BsInSsjThread implements Runnable {
|
|||||||
AgvQueue agvQueue = agvQueues.get(0);
|
AgvQueue agvQueue = agvQueues.get(0);
|
||||||
if ("0".equals(agvQueue.getStatus())){
|
if ("0".equals(agvQueue.getStatus())){
|
||||||
//请求任务生成
|
//请求任务生成
|
||||||
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
|
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = apiService.requestAgvQueue(agvQueue);
|
||||||
//修改wms任务状态
|
//修改wms任务状态
|
||||||
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
||||||
//修改ctu执行状态
|
//修改ctu执行状态
|
||||||
@@ -199,59 +199,7 @@ public class BsInSsjThread implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成入库AGV队列
|
|
||||||
*
|
|
||||||
* @param positionCode1
|
|
||||||
* @param mydoJob
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private AgvQueue createAgvQueue(String positionCode1, MydoJob mydoJob) {
|
|
||||||
//生成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.setPositionCode1(positionCode1);
|
|
||||||
agvQueue.setPositionCode2(mydoJob.getCargoSpaceId());
|
|
||||||
agvQueue.setTaskType("F01");
|
|
||||||
agvQueue.setCtnrType("0");
|
|
||||||
agvQueue.setCtnrCode("0");
|
|
||||||
agvQueue.setCtnrNum("0");
|
|
||||||
agvQueue.setTaskMode("0");
|
|
||||||
agvQueue.setPriority("10");
|
|
||||||
agvQueue.setRequest("0");
|
|
||||||
agvQueue.setWmsTraycode(mydoJob.getTrayCode());
|
|
||||||
agvQueue.setWmsTaskNo(mydoJob.getTaskNo());
|
|
||||||
agvQueue.setStatus("0");
|
|
||||||
agvQueue.setTaskCode(taskCode);
|
|
||||||
agvQueue.setWmsTaskType("1");
|
|
||||||
agvQueueService.insertAgvQueue(agvQueue);
|
|
||||||
return agvQueue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 请求海康生成agv任务,并修改wms任务状态
|
|
||||||
*
|
|
||||||
* @param agvQueue
|
|
||||||
*/
|
|
||||||
private GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) {
|
|
||||||
//todo 请求ctu
|
|
||||||
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.setTaskCode(agvQueue.getWmsTaskNo());
|
|
||||||
genAgvSchedulingTaskRequest.setAgvTyp("CTU");
|
|
||||||
genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
|
|
||||||
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
|
|
||||||
|
|
||||||
return apiService.genAgvSchedulingTask(genAgvSchedulingTaskRequest);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ public class BsOutSsjThread implements Runnable {
|
|||||||
List<AgvQueue> agvQueueList = agvQueueService.selectAgvQueueList(agvQueue);
|
List<AgvQueue> agvQueueList = agvQueueService.selectAgvQueueList(agvQueue);
|
||||||
if (CollUtil.isNotEmpty(agvQueueList)){
|
if (CollUtil.isNotEmpty(agvQueueList)){
|
||||||
for (AgvQueue queue : agvQueueList) {
|
for (AgvQueue queue : agvQueueList) {
|
||||||
requestAgvQueue(queue);
|
apiService.requestAgvQueue(queue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ public class BsOutSsjThread implements Runnable {
|
|||||||
BasFluentFrame basFluentFrame = basFluentFrameService.selectBasFluentFrameOrderByAllotNum(queue.getPositionCode2());
|
BasFluentFrame basFluentFrame = basFluentFrameService.selectBasFluentFrameOrderByAllotNum(queue.getPositionCode2());
|
||||||
queue.setPositionCode2(basFluentFrame.getLocationName());
|
queue.setPositionCode2(basFluentFrame.getLocationName());
|
||||||
agvQueueService.updateAgvQueue(queue);
|
agvQueueService.updateAgvQueue(queue);
|
||||||
requestAgvQueue(queue);
|
apiService.requestAgvQueue(queue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,18 @@
|
|||||||
package com.ruoyi.schedule.scheduleTask.ssj.js;
|
package com.ruoyi.schedule.scheduleTask.ssj.js;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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.ObjUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
|
||||||
import com.ruoyi.device.agv.domain.AgvQueue;
|
|
||||||
import com.ruoyi.device.agv.service.IAgvQueueService;
|
|
||||||
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRequest;
|
|
||||||
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse;
|
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse;
|
||||||
import com.ruoyi.api.domain.wcs2wms.MydoJob;
|
import com.ruoyi.api.domain.wcs2wms.MydoJob;
|
||||||
import com.ruoyi.api.service.IApiService;
|
import com.ruoyi.api.service.IApiService;
|
||||||
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
|
import com.ruoyi.device.agv.domain.AgvQueue;
|
||||||
|
import com.ruoyi.device.agv.service.IAgvQueueService;
|
||||||
import com.ruoyi.device.ssj.domain.DeviceSsj;
|
import com.ruoyi.device.ssj.domain.DeviceSsj;
|
||||||
import com.ruoyi.schedule.plcRead.ssj.PlcRead;
|
import com.ruoyi.schedule.plcRead.ssj.PlcRead;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -105,9 +99,9 @@ public class JsInSsjThread implements Runnable {
|
|||||||
if (ObjUtil.isNotNull(mydoJob)) {
|
if (ObjUtil.isNotNull(mydoJob)) {
|
||||||
|
|
||||||
//生成agv队列
|
//生成agv队列
|
||||||
AgvQueue agvQueue = createAgvQueue(inSsjDevice.getDeviceCode(), mydoJob);
|
AgvQueue agvQueue = apiService.createAgvQueue(inSsjDevice.getName(), mydoJob.getCargoSpaceId(),mydoJob.getTrayCode(),mydoJob.getTaskNo(),"1");
|
||||||
//请求任务生成
|
//请求任务生成
|
||||||
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
|
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = apiService.requestAgvQueue(agvQueue);
|
||||||
//修改wms任务状态
|
//修改wms任务状态
|
||||||
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
||||||
//修改ctu执行状态
|
//修改ctu执行状态
|
||||||
@@ -122,7 +116,7 @@ public class JsInSsjThread implements Runnable {
|
|||||||
AgvQueue agvQueue = agvQueues.get(0);
|
AgvQueue agvQueue = agvQueues.get(0);
|
||||||
if ("0".equals(agvQueue.getStatus())){
|
if ("0".equals(agvQueue.getStatus())){
|
||||||
//请求任务生成
|
//请求任务生成
|
||||||
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue);
|
GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = apiService.requestAgvQueue(agvQueue);
|
||||||
//修改wms任务状态
|
//修改wms任务状态
|
||||||
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
if (genAgvSchedulingTaskResponse.getCode() == 0) {
|
||||||
//修改ctu执行状态
|
//修改ctu执行状态
|
||||||
@@ -135,59 +129,4 @@ public class JsInSsjThread implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成入库AGV队列
|
|
||||||
*
|
|
||||||
* @param positionCode1
|
|
||||||
* @param mydoJob
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private AgvQueue createAgvQueue(String positionCode1, MydoJob mydoJob) {
|
|
||||||
//生成ctu执行队列
|
|
||||||
//生成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.setPositionCode1(positionCode1);
|
|
||||||
agvQueue.setPositionCode2(mydoJob.getCargoSpaceId());
|
|
||||||
agvQueue.setTaskType("F01");
|
|
||||||
agvQueue.setCtnrType("0");
|
|
||||||
agvQueue.setCtnrCode("0");
|
|
||||||
agvQueue.setCtnrNum("0");
|
|
||||||
agvQueue.setTaskMode("0");
|
|
||||||
agvQueue.setPriority("10");
|
|
||||||
agvQueue.setRequest("0");
|
|
||||||
agvQueue.setWmsTraycode(mydoJob.getTrayCode());
|
|
||||||
agvQueue.setWmsTaskNo(mydoJob.getTaskNo());
|
|
||||||
agvQueue.setStatus("0");
|
|
||||||
agvQueue.setTaskCode(taskCode);
|
|
||||||
agvQueue.setWmsTaskType("1");
|
|
||||||
agvQueueService.insertAgvQueue(agvQueue);
|
|
||||||
return agvQueue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 请求海康生成agv任务,并修改wms任务状态
|
|
||||||
*
|
|
||||||
* @param agvQueue
|
|
||||||
*/
|
|
||||||
private GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) {
|
|
||||||
//todo 请求ctu
|
|
||||||
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.setTaskCode(agvQueue.getWmsTaskNo());
|
|
||||||
genAgvSchedulingTaskRequest.setAgvTyp("CTU");
|
|
||||||
genAgvSchedulingTaskRequest.setPositionSelStrategy("0");
|
|
||||||
genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode());
|
|
||||||
return apiService.genAgvSchedulingTask(genAgvSchedulingTaskRequest);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user