优化修正请求和响应逻辑
This commit is contained in:
@@ -20,12 +20,12 @@ public class ResponseResult {
|
||||
/**
|
||||
* 请求是否成功
|
||||
*/
|
||||
private Integer success;
|
||||
private boolean success;
|
||||
|
||||
/**
|
||||
* 提示信息
|
||||
*/
|
||||
private boolean message;
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 成功时返回任务信息对象
|
||||
|
||||
@@ -40,6 +40,6 @@ public class TaskExceptionRequest {
|
||||
/**
|
||||
* 异常任务的类型 - 1052-入库有货,2-出库无货
|
||||
*/
|
||||
private int type;
|
||||
private String type;
|
||||
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import java.util.Map;
|
||||
public interface IApiService
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* 生成agv队列
|
||||
* @param code1 起点
|
||||
@@ -90,6 +89,13 @@ public interface IApiService
|
||||
*/
|
||||
RequestLog finishMydoJob(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* @@@ FT568 任务完成回传 适应wms的自定义响应格式
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
RequestLog finishMydoJobForResponseResult(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* 下发agv任务
|
||||
* @param agvQueue
|
||||
@@ -144,6 +150,11 @@ public interface IApiService
|
||||
*/
|
||||
AjaxResult createInMydoJob(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* @@@ FT568 入库请求生成作业 处理了请求响应,适应wms的自定义响应格式
|
||||
*/
|
||||
AjaxResult createMydoJobForStockin(Map<String, Object> param);
|
||||
|
||||
/**
|
||||
* 入库请求作业异常反馈(扫码失败、外形、称重等异常)
|
||||
*/
|
||||
|
||||
@@ -77,4 +77,13 @@ public interface IRequestLogService
|
||||
public RequestLog getRequestLog(String url, String param);
|
||||
|
||||
RequestLog getRequestLog2(String url, String param, String endPoint);
|
||||
|
||||
/**
|
||||
* @@@ FT568 使用用户自定义的wms请求响应
|
||||
* @param url
|
||||
* @param endPoint
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
RequestLog getRequestLogForResponseResult(String url, String endPoint, String param);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRespons
|
||||
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.PositionCodeData;
|
||||
import com.ruoyi.api.domain.wcs2wms.JobParam;
|
||||
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
|
||||
import com.ruoyi.api.domain.wcs2wms.ResponseResult;
|
||||
import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionReceive;
|
||||
import com.ruoyi.api.domain.wcs2wms.exception.TaskExceptionRequest;
|
||||
import com.ruoyi.api.domain.wcs2wms.stockout.StockoutReceive;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
@@ -54,6 +56,7 @@ import static com.ruoyi.common.TaskStatusCode.TASK_EP_ROADWAY_SSJ;
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ApiServiceImpl implements IApiService {
|
||||
|
||||
@Autowired
|
||||
private RequestLogServiceImpl requestLogService;
|
||||
@Autowired
|
||||
@@ -155,6 +158,15 @@ public class ApiServiceImpl implements IApiService {
|
||||
return requestLogService.getRequestLog(WMS_TASK_FINISH, "任务完成上报", JSONUtil.toJsonStr(param));
|
||||
}
|
||||
|
||||
/**
|
||||
* @@@ FT568 任务完成回传 适应wms的自定义响应格式
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public RequestLog finishMydoJobForResponseResult(Map<String, Object> param) {
|
||||
return requestLogService.getRequestLogForResponseResult(WMS_TASK_FINISH, "任务完成上报", JSONUtil.toJsonStr(param));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理agv状态返回
|
||||
@@ -266,10 +278,13 @@ public class ApiServiceImpl implements IApiService {
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult reAssign(TaskExceptionRequest taskExceptionRequest) {
|
||||
RequestLog requestLog = requestLogService.getRequestLog(WMS_TASK_EXCEPTION, "入库异常-重新分配货位", JSONUtil.toJsonStr(taskExceptionRequest));
|
||||
RequestLog requestLog = requestLogService.getRequestLogForResponseResult(WMS_TASK_EXCEPTION, "入库异常-重新分配货位", JSONUtil.toJsonStr(taskExceptionRequest));
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
|
||||
MydoJob wmsMydoJob = BeanUtil.toBean(bean.getData(), MydoJob.class);
|
||||
//请求获取新分配的货位
|
||||
ResponseResult bean = JSONUtil.toBean(requestLog.getResponseBody(), ResponseResult.class);
|
||||
MydoJob wmsMydoJob = BeanUtil.toBean(bean.getResult(), MydoJob.class);
|
||||
|
||||
//更新任务信息
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(wmsMydoJob.getJobId());
|
||||
mydoJob.setCargoSpaceId(wmsMydoJob.getCargoSpaceId());
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
@@ -299,7 +314,7 @@ public class ApiServiceImpl implements IApiService {
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult reMaterial(TaskExceptionRequest taskExceptionRequest) {
|
||||
RequestLog requestLog = requestLogService.getRequestLog(WMS_TASK_EXCEPTION, "出库无货异常-任务作废", JSONUtil.toJsonStr(taskExceptionRequest));
|
||||
RequestLog requestLog = requestLogService.getRequestLogForResponseResult(WMS_TASK_EXCEPTION, "出库无货异常-任务作废", JSONUtil.toJsonStr(taskExceptionRequest));
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@@ -434,7 +449,23 @@ public class ApiServiceImpl implements IApiService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 入库请求作业异常反馈(扫码失败、外形、称重等异常)
|
||||
* @@@ FT568 请求wms获取入库任务参数 - 适应wms的自定义请求响应格式
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult createMydoJobForStockin(Map<String, Object> param) {
|
||||
RequestLog requestLog = requestLogService.getRequestLogForResponseResult(WMS_STOCKIN_MYDOJOB, "入库请求生成作业", JSONUtil.toJsonStr(param));
|
||||
if ("1".equals(requestLog.getIsSuccessful())) {
|
||||
ResponseResult bean = JSONUtil.toBean(requestLog.getResponseBody(), ResponseResult.class);
|
||||
return AjaxResult.success(bean.getResult());
|
||||
} else {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @@@ FT568 入库请求作业异常反馈(扫码失败、外形、称重等异常)
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
|
||||
@@ -9,6 +9,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.api.domain.InterfaceReceive;
|
||||
import com.ruoyi.api.domain.wcs2wms.ResponseResult;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -131,6 +132,7 @@ public class RequestLogServiceImpl implements IRequestLogService
|
||||
String resStr = HttpUtil.post(url, param);
|
||||
requestLog.setResponseBody(resStr);
|
||||
InterfaceReceive bean = JSONUtil.toBean(resStr, InterfaceReceive.class);
|
||||
|
||||
if (bean.getCode() == 200) {
|
||||
requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss"));
|
||||
requestLog.setResponseStatus("1");
|
||||
@@ -173,6 +175,7 @@ public class RequestLogServiceImpl implements IRequestLogService
|
||||
String resStr = HttpUtil.post(url, param);
|
||||
requestLog.setResponseBody(resStr);
|
||||
InterfaceReceive bean = JSONUtil.toBean(resStr, InterfaceReceive.class);
|
||||
|
||||
if (bean.getCode() == 0) {
|
||||
requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss"));
|
||||
requestLog.setResponseStatus("1");
|
||||
@@ -198,6 +201,56 @@ public class RequestLogServiceImpl implements IRequestLogService
|
||||
return requestLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @@@ FT568 使用用户自定义的wms请求响应
|
||||
* @param url
|
||||
* @param endPoint
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public RequestLog getRequestLogForResponseResult(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"));
|
||||
requestLog.setSourceSystem("wcs");
|
||||
requestLog.setTargetSystem("wms");
|
||||
requestLog.setEndpoint(endPoint);
|
||||
requestLog.setRequestMethod("post");
|
||||
requestLog.setRequestHeaders(null);
|
||||
requestLog.setRequestBody(param);
|
||||
requestLog.setRequestUrl(url);
|
||||
Date responseTime =new Date();
|
||||
try {
|
||||
String resStr = HttpUtil.post(url, param);
|
||||
requestLog.setResponseBody(resStr);
|
||||
ResponseResult bean = JSONUtil.toBean(resStr, ResponseResult.class);
|
||||
|
||||
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)));
|
||||
requestLog.setIsSuccessful("1");
|
||||
}else {
|
||||
requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss"));
|
||||
requestLog.setResponseStatus("0");
|
||||
requestLog.setErrorDetails(bean.isSuccess() + "-" + bean.getMessage());
|
||||
requestLog.setIsSuccessful("0");
|
||||
requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS)));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss"));
|
||||
requestLog.setErrorDetails(e.getMessage());
|
||||
requestLog.setIsSuccessful("0");
|
||||
requestLog.setResponseStatus("0");
|
||||
requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS)));
|
||||
} finally {
|
||||
insertRequestLog(requestLog);
|
||||
}
|
||||
return requestLog;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 插入请求日志
|
||||
@@ -219,5 +272,24 @@ public class RequestLogServiceImpl implements IRequestLogService
|
||||
return requestLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @@@ FT568 将wms自定义的响应格式解析为本地响应格式(减少其他改动)
|
||||
* @param responseStr 请求响应字符串
|
||||
* @return
|
||||
*/
|
||||
public InterfaceReceive resultToBean(String responseStr) {
|
||||
|
||||
InterfaceReceive interfaceReceive = new InterfaceReceive();
|
||||
|
||||
//返回供应商wms自定义的ResponseResult,解析为本地InterfaceReceive响应格式
|
||||
ResponseResult result =JSONUtil.toBean(responseStr, ResponseResult.class);
|
||||
interfaceReceive.setCode(result.getCode());
|
||||
interfaceReceive.setMsg(result.isSuccess() + "-" + result.getMessage());
|
||||
interfaceReceive.setData(result.getResult());
|
||||
|
||||
return interfaceReceive;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user