24282 1 سال پیش
والد
کامیت
7f39fa0651

+ 41 - 0
sd-business/src/main/java/com/sd/business/controller/production/ProductionOrderController.java

@@ -0,0 +1,41 @@
+package com.sd.business.controller.production;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.production.dto.ProductionOrderDto;
+import com.sd.business.entity.production.dto.SetTagDto;
+import com.sd.business.entity.production.vo.ProductionOrderVo;
+import com.sd.business.service.production.ProductionOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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;
+
+/**
+ * 生产订单
+ */
+@RestController
+@RequestMapping("/productionOrder")
+public class ProductionOrderController {
+
+    @Autowired
+    private ProductionOrderService productionOrderService;
+
+    /**
+     * 生产订单分页
+     */
+    @PostMapping("/page")
+    public Page<ProductionOrderVo> page(@RequestBody ProductionOrderDto dto) {
+        return productionOrderService.getPage(dto);
+    }
+
+    /**
+     * 赋值标签
+     */
+    @PostMapping("/setTag")
+    public void setTag(@Validated @RequestBody SetTagDto dto) {
+        productionOrderService.setTag(dto);
+    }
+
+}

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/order/po/OrderInfo.java

@@ -187,6 +187,11 @@ public class OrderInfo extends BasePo {
     private String expressDeliveryId;
 
     /**
+     * 标签
+     */
+    private String tag;
+
+    /**
      * 备注
      */
     private String remark;

+ 33 - 0
sd-business/src/main/java/com/sd/business/entity/production/dto/ProductionOrderDto.java

@@ -0,0 +1,33 @@
+package com.sd.business.entity.production.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+@Getter
+@Setter
+public class ProductionOrderDto extends BaseSelectDto {
+
+    /**
+     * 订单号
+     */
+    private String code;
+
+    /**
+     * 万里牛订单号
+     */
+    private String wlnCode;
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+    /**
+     * 标签
+     */
+    private List<String> tagList;
+
+}

+ 25 - 0
sd-business/src/main/java/com/sd/business/entity/production/dto/SetTagDto.java

@@ -0,0 +1,25 @@
+package com.sd.business.entity.production.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+@Getter
+@Setter
+public class SetTagDto {
+
+    /**
+     * 订单id列表
+     */
+    @NotEmpty(message = "订单id列表不能为空")
+    private List<Long> orderIdList;
+
+    /**
+     * 标签值
+     */
+    @NotEmpty(message = "标签值不能为空")
+    private String tag;
+
+}

+ 49 - 0
sd-business/src/main/java/com/sd/business/entity/production/vo/ProductionOrderScheduleVo.java

@@ -0,0 +1,49 @@
+package com.sd.business.entity.production.vo;
+
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+@Builder
+public class ProductionOrderScheduleVo {
+
+    /**
+     * sku id
+     */
+    private Long skuId;
+
+    /**
+     * sku规格id
+     */
+    private Long skuSpecId;
+
+    /**
+     * 生产数量
+     */
+    private BigDecimal productionQuantity;
+
+    /**
+     * 完成数量
+     */
+    private BigDecimal completeQuantity;
+
+    /**
+     * sku规格品号
+     */
+    private String skuSpecCode;
+
+    /**
+     * sku规格品名
+     */
+    private String skuSpecName;
+
+    /**
+     * sku名称
+     */
+    private String skuName;
+
+}

+ 42 - 0
sd-business/src/main/java/com/sd/business/entity/production/vo/ProductionOrderVo.java

@@ -0,0 +1,42 @@
+package com.sd.business.entity.production.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+@Getter
+@Setter
+public class ProductionOrderVo {
+
+    /**
+     * 进度
+     */
+    List<ProductionOrderScheduleVo> productionOrderScheduleVoList;
+    /**
+     * 事业部
+     */
+    private String departmentName;
+    /**
+     * 订单id
+     */
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    private String code;
+    /**
+     * 万里牛订单号
+     */
+    private String wlnCode;
+    /**
+     * 快递单号
+     */
+    private String expressDeliveryCode;
+    /**
+     * 下单时间
+     */
+    private Date wlnCreateTime;
+
+}

+ 12 - 0
sd-business/src/main/java/com/sd/business/mapper/production/ProductionOrderMapper.java

@@ -0,0 +1,12 @@
+package com.sd.business.mapper.production;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.production.vo.ProductionOrderVo;
+import org.apache.ibatis.annotations.Param;
+
+public interface ProductionOrderMapper {
+
+    Page<ProductionOrderVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionOrderVo> wrapper);
+
+}

+ 20 - 0
sd-business/src/main/java/com/sd/business/service/production/ProductionOrderService.java

