瀏覽代碼

订单明细

24282 1 年之前
父節點
當前提交
d7e103fae2

+ 71 - 0
sd-business/src/main/java/com/sd/business/controller/order/OrderSkuBomController.java

@@ -0,0 +1,71 @@
+package com.sd.business.controller.order;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.sd.business.entity.order.dto.OrderSkuBomDto;
+import com.sd.business.entity.order.dto.OrderSkuBomSelectDto;
+import com.sd.business.entity.order.vo.OrderSkuBomVo;
+import com.sd.business.service.order.OrderSkuBomService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 订单sku bom 关联 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-07-10
+ */
+@RestController
+@RequestMapping("/orderSkuBom")
+public class OrderSkuBomController {
+
+    @Autowired
+    private OrderSkuBomService orderSkuBomService;
+
+    /**
+     * 订单sku bom 关联分页
+     */
+    @PostMapping("/page")
+    public Page<OrderSkuBomVo> page(@RequestBody OrderSkuBomSelectDto dto) {
+        return orderSkuBomService.getPage(dto);
+    }
+
+    /**
+     * 订单sku bom 关联明细
+     */
+    @PostMapping("/detail")
+    public OrderSkuBomVo detail(@RequestBody BaseSelectDto dto) {
+        return orderSkuBomService.detail(dto.getId());
+    }
+
+    /**
+     * 订单sku bom 关联新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody OrderSkuBomDto orderSkuBomDto) {
+        orderSkuBomService.add(orderSkuBomDto);
+    }
+
+    /**
+     * 订单sku bom 关联编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody OrderSkuBomDto orderSkuBomDto) {
+        orderSkuBomService.edit(orderSkuBomDto);
+    }
+
+    /**
+     * 订单sku bom 关联删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        orderSkuBomService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/order/dto/OrderSkuBomDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.order.dto;
+
+import com.sd.business.entity.order.po.OrderSkuBom;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单sku bom 关联新增编辑入参实体
+ *
+ * @author
+ * @since 2023-07-10
+ */
+@Getter
+@Setter
+public class OrderSkuBomDto extends OrderSkuBom {
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/order/dto/OrderSkuBomSelectDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.order.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单sku bom 关联列表查询入参实体
+ *
+ * @author
+ * @since 2023-07-10
+ */
+@Getter
+@Setter
+public class OrderSkuBomSelectDto extends BaseSelectDto {
+
+}

+ 53 - 0
sd-business/src/main/java/com/sd/business/entity/order/po/OrderSkuBom.java

@@ -0,0 +1,53 @@
+package com.sd.business.entity.order.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 订单sku bom 关联
+ * </p>
+ *
+ * @author
+ * @since 2023-07-10
+ */
+@Getter
+@Setter
+@TableName("order_sku_bom")
+public class OrderSkuBom extends BasePo {
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 订单sku id
+     */
+    private Long orderSkuId;
+
+    /**
+     * bom规格id
+     */
+    private Long bomSpecId;
+
+    /**
+     * 单价
+     */
+    private BigDecimal unitPrice;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 总数量
+     */
+    private BigDecimal totalQuantity;
+
+}

+ 22 - 0
sd-business/src/main/java/com/sd/business/entity/order/vo/OrderSkuBomVo.java

@@ -0,0 +1,22 @@
+package com.sd.business.entity.order.vo;
+
+import com.sd.business.entity.order.po.OrderSkuBom;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单sku bom 关联列表查询返回值实体
+ *
+ * @author
+ * @since 2023-07-10
+ */
+@Getter
+@Setter
+public class OrderSkuBomVo extends OrderSkuBom {
+
+    /**
+     * bom规格名称
+     */
+    private String bomSpecName;
+
+}

+ 22 - 0
sd-business/src/main/java/com/sd/business/entity/order/vo/OrderSkuVo.java

@@ -4,6 +4,8 @@ import com.sd.business.entity.order.po.OrderSku;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 订单sku列表查询返回值实体
  *
@@ -14,4 +16,24 @@ import lombok.Setter;
 @Setter
 public class OrderSkuVo extends OrderSku {
 
+    /**
+     * bom规格 id
+     */
+    private Long bomSpecId;
+
+    /**
+     * 品名
+     */
+    private String name;
+
+    /**
+     * 品号
+     */
+    private String code;
+
+    /**
+     * 包材配件
+     */
+    private List<OrderSkuBomVo> orderSkuBomList;
+
 }

+ 26 - 0
sd-business/src/main/java/com/sd/business/mapper/order/OrderSkuBomMapper.java

@@ -0,0 +1,26 @@
+package com.sd.business.mapper.order;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.order.po.OrderSkuBom;
+import com.sd.business.entity.order.vo.OrderSkuBomVo;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 订单sku bom 关联 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-07-10
+ */
+public interface OrderSkuBomMapper extends BaseMapper<OrderSkuBom> {
+
+    /**
+     * 订单sku bom 关联分页
+     */
+    Page<OrderSkuBomVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<OrderSkuBom> wrapper);
+
+}

+ 46 - 0
sd-business/src/main/java/com/sd/business/service/order/OrderSkuBomService.java

@@ -0,0 +1,46 @@
+package com.sd.business.service.order;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.service.BaseService;
+import com.sd.business.entity.order.dto.OrderSkuBomDto;
+import com.sd.business.entity.order.dto.OrderSkuBomSelectDto;
+import com.sd.business.entity.order.po.OrderSkuBom;
+import com.sd.business.entity.order.vo.OrderSkuBomVo;
+
+
+/**
+ * <p>
+ * 订单sku bom 关联 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-10
+ */
+public interface OrderSkuBomService extends BaseService<OrderSkuBom> {
+
+    /**
+     * 订单sku bom 关联分页
+     */
+    Page<OrderSkuBomVo> getPage(OrderSkuBomSelectDto dto);
+
+    /**
+     * 订单sku bom 关联明细
+     */
+    OrderSkuBomVo detail(Long id);
+
+    /**
+     * 订单sku bom 关联新增
+     */
+    void add(OrderSkuBomDto orderSkuBomDto);
+
+    /**
+     * 订单sku bom 关联编辑
+     */
+    void edit(OrderSkuBomDto orderSkuBomDto);
+
+    /**
+     * 订单sku bom 关联删除
+     */
+    void delete(Long id);
+
+}

+ 45 - 2
sd-business/src/main/java/com/sd/business/service/order/impl/OrderServiceImpl.java

@@ -10,14 +10,25 @@ import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.order.dto.OrderInfoDto;
 import com.sd.business.entity.order.dto.OrderSelectDto;
 import com.sd.business.entity.order.po.OrderInfo;
+import com.sd.business.entity.order.po.OrderSku;
+import com.sd.business.entity.order.po.OrderSkuBom;
 import com.sd.business.entity.order.vo.OrderInfoVo;
+import com.sd.business.entity.order.vo.OrderSkuBomVo;
+import com.sd.business.entity.order.vo.OrderSkuVo;
 import com.sd.business.mapper.order.OrderMapper;
+import com.sd.business.service.bom.BomSpecService;
 import com.sd.business.service.department.DepartmentService;
 import com.sd.business.service.order.OrderService;
+import com.sd.business.service.order.OrderSkuBomService;
+import com.sd.business.service.order.OrderSkuService;
+import com.sd.business.service.sku.SkuSpecService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,6 +44,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
     @Autowired
     private DepartmentService departmentService;
 
+    @Autowired
+    private OrderSkuService orderSkuService;
+
+    @Autowired
+    private SkuSpecService skuSpecService;
+
+    @Autowired
+    private BomSpecService bomSpecService;
+
+    @Autowired
+    private OrderSkuBomService orderSkuBomService;
+
     @Override
     public Page<OrderInfoVo> getPage(OrderSelectDto dto) {
         IWrapper<OrderInfo> wrapper = getWrapper();
@@ -64,18 +87,38 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         if (orderInfo == null) {
             throw new ServiceException("未知订单");
         }
+
+        // 订单
         OrderInfoVo result = BeanUtil.toBean(orderInfo, OrderInfoVo.class);
         result.setDeliveryTime(DateUtil.offsetDay(result.getCreateTime(), 1));
-
         if (orderInfo.getDepartmentId() == null) {
             return result;
         }
-
         Department department = departmentService.getById(orderInfo.getDepartmentId());
         if (department != null) {
             result.setDepartmentName(department.getName());
         }
 
+        // 订单明细
+        List<OrderSkuVo> orderSkuList = BeanUtil.copyToList(orderSkuService.list(q -> q.eq(OrderSku::getOrderId, id)), OrderSkuVo.class);
+        skuSpecService.attributeAssign(orderSkuList, OrderSkuVo::getSkuSpecId, (item, skuSpec) -> {
+            item.setBomSpecId(skuSpec.getBomSpecId());
+        });
+        bomSpecService.attributeAssign(orderSkuList, OrderSkuVo::getBomSpecId, (item, bomSpec) -> {
+            item.setName(bomSpec.getName());
+            item.setCode(bomSpec.getCode());
+        });
+        result.setOrderSkuList(orderSkuList);
+
+        // 包材配件/单品
+        List<OrderSkuBomVo> orderSkuBomList = BeanUtil.copyToList(orderSkuBomService.list(q -> q.eq(OrderSkuBom::getOrderId, id)), OrderSkuBomVo.class);
+        bomSpecService.attributeAssign(orderSkuBomList, OrderSkuBom::getBomSpecId, (item, bomSpec) -> {
+            item.setBomSpecName(bomSpec.getName());
+        });
+        Map<Long, List<OrderSkuBomVo>> orderSkuBomMap = orderSkuBomList.stream().collect(Collectors.groupingBy(OrderSkuBom::getOrderSkuId));
+        for (OrderSkuVo orderSkuVo : orderSkuList) {
+            orderSkuVo.setOrderSkuBomList(orderSkuBomMap.getOrDefault(orderSkuVo.getId(), Collections.emptyList()));
+        }
 
         return result;
     }

+ 57 - 0
sd-business/src/main/java/com/sd/business/service/order/impl/OrderSkuBomServiceImpl.java

@@ -0,0 +1,57 @@
+package com.sd.business.service.order.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.order.dto.OrderSkuBomDto;
+import com.sd.business.entity.order.dto.OrderSkuBomSelectDto;
+import com.sd.business.entity.order.po.OrderSkuBom;
+import com.sd.business.entity.order.vo.OrderSkuBomVo;
+import com.sd.business.mapper.order.OrderSkuBomMapper;
+import com.sd.business.service.order.OrderSkuBomService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 订单sku bom 关联 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-10
+ */
+@Service
+public class OrderSkuBomServiceImpl extends ServiceImpl<OrderSkuBomMapper, OrderSkuBom> implements OrderSkuBomService {
+
+    @Override
+    public Page<OrderSkuBomVo> getPage(OrderSkuBomSelectDto dto) {
+        IWrapper<OrderSkuBom> wrapper = getWrapper();
+        wrapper.orderByDesc("osb", OrderSkuBom::getId);
+        Page<OrderSkuBomVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public OrderSkuBomVo detail(Long id) {
+        OrderSkuBom OrderSkuBom = this.getById(id);
+        OrderSkuBomVo result = BeanUtil.toBean(OrderSkuBom, OrderSkuBomVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(OrderSkuBomDto orderSkuBomDto) {
+        this.save(orderSkuBomDto);
+    }
+
+    @Override
+    public void edit(OrderSkuBomDto orderSkuBomDto) {
+        this.updateById(orderSkuBomDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 20 - 0
sd-business/src/main/resources/mapper/order/OrderSkuBomMapper.xml

@@ -0,0 +1,20 @@
+<?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.sd.business.mapper.order.OrderSkuBomMapper">
+    <select id="getPage" resultType="com.sd.business.entity.order.vo.OrderSkuBomVo">
+        select osb.id,
+               osb.order_id,
+               osb.order_sku_id,
+               osb.bom_spec_id,
+               osb.unit_price,
+               osb.quantity,
+               osb.total_quantity,
+               osb.create_user,
+               osb.create_time,
+               osb.update_user,
+               osb.update_time
+        from order_sku_bom osb
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>