Bläddra i källkod

新增京东销售数据页面

yzc 2 år sedan
förälder
incheckning
d17a7a1c5f
15 ändrade filer med 462 tillägg och 13 borttagningar
  1. 91 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/jd/JdSalesData.java
  2. 4 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/warehouse/Warehouse.java
  3. 2 2
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdOrderInfoExcelVo.java
  4. 34 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdSalesDataEx.java
  5. 47 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdSalesDataExcelVo.java
  6. 17 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdSalesDataVo.java
  7. 62 0
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/jd/JdSalesDataController.java
  8. 3 0
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/warehouse/WarehouseController.java
  9. 21 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/jd/JdSalesDataMapper.java
  10. 18 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/jd/JdSalesDataMapper.xml
  11. 1 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/after/impl/AfterSalesFollowServiceImpl.java
  12. 1 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/after/impl/AfterSalesInfoServiceImpl.java
  13. 32 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/JdSalesDataService.java
  14. 120 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/impl/JdSalesDataServiceImpl.java
  15. 9 9
      hx-service/victoriatourist/src/main/java/com/fjhx/service/order/impl/OrderDetailsServiceImpl.java

+ 91 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/jd/JdSalesData.java

@@ -0,0 +1,91 @@
+package com.fjhx.entity.jd;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 京东销售数据
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class JdSalesData extends BaseEntity {
+
+
+    /**
+     * 产品id-SKU
+     */
+    @ExcelProperty("SKU")
+    private Long productId;
+
+    /**
+     * 全国现货库存
+     */
+    @ExcelProperty("全国现货库存")
+    private String spotQuantity;
+
+    /**
+     * 全国可用库存
+     */
+    @ExcelProperty("全国可用库存")
+    private String availableQuantity;
+
+    /**
+     * 全国昨日出库商品件数
+     */
+    @ExcelProperty("全国昨日出库商品件数")
+    private BigDecimal yesterdayQuantity;
+
+    /**
+     * 全国近7日出库商品件数
+     */
+    @ExcelProperty("全国近7日出库商品件数")
+    private String days7Quantity;
+
+    /**
+     * 全国近14日出库商品件数
+     */
+    @ExcelProperty("全国近14日出库商品件数")
+    private String days14Quantity;
+
+    /**
+     * 全国近28日出库商品件数
+     */
+    @ExcelProperty("采购单号")
+    private String days28Quantity;
+
+    /**
+     * 全国近30日出库商品件数
+     */
+    @ExcelProperty("全国近28日出库商品件数")
+    private String days30Quantity;
+
+    /**
+     * 全国月至今出库商品件数
+     */
+    @ExcelProperty("全国月至今出库商品件数")
+    private String toDateQuantity;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+
+}

+ 4 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/warehouse/Warehouse.java

