Bladeren bron

京东订单

24282 2 jaren geleden
bovenliggende
commit
2853938e2a
16 gewijzigde bestanden met toevoegingen van 726 en 0 verwijderingen
  1. 73 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdOrderController.java
  2. 37 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/bo/JdOrderExcelImportBo.java
  3. 29 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdOrderDto.java
  4. 22 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdOrderSelectDto.java
  5. 99 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrder.java
  6. 62 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrderDetails.java
  7. 27 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdOrderDetailsVo.java
  8. 36 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdOrderVo.java
  9. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderDetailsMapper.java
  10. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderMapper.java
  11. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdOrderDetailsService.java
  12. 42 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdOrderService.java
  13. 21 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderDetailsServiceImpl.java
  14. 188 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderServiceImpl.java
  15. 4 0
      hx-victoriatourist/src/main/resources/mapper/jd/JdOrderDetailsMapper.xml
  16. 26 0
      hx-victoriatourist/src/main/resources/mapper/jd/JdOrderMapper.xml

+ 73 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdOrderController.java

@@ -0,0 +1,73 @@
+package com.fjhx.victoriatourist.controller.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.dto.JdOrderDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdOrderSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
+import com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo;
+import com.fjhx.victoriatourist.service.jd.JdOrderService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 京东订单 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@RestController
+@RequestMapping("/jdOrder")
+public class JdOrderController {
+
+    @Autowired
+    private JdOrderService jdOrderService;
+
+    /**
+     * 京东订单分页
+     */
+    @PostMapping("/page")
+    public Page<JdOrderVo> page(@RequestBody JdOrderSelectDto dto) {
+        return jdOrderService.getPage(dto);
+    }
+
+    /**
+     * 京东订单明细
+     */
+    @PostMapping("/detail")
+    public JdOrderVo detail(@RequestBody BaseSelectDto dto) {
+        return jdOrderService.detail(dto.getId());
+    }
+
+    /**
+     * 京东订单新增
+     */
+    @PostMapping("/add")
+    public void add(@Validated @RequestBody JdOrderDto jdOrderDto) {
+        jdOrderService.add(jdOrderDto);
+    }
+
+    /**
+     * 获取配送中心
+     */
+    @PostMapping("/getDistributionCenter")
+    public List<String> getDistributionCenter() {
+        return jdOrderService.getDistinctList(JdOrder::getDistributionCenter);
+    }
+
+    /**
+     * excel导入
+     */
+    @PostMapping("/excelImport")
+    public void excelImport(@RequestParam("file") MultipartFile file, @RequestParam("customerId") Long customerId) {
+        jdOrderService.excelImport(file, customerId);
+    }
+
+}

+ 37 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/bo/JdOrderExcelImportBo.java

@@ -0,0 +1,37 @@
+package com.fjhx.victoriatourist.entity.jd.bo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class JdOrderExcelImportBo {
+
+    @ExcelProperty("采购单号")
+    private String code;
+
+    @ExcelProperty("商品编号")
+    private String productCode;
+
+    @ExcelProperty("配送中心")
+    private String distributionCenter;
+
+    @ExcelProperty("详细地址")
+    private String detailedAddress;
+
+    @ExcelProperty("收货负责人")
+    private String contactPerson;
+
+    @ExcelProperty("收货电话")
+    private String contactNumber;
+
+    @ExcelProperty("采购价格")
+    private BigDecimal price;
+
+    @ExcelProperty("采购数量")
+    private BigDecimal quantity;
+
+}

+ 29 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdOrderDto.java

@@ -0,0 +1,29 @@
+package com.fjhx.victoriatourist.entity.jd.dto;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 京东订单新增编辑入参实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class JdOrderDto extends JdOrder {
+
+    /**
+     * 京东订单明细
+     */
+    @Valid
+    @NotEmpty(message = "京东订单明细不能为空")
+    private List<JdOrderDetails> jdOrderDetailsList;
+
+}

+ 22 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdOrderSelectDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.victoriatourist.entity.jd.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东订单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class JdOrderSelectDto extends BaseSelectDto {
+
+    /**
+     * 状态 1未出库 2部分出库 3已出库
+     */
+    private Integer status;
+
+}

+ 99 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrder.java

