代码更新:
1. 增加定时器:任务解析与发送。
This commit is contained in:
parent
3b49880332
commit
38baf12e7b
|
|
@ -0,0 +1,43 @@
|
|||
package com.ruoyi.web.domain;
|
||||
|
||||
/**
|
||||
* Wcs通用响应信息
|
||||
*/
|
||||
public class WcsCommonResponse {
|
||||
/**
|
||||
* code
|
||||
*/
|
||||
private Integer code;
|
||||
/**
|
||||
* message
|
||||
*/
|
||||
private String message;
|
||||
/**
|
||||
* data
|
||||
*/
|
||||
private Object data;
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(Object data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
package com.ruoyi.web.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Wcs堆垛机任务详情
|
||||
*/
|
||||
public class WcsStackerTask {
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
private String taskId;
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
private Integer taskType;
|
||||
/**
|
||||
* 任务优先级
|
||||
*/
|
||||
private Integer priority;
|
||||
/**
|
||||
* 任务起点
|
||||
*/
|
||||
private String origin;
|
||||
/**
|
||||
* 任务中间点
|
||||
*/
|
||||
private String midpoint;
|
||||
/**
|
||||
* 任务终点
|
||||
*/
|
||||
private String destination;
|
||||
/**
|
||||
* 载具编号
|
||||
*/
|
||||
private String vehicleNo;
|
||||
/**
|
||||
* 载具尺寸
|
||||
*/
|
||||
private Integer vehicleSize = 0;
|
||||
/**
|
||||
* 总重量
|
||||
*/
|
||||
private BigDecimal weight = BigDecimal.ZERO;
|
||||
|
||||
public String getTaskId() {
|
||||
return taskId;
|
||||
}
|
||||
|
||||
public void setTaskId(String taskId) {
|
||||
this.taskId = taskId;
|
||||
}
|
||||
|
||||
public Integer getTaskType() {
|
||||
return taskType;
|
||||
}
|
||||
|
||||
public void setTaskType(Integer taskType) {
|
||||
this.taskType = taskType;
|
||||
}
|
||||
|
||||
public Integer getPriority() {
|
||||
return priority;
|
||||
}
|
||||
|
||||
public void setPriority(Integer priority) {
|
||||
this.priority = priority;
|
||||
}
|
||||
|
||||
public String getOrigin() {
|
||||
return origin;
|
||||
}
|
||||
|
||||
public void setOrigin(String origin) {
|
||||
this.origin = origin;
|
||||
}
|
||||
|
||||
public String getMidpoint() {
|
||||
return midpoint;
|
||||
}
|
||||
|
||||
public void setMidpoint(String midpoint) {
|
||||
this.midpoint = midpoint;
|
||||
}
|
||||
|
||||
public String getDestination() {
|
||||
return destination;
|
||||
}
|
||||
|
||||
public void setDestination(String destination) {
|
||||
this.destination = destination;
|
||||
}
|
||||
|
||||
public String getVehicleNo() {
|
||||
return vehicleNo;
|
||||
}
|
||||
|
||||
public void setVehicleNo(String vehicleNo) {
|
||||
this.vehicleNo = vehicleNo;
|
||||
}
|
||||
|
||||
public Integer getVehicleSize() {
|
||||
return vehicleSize;
|
||||
}
|
||||
|
||||
public void setVehicleSize(Integer vehicleSize) {
|
||||
this.vehicleSize = vehicleSize;
|
||||
}
|
||||
|
||||
public BigDecimal getWeight() {
|
||||
return weight;
|
||||
}
|
||||
|
||||
public void setWeight(BigDecimal weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
package com.ruoyi.web.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 向wcs发送堆垛机任务请求
|
||||
*/
|
||||
public class WcsStackerTaskRequest {
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
private String taskId;
|
||||
/**
|
||||
* 任务类型
|
||||
*/
|
||||
private Integer taskType;
|
||||
/**
|
||||
* 任务优先级
|
||||
*/
|
||||
private Integer priority;
|
||||
/**
|
||||
* 任务起点
|
||||
*/
|
||||
private String origin;
|
||||
/**
|
||||
* 任务中间点
|
||||
*/
|
||||
private String midpoint;
|
||||
/**
|
||||
* 任务终点
|
||||
*/
|
||||
private String destination;
|
||||
/**
|
||||
* 载具编号
|
||||
*/
|
||||
private String vehicleNo;
|
||||
/**
|
||||
* 载具尺寸
|
||||
*/
|
||||
private Integer vehicleSize = 0;
|
||||
/**
|
||||
* 总重量
|
||||
*/
|
||||
private BigDecimal weight = BigDecimal.ZERO;
|
||||
|
||||
public String getTaskId() {
|
||||
return taskId;
|
||||
}
|
||||
|
||||
public void setTaskId(String taskId) {
|
||||
this.taskId = taskId;
|
||||
}
|
||||
|
||||
public Integer getTaskType() {
|
||||
return taskType;
|
||||
}
|
||||
|
||||
public void setTaskType(Integer taskType) {
|
||||
this.taskType = taskType;
|
||||
}
|
||||
|
||||
public Integer getPriority() {
|
||||
return priority;
|
||||
}
|
||||
|
||||
public void setPriority(Integer priority) {
|
||||
this.priority = priority;
|
||||
}
|
||||
|
||||
public String getOrigin() {
|
||||
return origin;
|
||||
}
|
||||
|
||||
public void setOrigin(String origin) {
|
||||
this.origin = origin;
|
||||
}
|
||||
|
||||
public String getMidpoint() {
|
||||
return midpoint;
|
||||
}
|
||||
|
||||
public void setMidpoint(String midpoint) {
|
||||
this.midpoint = midpoint;
|
||||
}
|
||||
|
||||
public String getDestination() {
|
||||
return destination;
|
||||
}
|
||||
|
||||
public void setDestination(String destination) {
|
||||
this.destination = destination;
|
||||
}
|
||||
|
||||
public String getVehicleNo() {
|
||||
return vehicleNo;
|
||||
}
|
||||
|
||||
public void setVehicleNo(String vehicleNo) {
|
||||
this.vehicleNo = vehicleNo;
|
||||
}
|
||||
|
||||
public Integer getVehicleSize() {
|
||||
return vehicleSize;
|
||||
}
|
||||
|
||||
public void setVehicleSize(Integer vehicleSize) {
|
||||
this.vehicleSize = vehicleSize;
|
||||
}
|
||||
|
||||
public BigDecimal getWeight() {
|
||||
return weight;
|
||||
}
|
||||
|
||||
public void setWeight(BigDecimal weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
}
|
||||
|
|
@ -38,6 +38,12 @@
|
|||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-system</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-admin</artifactId>
|
||||
<version>3.8.9</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,18 @@
|
|||
package com.ruoyi.quartz.task;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.ruoyi.app.domain.AppTask;
|
||||
import com.ruoyi.app.domain.AppWcsTask;
|
||||
import com.ruoyi.app.service.IAppTaskService;
|
||||
import com.ruoyi.app.service.IAppWcsTaskService;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.http.HttpUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import com.ruoyi.system.service.ISysConfigService;
|
||||
import com.ruoyi.web.domain.WcsCommonResponse;
|
||||
import com.ruoyi.web.domain.WcsStackerTaskRequest;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -21,6 +28,10 @@ public class TaskExecutor {
|
|||
private IAppTaskService appTaskService;
|
||||
@Autowired
|
||||
private IAppWcsTaskService appWcsTaskService;
|
||||
@Autowired
|
||||
private ISysConfigService sysConfigService;
|
||||
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private final HashMap<Integer, Integer> taskTypeMap = new HashMap<Integer, Integer>() {{
|
||||
put(1, 1);// 入库
|
||||
|
|
@ -67,7 +78,7 @@ public class TaskExecutor {
|
|||
newWcsTask.setCreateTime(new Date());
|
||||
wcsTaskMap.put(appTask.getVehicleId(), newWcsTask);
|
||||
// 更新wms任务信息
|
||||
appTask.setWcsTaskId(wcsTaskMap.get(appTask.getVehicleId()).getWcsTaskId());
|
||||
appTask.setWcsTaskId(newWcsTask.getWcsTaskId());
|
||||
appTask.setTaskStatus(1);
|
||||
}
|
||||
// 更新wms任务
|
||||
|
|
@ -82,6 +93,66 @@ public class TaskExecutor {
|
|||
* 任务状态为0
|
||||
*/
|
||||
public void sendWcsTask() {
|
||||
// 查询出所有的待下发的wcs任务
|
||||
AppWcsTask wcsTaskQuery = new AppWcsTask();
|
||||
wcsTaskQuery.setWcsTaskStatus(0);
|
||||
List<AppWcsTask> wcsTaskList = appWcsTaskService.selectAppWcsTaskList(wcsTaskQuery);
|
||||
if (wcsTaskList == null || wcsTaskList.isEmpty()) {
|
||||
// 没有待下发的任务,跳过任务
|
||||
return;
|
||||
}
|
||||
// 获取请求地址
|
||||
String url = sysConfigService.selectConfigByKey("wcs.url");
|
||||
if (StringUtils.isEmpty(url)) {
|
||||
// 查询不到wcs任务发送地址
|
||||
return;
|
||||
}
|
||||
for (AppWcsTask appWcsTask : wcsTaskList) {
|
||||
// 添加wcs任务请求
|
||||
WcsStackerTaskRequest wcsStackerTaskRequest = getWcsStackerTaskRequest(appWcsTask);
|
||||
// 发送http请求---请求5次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
try {
|
||||
WcsCommonResponse wcsCommonResponse = JSON.parseObject(HttpUtils.sendPost(url, JSON.toJSONString(wcsStackerTaskRequest)), WcsCommonResponse.class);
|
||||
|
||||
if (wcsCommonResponse == null) {
|
||||
continue;
|
||||
}
|
||||
if (wcsCommonResponse.getCode() == 0) {
|
||||
// 返回ok
|
||||
appWcsTask.setWcsTaskStatus(1);// 已经发送成功
|
||||
} else {
|
||||
// 返回error
|
||||
appWcsTask.setWcsTaskStatus(999);// 任务异常
|
||||
}
|
||||
appWcsTask.setSendTime(new Date());
|
||||
appWcsTaskService.updateAppWcsTask(appWcsTask);
|
||||
// 请求成功,不再发送
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
logger.error("任务发送异常。{}", JSON.toJSONString(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建wcs请求
|
||||
* @param appWcsTask 任务
|
||||
* @return 请求详情
|
||||
*/
|
||||
private WcsStackerTaskRequest getWcsStackerTaskRequest(AppWcsTask appWcsTask) {
|
||||
WcsStackerTaskRequest wcsStackerTaskRequest = new WcsStackerTaskRequest();
|
||||
wcsStackerTaskRequest.setTaskId(appWcsTask.getWcsTaskId());
|
||||
wcsStackerTaskRequest.setTaskType(appWcsTask.getWcsTaskType());
|
||||
wcsStackerTaskRequest.setPriority(appWcsTask.getTaskPriority());
|
||||
wcsStackerTaskRequest.setOrigin(appWcsTask.getOrigin());
|
||||
wcsStackerTaskRequest.setDestination(appWcsTask.getDestination());
|
||||
wcsStackerTaskRequest.setVehicleNo(appWcsTask.getVehicleId());
|
||||
return wcsStackerTaskRequest;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user