@@ -18,6 +18,10 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class Warehouse extends BaseEntity {
+    /**
+     * 京东销售数据用京东仓库Id
+     */
+    public static final Long JD_SALES_DATA_WAREHOUSE_ID = 1636256016138371073L;
 
 
     /**

+ 2 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/service/order/JdOrderInfo.java → hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdOrderInfoExcelVo.java

@@ -1,4 +1,4 @@
-package com.fjhx.service.order;
+package com.fjhx.params.jd;
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.fjhx.base.BaseEntity;
@@ -12,7 +12,7 @@ import java.math.BigDecimal;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class JdOrderInfo extends BaseEntity {
+public class JdOrderInfoExcelVo extends BaseEntity {
     /**
      * 订单id*/
     private Long orderId;

+ 34 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdSalesDataEx.java

@@ -0,0 +1,34 @@
+package com.fjhx.params.jd;
+
+import com.fjhx.entity.jd.JdSalesData;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 京东销售数据
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class JdSalesDataEx extends JdSalesData {
+
+    /**
+     * 分类名称
+     */
+    private String classifyName;
+    /**
+     * 产品编号
+     */
+    private String productCode;
+    /**
+     * 产品名称
+     */
+    private String productName;
+    /**
+     * 出库数量
+     */
+    private String quantity;
+
+}

+ 47 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdSalesDataExcelVo.java

@@ -0,0 +1,47 @@
+package com.fjhx.params.jd;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fjhx.params.excel.BaseExcelVo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class JdSalesDataExcelVo extends BaseExcelVo {
+
+
+    @ExcelProperty("SKU")
+    private Long productId;
+
+
+    @ExcelProperty("全国现货库存")
+    private String spotQuantity;
+
+
+    @ExcelProperty("全国可用库存")
+    private String availableQuantity;
+
+
+    @ExcelProperty("全国昨日出库商品件数")
+    private BigDecimal yesterdayQuantity;
+
+
+    @ExcelProperty("全国近7日出库商品件数")
+    private String days7Quantity;
+
+
+    @ExcelProperty("全国近14日出库商品件数")
+    private String days14Quantity;
+
+    @ExcelProperty("采购单号")
+    private String days28Quantity;
+
+    @ExcelProperty("全国近28日出库商品件数")
+    private String days30Quantity;
+
+    @ExcelProperty("全国月至今出库商品件数")
+    private String toDateQuantity;
+
+}

+ 17 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdSalesDataVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.jd;
+
+import com.fjhx.entity.jd.JdSalesData;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 京东销售数据
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class JdSalesDataVo extends JdSalesData {
+
+}

+ 62 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/jd/JdSalesDataController.java

@@ -0,0 +1,62 @@
+package com.fjhx.controller.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
+import com.fjhx.params.jd.JdSalesDataEx;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.jd.JdSalesData;
+import com.fjhx.params.jd.JdSalesDataVo;
+import com.fjhx.service.jd.JdSalesDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 京东销售数据 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+@RestController
+@RequestMapping("/jdSalesData")
+public class JdSalesDataController {
+
+    @Autowired
+    private JdSalesDataService jdSalesDataService;
+
+    @PostMapping("/excelImport")
+    public R excelImport(@RequestParam("file") MultipartFile file) {
+        jdSalesDataService.excelImport(file);
+        return R.success();
+    }
+
+    @PostMapping("/page")
+    public R page(@RequestBody Condition condition){
+        Page<JdSalesDataEx> result = jdSalesDataService.getPage(condition);
+        return R.success(result);
+    }
+//
+//    @PostMapping("/add")
+//    public R add(@RequestBody JdSalesDataVo jdSalesDataVo){
+//        jdSalesDataService.add(jdSalesDataVo);
+//        return R.success();
+//    }
+//
+//    @PostMapping("/edit")
+//    public R edit(@RequestBody JdSalesDataVo jdSalesDataVo){
+//        jdSalesDataService.edit(jdSalesDataVo);
+//        return R.success();
+//    }
+//
+    @PostMapping("/delete")
+    public R delete(@RequestBody JdSalesDataVo jdSalesDataVo){
+        jdSalesDataService.delete(jdSalesDataVo);
+        return R.success();
+    }
+
+}
+

+ 3 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/warehouse/WarehouseController.java

@@ -5,6 +5,7 @@ import com.fjhx.base.BaseEntity;
 import com.fjhx.entity.warehouse.Warehouse;
 import com.fjhx.params.warehouse.WarehouseVo;
 import com.fjhx.service.warehouse.WarehouseService;
+import com.fjhx.utils.Assert;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -44,12 +45,14 @@ public class WarehouseController {
 
     @PostMapping("/edit")
     public R edit(@RequestBody WarehouseVo warehouseVo) {
+        Assert.eqTrue(Warehouse.JD_SALES_DATA_WAREHOUSE_ID.equals(warehouseVo.getId()),"该仓库为系统仓库,禁止修改!!!");
         warehouseService.edit(warehouseVo);
         return R.success();
     }
 
     @PostMapping("/delete")
     public R delete(@RequestBody WarehouseVo warehouseVo) {
+        Assert.eqTrue(Warehouse.JD_SALES_DATA_WAREHOUSE_ID.equals(warehouseVo.getId()),"该仓库为系统仓库,禁止删除!!!");
         warehouseService.delete(warehouseVo);
         return R.success();
     }

+ 21 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/jd/JdSalesDataMapper.java

@@ -0,0 +1,21 @@
+package com.fjhx.mapper.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.jd.JdSalesData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.params.jd.JdSalesDataEx;
+import com.fjhx.params.jd.JdSalesDataVo;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+
+/**
+ * <p>
+ * 京东销售数据 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+public interface JdSalesDataMapper extends BaseMapper<JdSalesData> {
+
+    Page<JdSalesDataEx> getPage(Page<Object> page, IWrapper<JdSalesData> wrapper);
+}

+ 18 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/jd/JdSalesDataMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.jd.JdSalesDataMapper">
+
+    <select id="getPage" resultType="com.fjhx.params.jd.JdSalesDataEx">
+        SELECT
+            jd_sales_data.id,
+            jd_sales_data.create_time,
+            classify.NAME classifyName,
+            product_info.code productCode,
+            product_info.NAME productName,
+            jd_sales_data.yesterday_quantity quantity
+        FROM
+            jd_sales_data
+                JOIN product_info ON jd_sales_data.product_id = product_info.id
+                JOIN classify ON product_info.classify_id = classify.id
+    </select>
+</mapper>

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/after/impl/AfterSalesFollowServiceImpl.java

@@ -32,7 +32,7 @@ public class AfterSalesFollowServiceImpl extends ServiceImpl<AfterSalesFollowMap
     AfterSalesInfoService afterSalesInfoService;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void add(AfterSalesFollowVo afterSalesFollowVo) {
         save(afterSalesFollowVo);
         //更新售后信息表的状态

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/after/impl/AfterSalesInfoServiceImpl.java

@@ -42,7 +42,7 @@ public class AfterSalesInfoServiceImpl extends ServiceImpl<AfterSalesInfoMapper,
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void add(AfterSalesInfoVo afterSalesInfoVo) {
         save(afterSalesInfoVo);
         //保存售后明细

+ 32 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/JdSalesDataService.java

@@ -0,0 +1,32 @@
+package com.fjhx.service.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
+import com.fjhx.entity.jd.JdSalesData;
+import com.fjhx.params.jd.JdSalesDataEx;
+import com.fjhx.params.jd.JdSalesDataVo;
+import com.fjhx.base.BaseService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 京东销售数据 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+public interface JdSalesDataService extends BaseService<JdSalesData> {
+    void excelImport(MultipartFile file);
+
+    Page<JdSalesDataEx> getPage(Condition condition);
+//
+//    void add(JdSalesDataVo jdSalesDataVo);
+//
+//    void edit(JdSalesDataVo jdSalesDataVo);
+//
+    void delete(JdSalesDataVo jdSalesDataVo);
+
+}

+ 120 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/impl/JdSalesDataServiceImpl.java

@@ -0,0 +1,120 @@
+package com.fjhx.service.jd.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
+import com.fjhx.entity.jd.JdSalesData;
+import com.fjhx.entity.product.ProductInfo;
+import com.fjhx.entity.stock.Stock;
+import com.fjhx.entity.warehouse.Warehouse;
+import com.fjhx.params.jd.JdSalesDataEx;
+import com.fjhx.params.jd.JdSalesDataExcelVo;
+import com.fjhx.mapper.jd.JdSalesDataMapper;
+import com.fjhx.params.jd.JdSalesDataVo;
+import com.fjhx.service.jd.JdSalesDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.service.product.ProductInfoService;
+import com.fjhx.service.stock.StockService;
+import com.fjhx.utils.Assert;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 京东销售数据 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-03-16
+ */
+@Service
+public class JdSalesDataServiceImpl extends ServiceImpl<JdSalesDataMapper, JdSalesData> implements JdSalesDataService {
+
+    @Autowired
+    ProductInfoService productInfoService;
+    @Autowired
+    StockService stockService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void excelImport(MultipartFile file) {
+        // 读取excel数据
+        List<JdSalesDataExcelVo> list = ExcelUtil.read(file, JdSalesDataExcelVo.class);
+        //获取所有产品id并判断是否存在
+        List<Long> productIds = list.stream().map(JdSalesDataExcelVo::getProductId).distinct().collect(Collectors.toList());
+        List<ProductInfo> purchases = productInfoService.listByIds(productIds);
+        Assert.notEmpty(purchases, "excel中的所有产品都无法在数据库中搜索到");
+        //检查产品表中是否存在商品
+        if (purchases.size() != productIds.size()) {
+            List<Long> collect = purchases.stream().map(ProductInfo::getId).distinct().collect(Collectors.toList());
+            List<Long> difference = productIds.stream().filter(item -> !collect.contains(item)).collect(Collectors.toList());
+            throw new ServiceException("数据库中未找到以下产品" + difference);
+        }
+        //检查仓库中是否存在商品
+        List<Stock> stockList = stockService.list(q -> q.in(Stock::getGoodsId, productIds).eq(Stock::getWarehouseId, Warehouse.JD_SALES_DATA_WAREHOUSE_ID));
+        if (stockList.size() != productIds.size()) {
+            List<Long> collect = stockList.stream().map(Stock::getGoodsId).distinct().collect(Collectors.toList());
+            List<Long> difference = productIds.stream().filter(item -> !collect.contains(item)).collect(Collectors.toList());
+            throw new ServiceException("仓库中不存在以下产品" + difference);
+        }
+        //根据全国昨日出库商品件数 更新 京东仓库库存数量
+        List<Stock> stockList1 = new ArrayList<>();
+        List<JdSalesData> jdSalesDataList = new ArrayList<>();
+        StringBuilder stringBuilder = new StringBuilder();
+
+        Map<Long, List<Stock>> stockMap = stockList.stream().collect(Collectors.groupingBy(Stock::getGoodsId));
+        for (JdSalesDataExcelVo jdSalesDataExcelVo : list) {
+            JdSalesData jdSalesData = new JdSalesData();
+
+            Long productId = jdSalesDataExcelVo.getProductId();
+            Stock stock = stockMap.get(productId).get(0);
+            //计算仓库库存-全国昨日出库商品件数 后剩余库存 是否大于0
+            BigDecimal quantity = stock.getQuantity().subtract(jdSalesDataExcelVo.getYesterdayQuantity());
+            if (quantity.compareTo(BigDecimal.ZERO) < 0) {
+                stringBuilder.append(productId);
+            } else {
+                stock.setQuantity(quantity);
+            }
+            stockList1.add(stock);
+        }
+        if(stringBuilder.length()>0){
+            throw new ServiceException("仓库中以下产品库存不足" + stringBuilder);
+        }
+        stockService.updateBatchById(stockList1);
+        List<JdSalesData> jdSalesDataList1 = BeanUtil.copyToList(list, JdSalesData.class);
+        saveBatch(jdSalesDataList1);
+    }
+
+    @Override
+    public Page<JdSalesDataEx> getPage(Condition condition) {
+
+        IWrapper<JdSalesData> wrapper = IWrapper.getWrapper(condition);
+
+        return baseMapper.getPage(condition.getPage(), wrapper);
+    }
+//
+//    @Override
+//    public void add(JdSalesDataVo jdSalesDataVo) {
+//        save(jdSalesDataVo);
+//    }
+//
+//    @Override
+//    public void edit(JdSalesDataVo jdSalesDataVo) {
+//        updateById(jdSalesDataVo);
+//    }
+//
+    @Override
+    public void delete(JdSalesDataVo jdSalesDataVo) {
+        removeById(jdSalesDataVo.getId());
+    }
+
+}

+ 9 - 9
hx-service/victoriatourist/src/main/java/com/fjhx/service/order/impl/OrderDetailsServiceImpl.java

@@ -23,7 +23,7 @@ import com.fjhx.params.stock.StockTransferAddDto;
 import com.fjhx.service.abnormal.AbnormalInfoService;
 import com.fjhx.service.logistics.LogisticsCompanyService;
 import com.fjhx.service.logistics.LogisticsInfoService;
-import com.fjhx.service.order.JdOrderInfo;
+import com.fjhx.params.jd.JdOrderInfoExcelVo;
 import com.fjhx.service.order.OrderDetailsService;
 import com.fjhx.service.order.OrderInfoService;
 import com.fjhx.service.product.ProductInfoService;
@@ -197,15 +197,15 @@ public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, Ord
     @Override
     @Transactional
     public void issueExcelImport(MultipartFile file) {
-        List<JdOrderInfo> list = ExcelUtil.read(file, JdOrderInfo.class);
+        List<JdOrderInfoExcelVo> list = ExcelUtil.read(file, JdOrderInfoExcelVo.class);
         //获取所有订单编号并获取所有订单信息
-        List<String> codes = list.stream().map(JdOrderInfo::getCode).distinct().collect(Collectors.toList());
+        List<String> codes = list.stream().map(JdOrderInfoExcelVo::getCode).distinct().collect(Collectors.toList());
         List<OrderInfo> orderInfos = orderInfoService.list(q -> q.in(OrderInfo::getCode, codes));
         if(orderInfos.size()!=codes.size()){
             throw new ServiceException("列表中含有未知订单编号");
         }
         //获取所有产品编码,并获取所有产品信息
-        List<String> productCode = list.stream().map(JdOrderInfo::getProductCode).distinct().collect(Collectors.toList());
+        List<String> productCode = list.stream().map(JdOrderInfoExcelVo::getProductCode).distinct().collect(Collectors.toList());
         List<ProductInfo> productInfos = productInfoService.list(q -> q.in(ProductInfo::getCode,productCode));
         if(productInfos.size()!=productCode.size()){
             throw new ServiceException("列表中含有未知产品编号");
@@ -214,7 +214,7 @@ public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, Ord
         List<Long> orderIds = orderInfos.stream().map(OrderInfo::getId).distinct().collect(Collectors.toList());
         List<OrderDetails> orderDetails = list(q -> q.in(OrderDetails::getOrderId, orderIds));
         //获取仓库信息
-        List<String> warehouseNames = list.stream().map(JdOrderInfo::getWarehouseName).distinct().collect(Collectors.toList());
+        List<String> warehouseNames = list.stream().map(JdOrderInfoExcelVo::getWarehouseName).distinct().collect(Collectors.toList());
         List<Warehouse> warehouses = warehouseService.list(q -> q.in(Warehouse::getName, warehouseNames));
 
         List<OrderDetails> orderDetailsList = new ArrayList<>();//统一操作未出库数量
@@ -225,7 +225,7 @@ public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, Ord
         List<Long> collect2 = orderDetails.stream().map(OrderDetails::getProductId).distinct().collect(Collectors.toList());
         List<Stock> list2 = stockService.list(q -> q.in(Stock::getGoodsId, collect2));
 
-        for (JdOrderInfo jdOrderInfo:list){
+        for (JdOrderInfoExcelVo jdOrderInfo:list){
             OrderInfo orderInfos1 = orderInfos.stream().filter(p -> jdOrderInfo.getCode().equals(p.getCode())).findAny().get();
             ProductInfo productInfos1 = productInfos.stream().filter(p -> jdOrderInfo.getProductCode().equals(p.getCode())).findAny().get();
             jdOrderInfo.setOrderId(orderInfos1.getId());
@@ -248,11 +248,11 @@ public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, Ord
         }
 
         //根据物流公司名查出所有物流公司信息
-        List<String> collect = list.stream().distinct().map(JdOrderInfo::getLogisticsCompany).collect(Collectors.toList());
+        List<String> collect = list.stream().distinct().map(JdOrderInfoExcelVo::getLogisticsCompany).collect(Collectors.toList());
         List<LogisticsCompany> list1 = logisticsCompanyService.list(q -> q.in(LogisticsCompany::getName, collect));
 
-        List<JdOrderInfo> collect1 = list.stream().distinct().collect(Collectors.toList());
-        for (JdOrderInfo jdOrderInfo:collect1) {
+        List<JdOrderInfoExcelVo> collect1 = list.stream().distinct().collect(Collectors.toList());
+        for (JdOrderInfoExcelVo jdOrderInfo:collect1) {
             Warehouse warehouse1 = warehouses.stream().filter(p -> jdOrderInfo.getWarehouseName().equals(p.getName())).findAny().get();
             Long warehouseId = warehouse1.getId();
             //操作物流公司