@@ -0,0 +1,99 @@
+package com.fjhx.victoriatourist.entity.jd.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 京东订单
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+@TableName("jd_order")
+public class JdOrder extends BasePo {
+
+    /**
+     * 订单编号
+     */
+    @NotNull(message = "客户名称不能为空")
+    private String code;
+
+    /**
+     * 客户id
+     */
+    @NotNull(message = "客户id不能为空")
+    private Long customerId;
+
+    /**
+     * 配送中心
+     */
+    @NotBlank(message = "配送中心不能为空")
+    private String distributionCenter;
+
+    /**
+     * 国家
+     */
+    @NotBlank(message = "国家id不能为空")
+    private String countryId;
+
+    /**
+     * 省
+     */
+    @NotBlank(message = "省id不能为空")
+    private String provinceId;
+
+    /**
+     * 市
+     */
+    @NotBlank(message = "市id不能为空")
+    private String cityId;
+
+    /**
+     * 详细地址
+     */
+    @NotBlank(message = "详细地址不能为控股")
+    private String detailedAddress;
+
+    /**
+     * 收件人
+     */
+    @NotBlank(message = "收件人不能为空")
+    private String contactPerson;
+
+    /**
+     * 联系电话
+     */
+    @NotBlank(message = "联系电话不能为空")
+    private String contactNumber;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 状态 1未出库 2部分出库 3已出库
+     */
+    private Integer status;
+
+    /**
+     * 出库总数量
+     */
+    private BigDecimal quantityDelivered;
+
+    /**
+     * 导入批次标记
+     */
+    private Long batchFlag;
+
+}

+ 62 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdOrderDetails.java

@@ -0,0 +1,62 @@
+package com.fjhx.victoriatourist.entity.jd.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 京东订单明细
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+@TableName("jd_order_details")
+public class JdOrderDetails extends BasePo {
+
+    /**
+     * 京东订单id
+     */
+    private Long jdOrderId;
+
+    /**
+     * 产品id
+     */
+    @NotNull(message = "产品id不能为空")
+    private Long productId;
+
+    /**
+     * 单价
+     */
+    @NotNull(message = "单价不能为空")
+    private BigDecimal price;
+
+    /**
+     * 数量
+     */
+    @NotNull(message = "数量不能为空")
+    private BigDecimal quantity;
+
+    /**
+     * 小计
+     */
+    private BigDecimal subtotal;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 出库数量
+     */
+    private BigDecimal quantityDelivered;
+
+}

+ 27 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdOrderDetailsVo.java

@@ -0,0 +1,27 @@
+package com.fjhx.victoriatourist.entity.jd.vo;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东订单明细列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class JdOrderDetailsVo extends JdOrderDetails {
+
+    /**
+     * 产品编码
+     */
+    private String productCode;
+
+    /**
+     * 产品名称
+     */
+    private String productName;
+
+}

+ 36 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdOrderVo.java

