将箱式线任务的回告集成到统一上报类中
This commit is contained in:
parent
d60a3685dd
commit
00d373395f
|
|
@ -4,12 +4,11 @@ import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.alibaba.fastjson2.TypeReference;
|
import com.alibaba.fastjson2.TypeReference;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.wcs.constant.ConstantData;
|
import org.wcs.constant.ConstantData;
|
||||||
|
import org.wcs.constant.enums.http.ConveyCallBackStatusEnum;
|
||||||
import org.wcs.constant.enums.http.StockCallBackStatusEnum;
|
import org.wcs.constant.enums.http.StockCallBackStatusEnum;
|
||||||
import org.wcs.model.bo.tuple.Tuple2;
|
import org.wcs.model.bo.tuple.Tuple2;
|
||||||
import org.wcs.model.dto.client.StockLoginDataResp;
|
import org.wcs.model.dto.client.*;
|
||||||
import org.wcs.model.dto.client.StockLoginReq;
|
import org.wcs.model.po.app.AppConveyTask;
|
||||||
import org.wcs.model.dto.client.StockTaskStatusUploadReq;
|
|
||||||
import org.wcs.model.dto.client.UpperSystemDataResponse;
|
|
||||||
import org.wcs.model.po.app.AppStockComposeTask;
|
import org.wcs.model.po.app.AppStockComposeTask;
|
||||||
import org.wcs.plugin.webHttpClient.WebHttpClient;
|
import org.wcs.plugin.webHttpClient.WebHttpClient;
|
||||||
import org.wcs.plugin.webHttpClient.model.HttpRequest;
|
import org.wcs.plugin.webHttpClient.model.HttpRequest;
|
||||||
|
|
@ -18,13 +17,15 @@ import org.wcs.utils.AppStringUtils;
|
||||||
import org.wcs.utils.AppUUIDUtils;
|
import org.wcs.utils.AppUUIDUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标准上报上位系统类
|
* 标准上报上位系统类 ---- 标准文档里发送给上位系统的方法都在这里
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ReportStandard {
|
public class ReportStandard {
|
||||||
|
|
||||||
// 仓库任务上报状态地址键,用任务来源拼接此字符串查找上位系统地址
|
// 仓库任务上报状态地址键,用任务来源拼接此字符串查找上位系统地址
|
||||||
private static final String stockTaskCallBackAddressKey = "_STOCK_TASK_STATUS_CALLBACK";
|
private static final String stockTaskCallBackAddressKey = "_STOCK_TASK_STATUS_CALLBACK";
|
||||||
|
// 输送线任务上报状态地址键,用任务来源拼接此字符串查找上位系统地址
|
||||||
|
private static final String conveyTaskCallBackAddressKey = "_CONVEY_TASK_STATUS_CALLBACK";
|
||||||
// 仓库任务申请地址键,用任务点绑定的系统拼接此字符串查找上位系统地址
|
// 仓库任务申请地址键,用任务点绑定的系统拼接此字符串查找上位系统地址
|
||||||
private static final String stockLoginRequestAddressKey = "_STOCK_LOGIN_REQ";
|
private static final String stockLoginRequestAddressKey = "_STOCK_LOGIN_REQ";
|
||||||
|
|
||||||
|
|
@ -69,7 +70,11 @@ public class ReportStandard {
|
||||||
stockTaskStatusUploadReq.setMessage(message);
|
stockTaskStatusUploadReq.setMessage(message);
|
||||||
/* 构造请求体 */
|
/* 构造请求体 */
|
||||||
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(composeTask.getTaskSource() + stockTaskCallBackAddressKey)
|
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(composeTask.getTaskSource() + stockTaskCallBackAddressKey)
|
||||||
.setBody(AppStringUtils.objectToString(stockTaskStatusUploadReq)).buildEnd();
|
.setBody(AppStringUtils.objectToString(stockTaskStatusUploadReq));
|
||||||
|
if(StockCallBackStatusEnum.completeStatus().contains(status)) {
|
||||||
|
httpRequest = httpRequest.autoRetry(); // 结束状态的必须重试发送
|
||||||
|
}
|
||||||
|
httpRequest = httpRequest.buildEnd();
|
||||||
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
||||||
log.info("仓库任务:{} 任务状态上报上位系统,请求结果:{}", composeTask.getUpperTaskId(), httpResponse.isSuccess());
|
log.info("仓库任务:{} 任务状态上报上位系统,请求结果:{}", composeTask.getUpperTaskId(), httpResponse.isSuccess());
|
||||||
if(!httpResponse.isBaseDataError() && httpResponse.isSuccess()) {
|
if(!httpResponse.isBaseDataError() && httpResponse.isSuccess()) {
|
||||||
|
|
@ -157,6 +162,55 @@ public class ReportStandard {
|
||||||
return new Tuple2<>(null, upperSystemDataResponse.getReturnData());
|
return new Tuple2<>(null, upperSystemDataResponse.getReturnData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输送任务上报
|
||||||
|
* @param status 状态
|
||||||
|
* @param conveyTask 配送任务
|
||||||
|
* @param message 错误信息
|
||||||
|
* @return <错误信息,响应数据 >
|
||||||
|
*/
|
||||||
|
public static Tuple2<String, String> conveyTaskReport(ConveyCallBackStatusEnum status, AppConveyTask conveyTask, String message) {
|
||||||
|
return conveyTaskReport(status, conveyTask, message, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输送任务上报
|
||||||
|
* @param status 状态
|
||||||
|
* @param conveyTask 配送任务
|
||||||
|
* @param message 错误信息
|
||||||
|
* @param arriveLocation 到达点
|
||||||
|
* @return <错误信息,响应数据 >
|
||||||
|
*/
|
||||||
|
public static Tuple2<String, String> conveyTaskReport(ConveyCallBackStatusEnum status, AppConveyTask conveyTask, String message, String arriveLocation) {
|
||||||
|
ConveyTaskStatusUploadReq conveyTaskStatusUploadReq = new ConveyTaskStatusUploadReq();
|
||||||
|
conveyTaskStatusUploadReq.setTaskId(conveyTask.getTaskId());
|
||||||
|
conveyTaskStatusUploadReq.setTaskType(conveyTask.getTaskType());
|
||||||
|
conveyTaskStatusUploadReq.setTaskStatus(status.getCode());
|
||||||
|
conveyTaskStatusUploadReq.setVehicleNo(conveyTask.getVehicleNo());
|
||||||
|
conveyTaskStatusUploadReq.setArriveLocation(arriveLocation);
|
||||||
|
conveyTaskStatusUploadReq.setMessage(message);
|
||||||
|
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(conveyTask.getTaskSource() + conveyTaskCallBackAddressKey)
|
||||||
|
.setBody(AppStringUtils.objectToString(conveyTaskStatusUploadReq));
|
||||||
|
if(ConveyCallBackStatusEnum.completeStatus().contains(status)) {
|
||||||
|
httpRequest = httpRequest.autoRetry();
|
||||||
|
}
|
||||||
|
httpRequest = httpRequest.buildEnd();
|
||||||
|
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
||||||
|
if(httpResponse.isBaseDataError()) {
|
||||||
|
return new Tuple2<>(httpResponse.getErrText(), null);
|
||||||
|
}
|
||||||
|
if(!httpResponse.isSuccess()) {
|
||||||
|
String errText = httpResponse.getErrText();
|
||||||
|
if(httpResponse.getException() != null) {
|
||||||
|
errText += httpResponse.getException().getMessage();
|
||||||
|
}
|
||||||
|
return new Tuple2<>(errText, null);
|
||||||
|
}
|
||||||
|
return new Tuple2<>(null, httpResponse.getResponseText());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package org.wcs.constant.enums.http;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 箱式线任务回传状态枚举
|
* 箱式线任务回传状态枚举
|
||||||
*/
|
*/
|
||||||
|
|
@ -19,4 +21,12 @@ public enum ConveyCallBackStatusEnum {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完结的状态
|
||||||
|
* @return 状态列表
|
||||||
|
*/
|
||||||
|
public static List<ConveyCallBackStatusEnum> completeStatus() {
|
||||||
|
return List.of(FINISH, ERROR, CANCEL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package org.wcs.constant.enums.http;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仓库系统回调状态枚举
|
* 仓库系统回调状态枚举
|
||||||
*/
|
*/
|
||||||
|
|
@ -22,4 +24,12 @@ public enum StockCallBackStatusEnum {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务完结的状态
|
||||||
|
* @return 结束状态
|
||||||
|
*/
|
||||||
|
public static List<StockCallBackStatusEnum> completeStatus() {
|
||||||
|
return List.of(FINISH, ERROR, CANCEL, DOUBLE_IN, EMPTY_OUT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,15 @@ public class HttpRequest {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 默认开启自动重试
|
||||||
|
* @return HttpRequest
|
||||||
|
*/
|
||||||
|
public HttpRequest autoRetry() {
|
||||||
|
this.autoRetry = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置请求地址
|
* 设置请求地址
|
||||||
* @param url 请求地址
|
* @param url 请求地址
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.wcs.business.pub.ReportStandard;
|
||||||
import org.wcs.constant.ConstantData;
|
import org.wcs.constant.ConstantData;
|
||||||
import org.wcs.constant.enums.database.ConveyTaskStatusEnum;
|
import org.wcs.constant.enums.database.ConveyTaskStatusEnum;
|
||||||
import org.wcs.constant.enums.database.ConveyTaskTypeEnum;
|
import org.wcs.constant.enums.database.ConveyTaskTypeEnum;
|
||||||
|
|
@ -250,25 +251,9 @@ public class ConveyTaskService implements IConveyTaskService {
|
||||||
return AppServeResponseFactory.fail("任务不存在");
|
return AppServeResponseFactory.fail("任务不存在");
|
||||||
}
|
}
|
||||||
AppConveyTask conveyTask = conveyTasks.getFirst(); // 取第一个任务
|
AppConveyTask conveyTask = conveyTasks.getFirst(); // 取第一个任务
|
||||||
ConveyTaskStatusUploadReq conveyTaskStatusUploadReq = new ConveyTaskStatusUploadReq();
|
Tuple2<String, String> reportResult = ReportStandard.conveyTaskReport(ConveyCallBackStatusEnum.FINISH, conveyTask, String.format("用户:%s 回报任务完成", userId));
|
||||||
conveyTaskStatusUploadReq.setTaskId(conveyTask.getTaskId());
|
if(AppStringUtils.isNotEmpty(reportResult.getItem1())) {
|
||||||
conveyTaskStatusUploadReq.setTaskType(conveyTask.getTaskType());
|
return AppServeResponseFactory.fail(reportResult.getItem1());
|
||||||
conveyTaskStatusUploadReq.setTaskStatus(ConveyCallBackStatusEnum.FINISH.getCode());
|
|
||||||
conveyTaskStatusUploadReq.setArriveLocation(request.getArriveLocation());
|
|
||||||
conveyTaskStatusUploadReq.setVehicleNo(conveyTask.getVehicleNo());
|
|
||||||
conveyTaskStatusUploadReq.setMessage(String.format("用户:%s 回报任务完成,到达位置:%s", userId, request.getArriveLocation()));
|
|
||||||
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(conveyTask.getTaskSource() + "_CONVEY_TASK_STATUS_CALLBACK")
|
|
||||||
.setBody(AppStringUtils.objectToString(conveyTaskStatusUploadReq)).buildEnd();
|
|
||||||
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
|
||||||
if(httpResponse.isBaseDataError()) {
|
|
||||||
return AppServeResponseFactory.fail(httpResponse.getErrText());
|
|
||||||
}
|
|
||||||
if(!httpResponse.isSuccess()) {
|
|
||||||
String errText = httpResponse.getErrText();
|
|
||||||
if(httpResponse.getException() != null) {
|
|
||||||
errText += httpResponse.getException().getMessage();
|
|
||||||
}
|
|
||||||
return AppServeResponseFactory.fail(errText);
|
|
||||||
}
|
}
|
||||||
return AppServeResponseFactory.success();
|
return AppServeResponseFactory.success();
|
||||||
}
|
}
|
||||||
|
|
@ -293,24 +278,9 @@ public class ConveyTaskService implements IConveyTaskService {
|
||||||
return AppServeResponseFactory.fail("任务不存在");
|
return AppServeResponseFactory.fail("任务不存在");
|
||||||
}
|
}
|
||||||
AppConveyTask conveyTask = conveyTasks.getFirst(); // 取第一个任务
|
AppConveyTask conveyTask = conveyTasks.getFirst(); // 取第一个任务
|
||||||
ConveyTaskStatusUploadReq conveyTaskStatusUploadReq = new ConveyTaskStatusUploadReq();
|
Tuple2<String, String> reportResult = ReportStandard.conveyTaskReport(ConveyCallBackStatusEnum.CANCEL, conveyTask, String.format("用户:%s 回报任务取消", userId));
|
||||||
conveyTaskStatusUploadReq.setTaskId(conveyTask.getTaskId());
|
if(AppStringUtils.isNotEmpty(reportResult.getItem1())) {
|
||||||
conveyTaskStatusUploadReq.setTaskType(conveyTask.getTaskType());
|
return AppServeResponseFactory.fail(reportResult.getItem1());
|
||||||
conveyTaskStatusUploadReq.setTaskStatus(ConveyCallBackStatusEnum.CANCEL.getCode());
|
|
||||||
conveyTaskStatusUploadReq.setVehicleNo(conveyTask.getVehicleNo());
|
|
||||||
conveyTaskStatusUploadReq.setMessage(String.format("用户:%s 回报任务取消", userId));
|
|
||||||
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(conveyTask.getTaskSource() + "_CONVEY_TASK_STATUS_CALLBACK")
|
|
||||||
.setBody(AppStringUtils.objectToString(conveyTaskStatusUploadReq)).buildEnd();
|
|
||||||
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
|
||||||
if(httpResponse.isBaseDataError()) {
|
|
||||||
return AppServeResponseFactory.fail(httpResponse.getErrText());
|
|
||||||
}
|
|
||||||
if(!httpResponse.isSuccess()) {
|
|
||||||
String errText = httpResponse.getErrText();
|
|
||||||
if(httpResponse.getException() != null) {
|
|
||||||
errText += httpResponse.getException().getMessage();
|
|
||||||
}
|
|
||||||
return AppServeResponseFactory.fail(errText);
|
|
||||||
}
|
}
|
||||||
return AppServeResponseFactory.success();
|
return AppServeResponseFactory.success();
|
||||||
}
|
}
|
||||||
|
|
@ -337,28 +307,15 @@ public class ConveyTaskService implements IConveyTaskService {
|
||||||
if(conveyTasks.isEmpty()) {
|
if(conveyTasks.isEmpty()) {
|
||||||
return AppServeResponseFactory.fail("任务不存在");
|
return AppServeResponseFactory.fail("任务不存在");
|
||||||
}
|
}
|
||||||
AppConveyTaskBak conveyTask = conveyTasks.getFirst(); // 取第一个任务
|
AppConveyTaskBak conveyTaskBak = conveyTasks.getFirst(); // 取第一个任务
|
||||||
ConveyTaskStatusUploadReq conveyTaskStatusUploadReq = new ConveyTaskStatusUploadReq();
|
AppConveyTask conveyTask = new AppConveyTask();
|
||||||
conveyTaskStatusUploadReq.setTaskId(conveyTask.getTaskId());
|
AppBeanUtils.copyProperties(conveyTaskBak,conveyTask);
|
||||||
conveyTaskStatusUploadReq.setTaskType(conveyTask.getTaskType());
|
Tuple2<String, String> reportResult = ReportStandard.conveyTaskReport(ConveyCallBackStatusEnum.FINISH, conveyTask, String.format("用户:%s 回报任务完成", userId));
|
||||||
conveyTaskStatusUploadReq.setTaskStatus(ConveyCallBackStatusEnum.FINISH.getCode());
|
if(AppStringUtils.isNotEmpty(reportResult.getItem1())) {
|
||||||
conveyTaskStatusUploadReq.setArriveLocation(request.getArriveLocation());
|
return AppServeResponseFactory.fail(reportResult.getItem1());
|
||||||
conveyTaskStatusUploadReq.setVehicleNo(conveyTask.getVehicleNo());
|
|
||||||
conveyTaskStatusUploadReq.setMessage(String.format("用户:%s 回报任务完成,到达位置:%s", userId, request.getArriveLocation()));
|
|
||||||
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(conveyTask.getTaskSource() + "_CONVEY_TASK_STATUS_CALLBACK")
|
|
||||||
.setBody(AppStringUtils.objectToString(conveyTaskStatusUploadReq)).buildEnd();
|
|
||||||
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
|
||||||
if(httpResponse.isBaseDataError()) {
|
|
||||||
return AppServeResponseFactory.fail(httpResponse.getErrText());
|
|
||||||
}
|
|
||||||
if(!httpResponse.isSuccess()) {
|
|
||||||
String errText = httpResponse.getErrText();
|
|
||||||
if(httpResponse.getException() != null) {
|
|
||||||
errText += httpResponse.getException().getMessage();
|
|
||||||
}
|
|
||||||
return AppServeResponseFactory.fail(errText);
|
|
||||||
}
|
}
|
||||||
return AppServeResponseFactory.success();
|
return AppServeResponseFactory.success();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -380,25 +337,12 @@ public class ConveyTaskService implements IConveyTaskService {
|
||||||
if(conveyTasks.isEmpty()) {
|
if(conveyTasks.isEmpty()) {
|
||||||
return AppServeResponseFactory.fail("任务不存在");
|
return AppServeResponseFactory.fail("任务不存在");
|
||||||
}
|
}
|
||||||
AppConveyTaskBak conveyTask = conveyTasks.getFirst(); // 取第一个任务
|
AppConveyTaskBak conveyTaskBak = conveyTasks.getFirst(); // 取第一个任务
|
||||||
ConveyTaskStatusUploadReq conveyTaskStatusUploadReq = new ConveyTaskStatusUploadReq();
|
AppConveyTask conveyTask = new AppConveyTask();
|
||||||
conveyTaskStatusUploadReq.setTaskId(conveyTask.getTaskId());
|
AppBeanUtils.copyProperties(conveyTaskBak,conveyTask);
|
||||||
conveyTaskStatusUploadReq.setTaskType(conveyTask.getTaskType());
|
Tuple2<String, String> reportResult = ReportStandard.conveyTaskReport(ConveyCallBackStatusEnum.CANCEL, conveyTask, String.format("用户:%s 回报任务取消", userId));
|
||||||
conveyTaskStatusUploadReq.setTaskStatus(ConveyCallBackStatusEnum.CANCEL.getCode());
|
if(AppStringUtils.isNotEmpty(reportResult.getItem1())) {
|
||||||
conveyTaskStatusUploadReq.setVehicleNo(conveyTask.getVehicleNo());
|
return AppServeResponseFactory.fail(reportResult.getItem1());
|
||||||
conveyTaskStatusUploadReq.setMessage(String.format("用户:%s 回报任务取消", userId));
|
|
||||||
HttpRequest httpRequest = HttpRequest.buildStart().post().setAddressKey(conveyTask.getTaskSource() + "_CONVEY_TASK_STATUS_CALLBACK")
|
|
||||||
.setBody(AppStringUtils.objectToString(conveyTaskStatusUploadReq)).buildEnd();
|
|
||||||
HttpResponse httpResponse = WebHttpClient.httpRequest(httpRequest);
|
|
||||||
if(httpResponse.isBaseDataError()) {
|
|
||||||
return AppServeResponseFactory.fail(httpResponse.getErrText());
|
|
||||||
}
|
|
||||||
if(!httpResponse.isSuccess()) {
|
|
||||||
String errText = httpResponse.getErrText();
|
|
||||||
if(httpResponse.getException() != null) {
|
|
||||||
errText += httpResponse.getException().getMessage();
|
|
||||||
}
|
|
||||||
return AppServeResponseFactory.fail(errText);
|
|
||||||
}
|
}
|
||||||
return AppServeResponseFactory.success();
|
return AppServeResponseFactory.success();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user