diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java index 3709369b..082b8853 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java @@ -92,4 +92,11 @@ public interface OrderDao { * @return */ OrderNoResult selectOrderNos(String id); + + /** + * 更新单据上传信息 + * + * @param orderEntity + */ + void updateOrderUploadInfo(OrderEntity orderEntity); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/SpGetHttpClient.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/SpGetHttpClient.java index ff42b243..d916808e 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/httpclient/SpGetHttpClient.java +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/SpGetHttpClient.java @@ -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 postOrderUploadInfo(PostThirdSysUploadInfo postThirdSysUploadInfo) { + String json = JSONUtil.toJsonStr(postThirdSysUploadInfo); + String result = okHttpCli.doPostJson(getIpUrl() + "/sps/sync/order/syncOrderUploadInfo", json); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } } diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/sync/PostThirdSysUploadInfo.java b/api-admin/src/main/java/com/glxp/api/admin/req/sync/PostThirdSysUploadInfo.java new file mode 100644 index 00000000..eaebc189 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/sync/PostThirdSysUploadInfo.java @@ -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; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java index 2ebd8161..74fae4fb 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/business/impl/StockOrderServiceImpl.java @@ -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 scanOrderIds = new HashSet<>(1); + scanOrderIds.add(stockOrderEntity.getOrderIdFk()); + List 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() { }); 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 filter(StockOrderUploadRequest request) { if (null == request) { diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml index 46dcc57e..1c2051d7 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml @@ -663,4 +663,12 @@ where id = #{id} + + update io_order + + wzUploadStatus=#{wzUploadStatus}, + wzUploadResult=#{wzUploadResult}, + + where id = #{id} + \ No newline at end of file