浏览代码

同步erp添加仓库id

xdd 2 月之前
父节点
当前提交
c5ce75e899

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/dto/StoreOrderProductDTO.java

@@ -38,4 +38,5 @@ public class StoreOrderProductDTO implements Serializable {
     @Excel(name = "商品数量")
     private Integer count;
 
+
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductAttrValueMapper.java

@@ -82,7 +82,7 @@ public interface FsStoreProductAttrValueMapper
             " where product_id=#{productId} and id=#{productAttrValueId}")
     int incProductAttrStock(@Param("num")Long num,@Param("productId") Long productId,@Param("productAttrValueId") Long productAttrValueId);
     @Select({"<script> " +
-            "select v.*,p.product_name,p.product_type,c.cate_name  from fs_store_product_attr_value v inner join fs_store_product p on p.product_id=v.product_id left join fs_store_product_category c on c.cate_id=p.cate_id   " +
+            "select v.*,p.product_name,p.product_type,c.cate_name,p.warehouse_code as prod_ware_house_code  from fs_store_product_attr_value v inner join fs_store_product p on p.product_id=v.product_id left join fs_store_product_category c on c.cate_id=p.cate_id   " +
             "where 1=1 and v.bar_code is not null " +
             "<if test = 'maps.productName != null and  maps.productName !=\"\"    '> " +
             "and p.product_name like CONCAT('%',#{maps.productName},'%') " +

+ 44 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -11,6 +11,7 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.net.URLDecoder;
 import cn.hutool.core.util.IdUtil;
@@ -198,6 +199,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Autowired
     private FsStoreDeliversService fsStoreDeliversService;
 
+    @Autowired
+    private IFsStoreProductPackageService fsStoreProductPackageService;
     /**
      * 查询订单
      *
@@ -1497,6 +1500,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Override
     public void createOmsOrder(Long orderId) throws ParseException {
         FsStoreOrder order=fsStoreOrderMapper.selectFsStoreOrderById(orderId);
+
         if(StringUtils.isEmpty(order.getExtendOrderId())&&order.getStatus()!=1){
             return;
         }
@@ -1774,6 +1778,46 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         //处理地址字符问题
         erpOrder.setReceiver_address(erpOrder.getReceiver_address().replace("+","加"));
         erpOrder.setReceiver_address(erpOrder.getReceiver_address().replace("\n",""));
+
+        // 如果订单是套餐
+        if(ObjectUtil.equal(order.getIsPackage(),1)){
+            JSONObject jsonObject = JSONObject.parseObject(order.getPackageJson());
+            if(StringUtils.isBlank(order.getPackageJson())){
+                logger.error("套餐订单缺少套餐信息:{}", orderId);
+                return;
+            }
+            Long packageId = jsonObject.getLong("packageId");
+            // 根据套餐id找商品
+            FsStoreProductPackage fsStoreProductPackage = fsStoreProductPackageService.selectFsStoreProductPackageById(packageId);
+            if(ObjectUtil.isNull(fsStoreProductPackage)){
+                logger.error("套餐id找不到! 套餐id:{} 订单id:{}",packageId, orderId);
+                return;
+            }
+            String products = fsStoreProductPackage.getProducts();
+            if(StringUtils.isBlank(products)){
+                logger.error("套餐商品列表为空! 套餐id:{} 订单id:{}", packageId, orderId);
+            }
+            com.alibaba.fastjson.JSONArray objects = com.alibaba.fastjson.JSONArray.parseArray(products);
+            if(CollectionUtil.isEmpty(objects)){
+                logger.error("套餐商品列表为空! 套餐id:{} 订单id:{}", packageId, orderId);
+                return;
+            }
+
+            JSONObject jsonObject1 = objects.getJSONObject(0);
+            Long id = jsonObject1.getLong("id");
+            FsStoreProductAttrValue attrValue=attrValueService.selectFsStoreProductAttrValueById(id);
+            if(attrValue!=null) {
+                // 根据产品id找仓库id
+                FsStoreProduct product = storeProductService.selectFsStoreProductById(attrValue.getProductId());
+                if(ObjectUtil.isNull(product)){
+                    logger.error("套餐商品id找不到! 商品id:{} 订单id:{}", product.getProductId(), orderId);
+                    return;
+                }
+                erpOrder.setWarehouse_code(product.getWarehouseCode());
+            }
+
+        }
+
         ErpOrderResponse response= erpOrderService.addOrder(erpOrder);
         //写入日志
         logger.info("ErpCreate:"+order.getOrderCode()+":"+JSONUtil.toJsonStr(response));

+ 0 - 1
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductAttrValueQueryVO.java

@@ -40,6 +40,5 @@ public class FsStoreProductAttrValueQueryVO implements Serializable {
 
     private BigDecimal brokerageTwo;
 
-    
 
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductAttrValueVO.java

@@ -41,5 +41,6 @@ public class FsStoreProductAttrValueVO implements Serializable {
 
     private String cateName;
 
+    private String prodWareHouseCode;
 
 }