|
@@ -39,6 +39,7 @@ import com.kmall.manager.manager.redis.JedisUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.core.env.Environment;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -135,6 +136,8 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
|
|
|
@Autowired
|
|
|
private HaiKongWarehouseTemplate haiKongWarehouseTemplate;
|
|
|
+ @Autowired
|
|
|
+ private Environment environment;
|
|
|
|
|
|
@Override
|
|
|
public GoodsEntity queryObject(Integer id) {
|
|
@@ -1554,6 +1557,8 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ String env = environment.getProperty("haikong.env");
|
|
|
+
|
|
|
/*
|
|
|
* 2. 查询海仓仓库系统,判断库存是否足够
|
|
|
* */
|
|
@@ -1566,50 +1571,49 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
String stockNum = goods.getStockNum();
|
|
|
Integer sellVolume = Objects.isNull(goods.getSellVolume()) ? 1 : goods.getSellVolume();
|
|
|
if (org.springframework.util.StringUtils.isEmpty(redisCacheWareQuantity)) {
|
|
|
-
|
|
|
- /* -----------------↓--------------生产请打开注释-------------------↓------------ */
|
|
|
-// WareQueryStockParamDTO wareQueryStockParamDTO = new WareQueryStockParamDTO();
|
|
|
-// List<Criteria> criteriaList = new ArrayList<>();
|
|
|
-// Criteria criteria = new Criteria();
|
|
|
-// criteria.setItemId(goods.getWarehouseSysGoodId());
|
|
|
-// criteria.setItemCode(goods.getSku());
|
|
|
-// criteria.setOwnerCode(goods.getConsignorSn());
|
|
|
-// criteria.setInventoryType(Constants.InventoryType.ZP.getType());
|
|
|
-// criteria.setWarehouseCode(goods.getWarehouseSn());
|
|
|
-// criteriaList.add(criteria);
|
|
|
-// wareQueryStockParamDTO.setCriteriaList(criteriaList);
|
|
|
-// String queryWarehouseStockResponse = null;
|
|
|
-// try {
|
|
|
-// queryWarehouseStockResponse = haiKongWarehouseTemplate.queryWarehouseStock(wareQueryStockParamDTO);
|
|
|
-// } catch (Exception e) {
|
|
|
-// log.error("sku:【{}】,调用海控仓库系统查询库存出现异常!", sku, e);
|
|
|
-// throw new ServiceException(String.format("sku:【%s】,调用海控仓库系统查询库存出现异常!", sku));
|
|
|
-// }
|
|
|
-// log.info("调用海控仓库系统,请求参数,门店:{}、商品条码:{}、商品编码:{},响应数据:{}", storeId, prodBarcode, sku, queryWarehouseStockResponse);
|
|
|
-// if (org.springframework.util.StringUtils.isEmpty(queryWarehouseStockResponse)) {
|
|
|
-// log.error("调用库存系统接口出现错误!返回结果为空!");
|
|
|
-// throw new ServiceException("调用库存系统接口出现错误!");
|
|
|
-// }
|
|
|
-// WareQueryStockResponseDTO wareQueryStockResponseDTO = JacksonUtil.fromStringJson(queryWarehouseStockResponse, WareQueryStockResponseDTO.class);
|
|
|
- /* -----------------↑--------------生产请打开注释------------------↑------------- */
|
|
|
-
|
|
|
- /* -----------------↓--------------测试数据,生产请注释-------------------↓------------ */
|
|
|
- WareQueryStockResponseDTO wareQueryStockResponseDTO = new WareQueryStockResponseDTO();
|
|
|
- wareQueryStockResponseDTO.setCode("0");
|
|
|
- wareQueryStockResponseDTO.setFlag("success");
|
|
|
- wareQueryStockResponseDTO.setMessage("");
|
|
|
- WareQueryStockResponseDTO.WareQueryStockResponseItemDTO wareQueryStockResponseItemDTO = new WareQueryStockResponseDTO.WareQueryStockResponseItemDTO();
|
|
|
- wareQueryStockResponseItemDTO.setQuantity(3);
|
|
|
- wareQueryStockResponseItemDTO.setItemCode(sku);
|
|
|
- wareQueryStockResponseItemDTO.setProduceCode(prodBarcode);
|
|
|
- List<WareQueryStockResponseDTO.WareQueryStockResponseItemDTO> wareQueryStockResponseItemDTOS = new ArrayList<>();
|
|
|
- wareQueryStockResponseItemDTOS.add(wareQueryStockResponseItemDTO);
|
|
|
- wareQueryStockResponseDTO.setItems(wareQueryStockResponseItemDTOS);
|
|
|
- /* -----------------↑--------------测试数据,生产请注释------------------↑------------- */
|
|
|
+ WareQueryStockResponseDTO wareQueryStockResponseDTO = null;
|
|
|
+ String queryWarehouseStockResponse = null;
|
|
|
+ // 环境配置
|
|
|
+ if (!org.springframework.util.StringUtils.isEmpty(env) && Constants.PROD.equals(env)) {
|
|
|
+ WareQueryStockParamDTO wareQueryStockParamDTO = new WareQueryStockParamDTO();
|
|
|
+ List<Criteria> criteriaList = new ArrayList<>();
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ criteria.setItemId(goods.getWarehouseSysGoodId());
|
|
|
+ criteria.setItemCode(goods.getSku());
|
|
|
+ criteria.setOwnerCode(goods.getConsignorSn());
|
|
|
+ criteria.setInventoryType(Constants.InventoryType.ZP.getType());
|
|
|
+ criteria.setWarehouseCode(goods.getWarehouseSn());
|
|
|
+ criteriaList.add(criteria);
|
|
|
+ wareQueryStockParamDTO.setCriteriaList(criteriaList);
|
|
|
+ try {
|
|
|
+ queryWarehouseStockResponse = haiKongWarehouseTemplate.queryWarehouseStock(wareQueryStockParamDTO);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("sku:【{}】,调用海控仓库系统查询库存出现异常!", sku, e);
|
|
|
+ throw new ServiceException(String.format("sku:【%s】,调用海控仓库系统查询库存出现异常!", sku));
|
|
|
+ }
|
|
|
+ log.info("调用海控仓库系统,请求参数,门店:{}、商品条码:{}、商品编码:{},响应数据:{}", storeId, prodBarcode, sku, queryWarehouseStockResponse);
|
|
|
+ if (org.springframework.util.StringUtils.isEmpty(queryWarehouseStockResponse)) {
|
|
|
+ log.error("调用库存系统接口出现错误!返回结果为空!");
|
|
|
+ throw new ServiceException("调用库存系统接口出现错误!");
|
|
|
+ }
|
|
|
+ wareQueryStockResponseDTO = JacksonUtil.fromStringJson(queryWarehouseStockResponse, WareQueryStockResponseDTO.class);
|
|
|
+ } else {
|
|
|
+ wareQueryStockResponseDTO = new WareQueryStockResponseDTO();
|
|
|
+ wareQueryStockResponseDTO.setCode("0");
|
|
|
+ wareQueryStockResponseDTO.setFlag("success");
|
|
|
+ wareQueryStockResponseDTO.setMessage("");
|
|
|
+ WareQueryStockResponseDTO.WareQueryStockResponseItemDTO wareQueryStockResponseItemDTO = new WareQueryStockResponseDTO.WareQueryStockResponseItemDTO();
|
|
|
+ wareQueryStockResponseItemDTO.setQuantity(3);
|
|
|
+ wareQueryStockResponseItemDTO.setItemCode(sku);
|
|
|
+ wareQueryStockResponseItemDTO.setProduceCode(prodBarcode);
|
|
|
+ List<WareQueryStockResponseDTO.WareQueryStockResponseItemDTO> wareQueryStockResponseItemDTOS = new ArrayList<>();
|
|
|
+ wareQueryStockResponseItemDTOS.add(wareQueryStockResponseItemDTO);
|
|
|
+ wareQueryStockResponseDTO.setItems(wareQueryStockResponseItemDTOS);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
if (Objects.isNull(wareQueryStockResponseDTO)) {
|
|
|
-// log.error("解析一步达库存系统响应数据出现错误!请求响应结果:{}", queryWarehouseStockResponse);
|
|
|
+ log.error("解析一步达库存系统响应数据出现错误!请求响应结果:{}", queryWarehouseStockResponse);
|
|
|
throw new ServiceException("解析一步达库存系统响应数据出现错误!");
|
|
|
}
|
|
|
|