1.添加上传单据到第三方系统结果字段,并通过中继服务进行同步

wms_pzh
x_z 3 years ago
parent 3d93d23683
commit 8ef71b7116

@ -92,4 +92,11 @@ public interface OrderDao {
* @return
*/
OrderNoResult selectOrderNos(String id);
/**
*
*
* @param orderEntity
*/
void updateOrderUploadInfo(OrderEntity orderEntity);
}

@ -6,10 +6,9 @@ import com.alibaba.fastjson.TypeReference;
import com.glxp.api.admin.entity.basic.BasicExportStatusEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.inout.IOOrderStatusEntity;
import com.glxp.api.admin.httpclient.UHttpClient;
import com.glxp.api.admin.req.basic.BasicExportStatusRequest;
import com.glxp.api.admin.req.inout.OrderStatusFilterRequest;
import com.glxp.api.admin.req.sync.BasicDataFilterRequest;
import com.glxp.api.admin.req.sync.PostThirdSysUploadInfo;
import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.res.basic.SpsSyncBusResponse;
import com.glxp.api.admin.res.basic.SpsSyncDataResponse;
@ -20,7 +19,6 @@ import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.util.OkHttpCli;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -204,5 +202,12 @@ public class SpGetHttpClient {
return response;
}
public BaseResponse<String> postOrderUploadInfo(PostThirdSysUploadInfo postThirdSysUploadInfo) {
String json = JSONUtil.toJsonStr(postThirdSysUploadInfo);
String result = okHttpCli.doPostJson(getIpUrl() + "/sps/sync/order/syncOrderUploadInfo", json);
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
}

@ -0,0 +1,26 @@
package com.glxp.api.admin.req.sync;
import lombok.Data;
/**
*
*/
@Data
public class PostThirdSysUploadInfo {
/**
*
*/
private String orderId;
/**
*
*/
private Integer wzUploadStatus;
/**
*
*/
private String wzUploadResult;
}

@ -30,6 +30,7 @@ import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.api.admin.entity.inventory.InvProductEntity;
import com.glxp.api.admin.httpclient.SpGetHttpClient;
import com.glxp.api.admin.httpclient.req.UdiwmsOrderRequest;
import com.glxp.api.admin.req.basic.FilterBasicThirdSysDetailRequest;
import com.glxp.api.admin.req.business.StockOrderDetailFilterRequest;
@ -38,6 +39,7 @@ import com.glxp.api.admin.req.business.StockOrderQueryRequest;
import com.glxp.api.admin.req.business.StockOrderUploadRequest;
import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest;
import com.glxp.api.admin.req.inventory.FilterInvProductRequest;
import com.glxp.api.admin.req.sync.PostThirdSysUploadInfo;
import com.glxp.api.admin.res.business.StockOrderDetailEntityVo;
import com.glxp.api.admin.res.business.StockOrderExportResponse;
import com.glxp.api.admin.service.basic.BussinessTypeService;
@ -92,6 +94,8 @@ public class StockOrderServiceImpl implements StockOrderService {
@Resource
BussinessTypeService bussinessTypeService;
@Resource
SpGetHttpClient spGetHttp;
@Override
@ -249,20 +253,50 @@ public class StockOrderServiceImpl implements StockOrderService {
udiwmsOrderRequest.setId(id);
BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thirdSysBusApiEntity.getThirdSys());
String response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest);
//查询扫码单据,更新上传第三方系统的状态值
Set<String> scanOrderIds = new HashSet<>(1);
scanOrderIds.add(stockOrderEntity.getOrderIdFk());
List<OrderEntity> orderEntities = orderDao.selectByIds(scanOrderIds);
OrderEntity orderEntity = orderEntities.get(0);
if (StrUtil.isEmpty(response)) {
log.error("单据提交失败");
orderEntity.setWzUploadStatus(2);
orderEntity.setWzUploadResult("单据提交失败");
syncOrderUploadStatus(orderEntity);
return ResultVOUtils.error(500, "提交失败");
}
BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
if (baseResponse.getCode().equals(20000)) {
orderEntity.setWzUploadStatus(1);
orderEntity.setWzUploadResult("提交成功");
syncOrderUploadStatus(orderEntity);
return ResultVOUtils.success("提交成功");
} else {
orderEntity.setWzUploadStatus(2);
orderEntity.setWzUploadResult("单据提交失败,异常信息:" + baseResponse.getMessage());
syncOrderUploadStatus(orderEntity);
log.error("单据提交失败,异常信息:" + baseResponse.getMessage());
return ResultVOUtils.error(500, "提交失败");
}
}
/**
*
* @param orderEntity
*/
private void syncOrderUploadStatus(OrderEntity orderEntity) {
//更新单据上传状态
orderDao.updateOrderUploadInfo(orderEntity);
//调用中继服务接口,同步单据上传状态
PostThirdSysUploadInfo postThirdSysUploadInfo = new PostThirdSysUploadInfo();
postThirdSysUploadInfo.setOrderId(orderEntity.getId());
postThirdSysUploadInfo.setWzUploadStatus(orderEntity.getWzUploadStatus());
postThirdSysUploadInfo.setWzUploadResult(orderEntity.getWzUploadResult());
spGetHttp.postOrderUploadInfo(postThirdSysUploadInfo);
}
@Override
public List<StockOrderEntity> filter(StockOrderUploadRequest request) {
if (null == request) {

@ -663,4 +663,12 @@
where id = #{id}
</select>
<update id="updateOrderUploadInfo">
update io_order
<trim prefix="set" suffixOverrides=",">
<if test="wzUploadStatus != null">wzUploadStatus=#{wzUploadStatus},</if>
<if test="wzUploadResult != null and wzUploadResult != ''">wzUploadResult=#{wzUploadResult},</if>
</trim>
where id = #{id}
</update>
</mapper>
Loading…
Cancel
Save