@@ -0,0 +1,36 @@
+package com.fjhx.victoriatourist.entity.jd.vo;
+
+import com.fjhx.area.service.ISetAreaName;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 京东订单列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-20
+ */
+@Getter
+@Setter
+public class JdOrderVo extends JdOrder implements ISetAreaName {
+
+    private String countryName;
+
+    private String provinceName;
+
+    private String cityName;
+
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    /**
+     * 京东订单明细
+     */
+    private List<JdOrderDetailsVo> jdOrderDetailsList;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderDetailsMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.mapper.jd;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * <p>
+ * 京东订单明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-20
+ */
+public interface JdOrderDetailsMapper extends BaseMapper<JdOrderDetails> {
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.jd;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 京东订单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-20
+ */
+public interface JdOrderMapper extends BaseMapper<JdOrder> {
+
+    /**
+     * 京东订单分页
+     */
+    Page<JdOrderVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<JdOrder> wrapper);
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdOrderDetailsService.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.service.jd;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 京东订单明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-20
+ */
+public interface JdOrderDetailsService extends BaseService<JdOrderDetails> {
+
+}

+ 42 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdOrderService.java

@@ -0,0 +1,42 @@
+package com.fjhx.victoriatourist.service.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.dto.JdOrderDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdOrderSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
+import com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo;
+import com.ruoyi.common.core.service.BaseService;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * <p>
+ * 京东订单 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-20
+ */
+public interface JdOrderService extends BaseService<JdOrder> {
+
+    /**
+     * 京东订单分页
+     */
+    Page<JdOrderVo> getPage(JdOrderSelectDto dto);
+
+    /**
+     * 京东订单明细
+     */
+    JdOrderVo detail(Long id);
+
+    /**
+     * 京东订单新增
+     */
+    void add(JdOrderDto jdOrderDto);
+
+    /**
+     * excel导入
+     */
+    void excelImport(MultipartFile file, Long customerId);
+
+}

+ 21 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderDetailsServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fjhx.victoriatourist.service.jd.impl;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.fjhx.victoriatourist.mapper.jd.JdOrderDetailsMapper;
+import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 京东订单明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-20
+ */
+@Service
+public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper, JdOrderDetails> implements JdOrderDetailsService {
+
+}

+ 188 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderServiceImpl.java

@@ -0,0 +1,188 @@
+package com.fjhx.victoriatourist.service.jd.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.area.utils.AreaUtil;
+import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.item.util.excel.util.ExcelUtil;
+import com.fjhx.victoriatourist.entity.jd.bo.JdOrderExcelImportBo;
+import com.fjhx.victoriatourist.entity.jd.dto.JdOrderDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdOrderSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.fjhx.victoriatourist.entity.jd.vo.JdOrderDetailsVo;
+import com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo;
+import com.fjhx.victoriatourist.mapper.jd.JdOrderMapper;
+import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
+import com.fjhx.victoriatourist.service.jd.JdOrderService;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+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
+ * @since 2023-04-20
+ */
+@Service
+public class JdOrderServiceImpl extends ServiceImpl<JdOrderMapper, JdOrder> implements JdOrderService {
+
+    @Autowired
+    private CustomerService customerService;
+
+    @Autowired
+    private JdOrderDetailsService jdOrderDetailsService;
+
+    @Autowired
+    private ProductInfoService productInfoService;
+
+    @Override
+    public Page<JdOrderVo> getPage(JdOrderSelectDto dto) {
+        IWrapper<JdOrder> wrapper = getWrapper();
+        wrapper.eq("jo", JdOrder::getStatus, dto.getStatus());
+        wrapper.orderByDesc("jo", JdOrder::getId);
+
+        Page<JdOrderVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<JdOrderVo> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+        // 赋值国省市
+        AreaUtil.setAreaName(records);
+
+        // 赋值客户名称
+        customerService.attributeAssign(records, JdOrder::getCustomerId, (item, customer) -> {
+            item.setCustomerName(customer.getName());
+        });
+
+        return page;
+    }
+
+    @Override
+    public JdOrderVo detail(Long id) {
+        JdOrder JdOrder = this.getById(id);
+        JdOrderVo result = BeanUtil.toBean(JdOrder, JdOrderVo.class);
+
+        List<JdOrderDetails> jdOrderDetailsList = jdOrderDetailsService.list(q -> q.eq(JdOrderDetails::getJdOrderId, id));
+        List<JdOrderDetailsVo> jdOrderDetailsVoList = BeanUtil.copyToList(jdOrderDetailsList, JdOrderDetailsVo.class);
+        productInfoService.attributeAssign(jdOrderDetailsVoList, JdOrderDetails::getProductId, (item, product) -> {
+            item.setProductCode(product.getCode());
+            item.setProductName(product.getName());
+        });
+
+        result.setJdOrderDetailsList(jdOrderDetailsVoList);
+        return result;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(JdOrderDto jdOrderDto) {
+
+        // 订单id
+        long jdOrderId = IdWorker.getId();
+
+        // 订单金额
+        BigDecimal amount = BigDecimal.ZERO;
+
+        List<JdOrderDetails> jdOrderDetailsList = jdOrderDto.getJdOrderDetailsList();
+
+        for (JdOrderDetails jdOrderDetails : jdOrderDetailsList) {
+            jdOrderDetails.setJdOrderId(jdOrderId);
+            jdOrderDetails.setSubtotal(jdOrderDetails.getPrice().multiply(jdOrderDetails.getQuantity()));
+            jdOrderDetails.setQuantityDelivered(BigDecimal.ZERO);
+            amount = amount.add(jdOrderDetails.getSubtotal());
+        }
+
+        jdOrderDto.setId(jdOrderId);
+        // 未出库
+        jdOrderDto.setStatus(1);
+        // 订单金额
+        jdOrderDto.setAmount(amount);
+        jdOrderDto.setQuantityDelivered(BigDecimal.ZERO);
+
+        this.save(jdOrderDto);
+        this.jdOrderDetailsService.saveBatch(jdOrderDetailsList);
+    }
+
+    @DSTransactional
+    @Override
+    public void excelImport(MultipartFile file, Long customerId) {
+        List<JdOrderExcelImportBo> boList = ExcelUtil.read(file, JdOrderExcelImportBo.class);
+
+        List<String> productCodeList = boList.stream().map(JdOrderExcelImportBo::getProductCode)
+                .filter(Objects::nonNull).distinct().collect(Collectors.toList());
+
+        // 验证产品编号是否存在
+        List<ProductInfo> productInfoList = productInfoService.list(q -> q.in(ProductInfo::getCode, productCodeList));
+        if (productInfoList.size() != productCodeList.size()) {
+            List<String> itemCodeList = productInfoList.stream().map(ProductInfo::getCode).collect(Collectors.toList());
+            String nonCodeStr = productCodeList.stream().filter(item -> !itemCodeList.contains(item)).collect(Collectors.joining(","));
+            throw new ServiceException("未知产品编号:" + nonCodeStr);
+        }
+
+        // 产品编号、产品id map
+        Map<String, Long> productCodeIdMap = productInfoList.stream().collect(Collectors.toMap(ProductInfo::getCode, BaseIdPo::getId));
+
+        // 订单编号、订单信息 map
+        HashMap<String, JdOrder> orderCodeIdMap = new LinkedHashMap<>();
+        List<JdOrderDetails> orderDetailsList = new ArrayList<>();
+
+        long batchFlag = IdWorker.getId();
+
+        for (JdOrderExcelImportBo bo : boList) {
+            // 订单id
+            JdOrder jdOrder = orderCodeIdMap.computeIfAbsent(bo.getCode(), code -> {
+                Long id = IdWorker.getId();
+
+                JdOrder item = new JdOrder();
+                item.setId(id);
+                item.setCode(bo.getCode());
+                item.setCustomerId(customerId);
+                item.setDistributionCenter(bo.getDistributionCenter());
+                item.setDetailedAddress(bo.getDetailedAddress());
+                item.setContactPerson(bo.getContactPerson());
+                item.setContactNumber(bo.getContactNumber());
+                item.setAmount(BigDecimal.ZERO);
+                item.setStatus(1);
+                item.setQuantityDelivered(BigDecimal.ZERO);
+                item.setBatchFlag(batchFlag);
+                return item;
+            });
+
+            BigDecimal subtotal = bo.getQuantity().multiply(bo.getPrice());
+            jdOrder.setAmount(jdOrder.getAmount().add(subtotal));
+
+            JdOrderDetails jdOrderDetails = new JdOrderDetails();
+            jdOrderDetails.setId(IdWorker.getId());
+            jdOrderDetails.setJdOrderId(jdOrder.getId());
+            jdOrderDetails.setProductId(productCodeIdMap.get(bo.getProductCode()));
+            jdOrderDetails.setPrice(bo.getPrice());
+            jdOrderDetails.setQuantity(bo.getQuantity());
+            jdOrderDetails.setSubtotal(subtotal);
+            jdOrderDetails.setQuantityDelivered(BigDecimal.ZERO);
+            orderDetailsList.add(jdOrderDetails);
+        }
+
+        this.saveBatch(orderCodeIdMap.values());
+        this.jdOrderDetailsService.saveBatch(orderDetailsList);
+    }
+
+}

+ 4 - 0
hx-victoriatourist/src/main/resources/mapper/jd/JdOrderDetailsMapper.xml

@@ -0,0 +1,4 @@
+<?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.victoriatourist.mapper.jd.JdOrderDetailsMapper">
+</mapper>

+ 26 - 0
hx-victoriatourist/src/main/resources/mapper/jd/JdOrderMapper.xml

@@ -0,0 +1,26 @@
+<?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.victoriatourist.mapper.jd.JdOrderMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo">
+        select
+            jo.id,
+            jo.code,
+            jo.customer_id,
+            jo.distribution_center,
+            jo.country_id,
+            jo.province_id,
+            jo.city_id,
+            jo.detailed_address,
+            jo.contact_person,
+            jo.contact_number,
+            jo.amount,
+            jo.status,
+            jo.create_user,
+            jo.create_time,
+            jo.update_user,
+            jo.update_time
+        from jd_order jo
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>