@@ -0,0 +1,20 @@
+package com.sd.business.service.production;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.production.dto.ProductionOrderDto;
+import com.sd.business.entity.production.dto.SetTagDto;
+import com.sd.business.entity.production.vo.ProductionOrderVo;
+
+public interface ProductionOrderService {
+
+    /**
+     * 生产订单分页
+     */
+    Page<ProductionOrderVo> getPage(ProductionOrderDto dto);
+
+    /**
+     * 赋值标签
+     */
+    void setTag(SetTagDto dto);
+
+}

+ 91 - 0
sd-business/src/main/java/com/sd/business/service/production/impl/ProductionOrderServiceImpl.java

@@ -0,0 +1,91 @@
+package com.sd.business.service.production.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.order.enums.OrderStatusEnum;
+import com.sd.business.entity.order.po.OrderInfo;
+import com.sd.business.entity.production.dto.ProductionOrderDto;
+import com.sd.business.entity.production.dto.SetTagDto;
+import com.sd.business.entity.production.po.ProductionTask;
+import com.sd.business.entity.production.vo.ProductionOrderScheduleVo;
+import com.sd.business.entity.production.vo.ProductionOrderVo;
+import com.sd.business.mapper.production.ProductionOrderMapper;
+import com.sd.business.service.order.OrderService;
+import com.sd.business.service.production.ProductionOrderService;
+import com.sd.business.service.production.ProductionTaskService;
+import com.sd.business.service.sku.SkuService;
+import com.sd.business.service.sku.SkuSpecService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class ProductionOrderServiceImpl implements ProductionOrderService {
+
+    @Resource
+    private ProductionOrderMapper productionOrderMapper;
+
+    @Autowired
+    private ProductionTaskService productionTaskService;
+
+    @Autowired
+    private SkuSpecService skuSpecService;
+
+    @Autowired
+    private SkuService skuService;
+
+    @Autowired
+    private OrderService orderService;
+
+    @Override
+    public Page<ProductionOrderVo> getPage(ProductionOrderDto dto) {
+
+        IWrapper<ProductionOrderVo> wrapper = IWrapper.getWrapper();
+        wrapper.gt("oi", OrderInfo::getStatus, OrderStatusEnum.STOCK_PREPARATION.getKey());
+        wrapper.like("oi", OrderInfo::getCode, dto.getCode());
+        wrapper.like("oi", OrderInfo::getWlnCode, dto.getWlnCode());
+        wrapper.eq("oi", OrderInfo::getDepartmentId, dto.getDepartmentId());
+        wrapper.in("oi", OrderInfo::getTag, dto.getTagList());
+
+        Page<ProductionOrderVo> page = productionOrderMapper.getPage(dto.getPage(), wrapper);
+        List<ProductionOrderVo> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+        List<Long> orderIdList = records.stream().map(ProductionOrderVo::getOrderId).collect(Collectors.toList());
+        List<ProductionTask> productionTaskList = productionTaskService.listByIds(orderIdList);
+
+        List<ProductionOrderScheduleVo> productionOrderScheduleVoList = productionTaskList.stream().map(item ->
+                        ProductionOrderScheduleVo.builder()
+                                .skuSpecId(item.getSkuSpecId())
+                                .productionQuantity(item.getProductionQuantity())
+                                .completeQuantity(item.getCompleteQuantity())
+                                .build())
+                .collect(Collectors.toList());
+
+        skuSpecService.attributeAssign(productionOrderScheduleVoList, ProductionOrderScheduleVo::getSkuSpecId,
+                (item, skuSpec) -> {
+                    item.setSkuId(skuSpec.getSkuId());
+                    item.setSkuSpecCode(skuSpec.getCode());
+                    item.setSkuSpecName(skuSpec.getName());
+                });
+
+        skuService.attributeAssign(productionOrderScheduleVoList, ProductionOrderScheduleVo::getSkuId,
+                (item, sku) -> {
+                    item.setSkuName(sku.getName());
+                });
+
+        return page;
+    }
+
+    @Override
+    public void setTag(SetTagDto dto) {
+        orderService.update(q -> q.in(BaseIdPo::getId, dto.getOrderIdList()).set(OrderInfo::getTag, dto.getTag()));
+    }
+
+}

+ 17 - 0
sd-business/src/main/resources/mapper/production/ProductionOrderService.xml

@@ -0,0 +1,17 @@
+<?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.production.ProductionOrderMapper">
+
+    <select id="getPage" resultType="com.sd.business.entity.production.vo.ProductionOrderVo">
+        select d.name departmentName,
+               oi.id  orderId,
+               oi.code,
+               oi.wln_code,
+               oi.express_delivery_code,
+               oi.wln_create_time
+        from order_info oi
+                 left join department d on oi.department_id = d.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 1 - 0
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -284,6 +284,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         orderInfo.setDepartmentId(department.getId());
         orderInfo.setRemark(wlnOrder.getString("remark"));
         orderInfo.setTaxRate(new BigDecimal("10.00"));
+        orderInfo.setTag("0");
 
         StringBuilder builder = new StringBuilder();
         // 订单来源平台