diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java index ce370199..fda36d14 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java @@ -2,6 +2,7 @@ package com.glxp.api.admin.controller.inout; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.db.sql.Order; import com.github.pagehelper.PageInfo; import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.constant.ConstantStatus; @@ -10,6 +11,7 @@ import com.glxp.api.admin.controller.inout.utils.ContrastErpUtil; import com.glxp.api.admin.controller.inout.utils.DataTransUtil; import com.glxp.api.admin.entity.auth.AuthAdmin; import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity; +import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity; import com.glxp.api.admin.entity.basic.BussinessTypeEntity; import com.glxp.api.admin.entity.business.StockOrderDetailEntity; import com.glxp.api.admin.entity.business.StockOrderEntity; @@ -278,6 +280,9 @@ public class OrderDetailController { return ResultVOUtils.success(); } + @Resource + private ErpOrderClient erpOrderClient; + //只查询第三方单据 @GetMapping("/udiwms/thirdOrder/filter") public BaseResponse filterThirdOrder(FilterOrderRequest filterErpOrderRequest, @@ -286,6 +291,13 @@ public class OrderDetailController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } + + if (filterErpOrderRequest.getIsDownThrSys()) { + BaseResponse> responseBaseResponse = erpOrderClient.getErpOrderResponse(filterErpOrderRequest); + return responseBaseResponse; + } + + BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessOriginTypeService.findSysByAction(filterErpOrderRequest.getBillAction(), "orderQueryUrl"); filterErpOrderRequest.setThirdOrderFk(basicThirdSysDetailEntity.getThirdSysFk()); if (basicThirdSysDetailEntity == null || !basicThirdSysDetailEntity.getEnabled()) { @@ -296,6 +308,7 @@ public class OrderDetailController { return ResultVOUtils.error(500, "第三方业务单据服务未关联"); } + FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); BeanUtils.copyProperties(filterErpOrderRequest, filterThrOrderRequest); filterThrOrderRequest.setPage(filterErpOrderRequest.getPage()); @@ -458,6 +471,9 @@ public class OrderDetailController { filterErpOrderRequest.setLimit(100); List erpOrderEntities = orderDetailService.filterMyErpOrder(filterErpOrderRequest); + OrderEntity orderEntity = orderService.findById(filterErpOrderRequest.getOrderIdFk()); + + // if (StrUtil.isNotEmpty(value) && value.equals("1")) { // erpOrderEntities = transferSerList(erpOrderEntities, filterErpOrderRequest.getOrderIdFk()); // } diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java index 18e0b704..119dfcfb 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvWarehouseController.java @@ -73,10 +73,6 @@ public class InvWarehouseController { SystemParamConfigService systemParamConfigService; @Resource InvProductDetailService invProductDetailService; - @Resource - BussinessTypeService bussinessTypeService; - @Resource - WarehouseBussinessTypeService warehouseBussinessTypeService; @AuthRuleAnnotation("") diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderExportLogController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderExportLogController.java index 545f5dc1..3f2a1727 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderExportLogController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/thrsys/ThrOrderExportLogController.java @@ -174,7 +174,6 @@ public class ThrOrderExportLogController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - BasicThirdSysDetailEntity basicThirdSysDetailEntity = bussinessTypeService.findByActionKey(filterErpOrderRequest.getBillAction(), "orderQueryUrl"); if (!basicThirdSysDetailEntity.getEnabled() || basicThirdSysDetailEntity.getThirdSysFk() == null) { return ResultVOUtils.error(500, "第三方系统业务单据接口服务未启用"); diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java index a74c7ec2..06ae6dd0 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inventory/InvSubWarehouseEntity.java @@ -5,21 +5,21 @@ import lombok.Data; @Data public class InvSubWarehouseEntity { - private String id; - private String code; - private String name; - private String parentId; - private String remark; - private boolean defaultInv; + public String id; + public String code; + public String name; + public String parentId; + public String remark; + public boolean defaultInv; - private String thirdId; - private String thirdName; - private String thirdId1; - private String thirdName1; - private String thirdId2; - private String thirdName2; - private String thirdId3; - private String thirdName3; - private String thirdId4; - private String thirdName4; + public String thirdId; + public String thirdName; + public String thirdId1; + public String thirdName1; + public String thirdId2; + public String thirdName2; + public String thirdId3; + public String thirdName3; + public String thirdId4; + public String thirdName4; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java index f18258ec..ae54552a 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java @@ -53,8 +53,8 @@ public class ErpOrderClient { public BaseResponse> getErpOrderResponse(FilterOrderRequest filterOrderRequest) { //查询第三方服务授权参数 - BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterOrderRequest.getThirdOrderFk()); - String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getUnits"; + BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId("thirdId"); + String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getOrders"; String response = httpOkClient.uCloudPost(url, filterOrderRequest, basicThirdSysEntity); try { BaseResponse> responseBaseResponse = diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderRequest.java index 7562fa9f..2d01e735 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderRequest.java +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsOrderRequest.java @@ -18,6 +18,7 @@ public class UdiwmsOrderRequest { private String thirdSys; //第三方系统ID private String locStorageCode; private String locStorageName; + private String actor; private List item; //单据详情数组 } diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsPreInOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsPreInOrderRequest.java index f58cdafb..1edf69a4 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsPreInOrderRequest.java +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/req/UdiwmsPreInOrderRequest.java @@ -1,69 +1,40 @@ package com.glxp.api.admin.httpclient.req; -import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; -import lombok.NoArgsConstructor; import java.util.List; -@NoArgsConstructor @Data public class UdiwmsPreInOrderRequest { - - @JsonProperty("billNo") private String billNo; - @JsonProperty("billdate") private String billdate; - @JsonProperty("corpId") private String corpId; - @JsonProperty("corpName") private String corpName; - @JsonProperty("locInvCode") private String locInvCode; - @JsonProperty("locInvName") private String locInvName; - @JsonProperty("actor") private String actor; - @JsonProperty("remark") private String remark; - @JsonProperty("item") + private String thirdSys; private List items; - @NoArgsConstructor @Data public static class ItemDTO { - @JsonProperty("code") private String code; - @JsonProperty("productId") private String productId; - @JsonProperty("productName") private String productName; - @JsonProperty("standard") private String standard; - @JsonProperty("expireDate") private String expireDate; - @JsonProperty("productDate") private String productDate; - @JsonProperty("batchNo") private String batchNo; - @JsonProperty("count") private Integer count; - @JsonProperty("measname") private String measname; - @JsonProperty("registerNo") private String registerNo; - @JsonProperty("price") private Double price; - @JsonProperty("secSalesInvNo") private String secSalesInvNo; - @JsonProperty("invoiceDate") private String invoiceDate; - @JsonProperty("secSalesListNo") private String secSalesListNo; - @JsonProperty("firstSalesInvNo") private String firstSalesInvNo; - @JsonProperty("remark") private String remark; } } 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 5b2c3d9e..3edc0e95 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 @@ -24,8 +24,10 @@ import com.glxp.api.admin.entity.business.StockOrderPrintEntity; import com.glxp.api.admin.entity.business.StockOrderUploadLogEntity; import com.glxp.api.admin.entity.inout.OrderEntity; import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity; import com.glxp.api.admin.entity.inventory.InvWarehouseEntity; import com.glxp.api.admin.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; import com.glxp.api.admin.httpclient.req.UdiwmsOrderDetail; import com.glxp.api.admin.httpclient.req.UdiwmsOrderRequest; import com.glxp.api.admin.httpclient.req.UdiwmsPreInOrderRequest; @@ -35,6 +37,7 @@ import com.glxp.api.admin.req.business.StockOrderDetailFilterRequest; import com.glxp.api.admin.req.business.StockOrderFilterRequest; import com.glxp.api.admin.req.business.StockOrderQueryRequest; import com.glxp.api.admin.req.business.StockOrderUploadRequest; +import com.glxp.api.admin.req.thrsys.FilterThrSubInvWarehouseRequest; import com.glxp.api.admin.res.business.StockOrderDetailEntityVo; import com.glxp.api.admin.res.business.StockOrderExportResponse; import com.glxp.api.admin.service.auth.AuthAdminService; @@ -44,8 +47,10 @@ import com.glxp.api.admin.service.business.StockOrderService; import com.glxp.api.admin.service.business.StockOrderUploadLogService; import com.glxp.api.admin.service.inout.CodesService; import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.service.inventory.InvSubWarehouseService; import com.glxp.api.admin.service.inventory.InvWarehouseService; import com.glxp.api.admin.service.thrsys.ThrInvWarehouseService; +import com.glxp.api.admin.service.thrsys.ThrSubInvWarehouseService; import com.glxp.api.admin.util.DateUtil; import com.glxp.api.admin.util.HttpClient; import com.glxp.api.admin.util.HttpOkClient; @@ -84,8 +89,12 @@ public class StockOrderServiceImpl implements StockOrderService { @Resource InvWarehouseService invWarehouseService; @Resource + InvSubWarehouseService invSubWarehouseService; + @Resource ThrInvWarehouseService thrInvWarehouseService; @Resource + ThrSubInvWarehouseService thrSubInvWarehouseService; + @Resource UdiRelevanceService udiRelevanceService; @Resource private BasicThirdSysBusApiDao basicThirdSysBusApiDao; @@ -228,7 +237,7 @@ public class StockOrderServiceImpl implements StockOrderService { StockOrderDetailFilterRequest orderDetailFilterRequest = new StockOrderDetailFilterRequest(); orderDetailFilterRequest.setOrderIdFk(id); List stockOrderDetailEntities = stockOrderDetailDao.filterStockOrderDetail(orderDetailFilterRequest); - + List warehouseEntities = codesService.findByReceiptId(stockOrderEntity.getOrderIdFk()); UdiwmsOrderRequest udiwmsOrderRequest = new UdiwmsOrderRequest(); udiwmsOrderRequest.setBillDate(stockOrderEntity.getBilldate()); //单据日期 udiwmsOrderRequest.setBillNo(stockOrderEntity.getBillNo()); //单号 @@ -238,11 +247,16 @@ public class StockOrderServiceImpl implements StockOrderService { BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(stockOrderEntity.getBillType()); udiwmsOrderRequest.setThirdSys(thirdSysBusApiEntity.getThirdSys()); //第三方系统标识 udiwmsOrderRequest.setBillType(thirdSysBusApiEntity.getThirdBuyCode()); - String thirdId = getThirdId(thirdSysBusApiEntity); if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT) { + +// String supId = warehouseEntities.get(0).getSupId(); +// UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectThirdInfoByErpId(supId); udiwmsOrderRequest.setCorpId(stockOrderEntity.getCorpName()); //往来单位编码,需转换为第三方系统的ID udiwmsOrderRequest.setCorpName(stockOrderEntity.getCorpName()); //往来单位名称,需转换为第三方系统的名称 +// udiwmsOrderRequest.setCorpId(unitMaintainEntity.getThirdId()); +// udiwmsOrderRequest.setCorpName(unitMaintainEntity.getThirdName()); + } else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) { InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(stockOrderEntity.getCorpId()); try { @@ -270,17 +284,17 @@ public class StockOrderServiceImpl implements StockOrderService { } } - InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(stockOrderEntity.getLocStorageCode()); + InvSubWarehouseEntity invSubWarehouseEntity = invSubWarehouseService.findByInvSubByCode(stockOrderEntity.getInvWarehouseCode()); try { // String thirdSysFk = (String) ReflectUtil.getFieldValue(invWarehouseEntity, invWarehouseEntity.getClass().getField(thirdId)); - ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseService.selectByCode(invWarehouseEntity.getThirdId(), thirdId); - udiwmsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); - udiwmsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); + ThrSubInvWarehouseEntity thrSubInvWarehouseEntity = thrSubInvWarehouseService.selectByThrCode(thirdId, invSubWarehouseEntity.getThirdId()); + udiwmsOrderRequest.setLocStorageCode(thrSubInvWarehouseEntity.getCode()); + udiwmsOrderRequest.setLocStorageName(thrSubInvWarehouseEntity.getName()); } catch (Exception e) { log.error(e.getMessage(), e); } - udiwmsOrderRequest.setBillFlag(stockOrderEntity.getBillFlag());//单据状态 + udiwmsOrderRequest.setBillFlag(1 + "");//单据状态 //查询单据出入库类型 String mainAction = bussinessTypeDao.selectInoutTypebByLocalAction(stockOrderEntity.getBillType()); @@ -293,7 +307,7 @@ public class StockOrderServiceImpl implements StockOrderService { udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注 //组装明细数据 - List warehouseEntities = codesService.findByReceiptId(stockOrderEntity.getOrderIdFk()); + List items = new ArrayList<>(stockOrderDetailEntities.size()); for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) { UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(stockOrderDetailEntity.getRelId()); @@ -349,6 +363,13 @@ public class StockOrderServiceImpl implements StockOrderService { uploadLog.setFromType(ConstantStatus.THIRD_ORDER_UPLOAD); BasicThirdSysEntity basicThirdSysEntity = basicThirdSysDao.selectByThirdId(thirdSysBusApiEntity.getThirdSys()); String response = null; + if (orderEntity.getReviewUser() != null) { + AuthAdmin authAdmin = authAdminService.findById(orderEntity.getReviewUser().longValue()); + udiwmsOrderRequest.setActor(authAdmin.getEmployeeName()); + } else if (orderEntity.getCreateUser() != null) { + AuthAdmin authAdmin = authAdminService.findById(orderEntity.getCreateUser().longValue()); + udiwmsOrderRequest.setActor(authAdmin.getEmployeeName()); + } if (bussinessLocalTypeEntity.isPreIn()) { UdiwmsPreInOrderRequest udiwmsPreInOrderRequest = submitPreInOrderToThirdSys(udiwmsOrderRequest, orderEntity); response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/preIn/submitOrders", udiwmsPreInOrderRequest); @@ -356,19 +377,18 @@ public class StockOrderServiceImpl implements StockOrderService { response = httpOkClient.uCloudPost(basicThirdSysEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest); if (StrUtil.isNotBlank(response)) { try { - - BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference>() { + BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference>() { }); if (baseResponse.getCode().equals(20000)) { - UdiwmsOrderResponse udiwmsOrderResponse = baseResponse.getData(); + String udiwmsOrderResponse = baseResponse.getData(); orderEntity.setExportStatus(1); - if (udiwmsOrderResponse != null) { - orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo()); - } +// if (udiwmsOrderResponse != null) { +// orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo()); +// } orderService.updateOrder(orderEntity); uploadLog.setStatus(2); - uploadLog.setThrBillNo(udiwmsOrderResponse.getThirdBillNo()); + uploadLog.setThrBillNo(udiwmsOrderResponse); uploadLog.setResult("提交成功"); stockOrderUploadLogService.insert(uploadLog); return ResultVOUtils.success("提交成功"); @@ -403,13 +423,6 @@ public class StockOrderServiceImpl implements StockOrderService { BeanUtils.copyProperties(udiwmsOrderRequest, udiwmsPreInOrderRequest); udiwmsPreInOrderRequest.setLocInvCode(udiwmsOrderRequest.getLocStorageCode()); udiwmsPreInOrderRequest.setLocInvName(udiwmsOrderRequest.getLocStorageName()); - if (orderEntity.getReviewUser() != null) { - AuthAdmin authAdmin = authAdminService.findById(orderEntity.getReviewUser().longValue()); - udiwmsPreInOrderRequest.setActor(authAdmin.getEmployeeName()); - } else if (orderEntity.getCreateUser() != null) { - AuthAdmin authAdmin = authAdminService.findById(orderEntity.getCreateUser().longValue()); - udiwmsPreInOrderRequest.setActor(authAdmin.getEmployeeName()); - } List itemDTOS = new ArrayList<>(); if (CollUtil.isNotEmpty(udiwmsOrderRequest.getItem())) { for (UdiwmsOrderDetail udiwmsOrderDetail : udiwmsOrderRequest.getItem()) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java index fba03aa4..b46c67e1 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/ThrSubInvWarehouseService.java @@ -8,6 +8,9 @@ import java.util.List; public interface ThrSubInvWarehouseService { + + ThrSubInvWarehouseEntity selectByThrCode(String thirdSys, String thirdId); + List filterThrInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest); boolean insertThrInvWarehouse(ThrSubInvWarehouseEntity thrSubInvWarehouseEntity); diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java index 006fce7f..078cabd5 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/thrsys/impl/ThrSubInvWarehouseServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.admin.service.thrsys.impl; +import cn.hutool.core.collection.CollUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.admin.dao.thrsys.ThrSubInvWarehouseDao; import com.glxp.api.admin.entity.thrsys.ThrSubInvWarehouseEntity; @@ -18,6 +19,17 @@ public class ThrSubInvWarehouseServiceImpl implements ThrSubInvWarehouseService ThrSubInvWarehouseDao thrSubInvWarehouseDao; + @Override + public ThrSubInvWarehouseEntity selectByThrCode(String thirdSys, String thirdId) { + FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest = new FilterThrSubInvWarehouseRequest(); + filterThrSubInvWarehouseRequest.setCode(thirdId); + filterThrSubInvWarehouseRequest.setThirdSysFk(thirdSys); + List thrInvWarehouseEntitys = thrSubInvWarehouseDao.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); + if (CollUtil.isNotEmpty(thrInvWarehouseEntitys)) { + return thrInvWarehouseEntitys.get(0); + } else return null; + } + @Override public List filterThrInvWarehouse(FilterThrSubInvWarehouseRequest filterThrSubInvWarehouseRequest) { if (filterThrSubInvWarehouseRequest == null) {