Răsfoiți Sursa

订单状态梳理

24282 1 an în urmă
părinte
comite
1ebe2b8bd5

+ 17 - 8
sd-business/src/main/java/com/sd/business/controller/order/OrderInfoController.java

@@ -7,6 +7,7 @@ import com.sd.business.entity.order.dto.OrderInfoSelectDto;
 import com.sd.business.entity.order.dto.SkuSpecPackageBomDto;
 import com.sd.business.entity.order.dto.SkuSpecPriceDto;
 import com.sd.business.entity.order.enums.OrderExceptionTypeEnum;
+import com.sd.business.entity.order.enums.OrderStatusEnum;
 import com.sd.business.entity.order.vo.OrderInfoVo;
 import com.sd.business.entity.order.vo.OrderPackageBomVo;
 import com.sd.business.entity.order.vo.OutBomVo;
@@ -103,14 +104,6 @@ public class OrderInfoController {
     }
 
     /**
-     * 获取订单异常类型
-     */
-    @PostMapping("/getExceptionTypeList")
-    public List<Map<String, Object>> getExceptionTypeList() {
-        return OrderExceptionTypeEnum.getMapList();
-    }
-
-    /**
      * 转为正常订单
      */
     @PostMapping("/turnToRegularOrder")
@@ -182,4 +175,20 @@ public class OrderInfoController {
         orderInfoService.orderExportExcel(dto.getId());
     }
 
+    /**
+     * 获取订单异常类型
+     */
+    @PostMapping("/getExceptionTypeList")
+    public List<Map<String, Object>> getExceptionTypeList() {
+        return OrderExceptionTypeEnum.getMapList();
+    }
+
+    /**
+     * 获取订单状态
+     */
+    @PostMapping("/getOrderStatusList")
+    public List<Map<String, Object>> getOrderStatusList() {
+        return OrderStatusEnum.getMapList();
+    }
+
 }

+ 0 - 2
sd-business/src/main/java/com/sd/business/entity/order/enums/OrderExceptionTypeEnum.java

@@ -24,8 +24,6 @@ public enum OrderExceptionTypeEnum {
     UNKNOWN_BOM_SPEC(6, "订单sku规格未绑定bom规格"),
     SKU_UPDATE(7, "订单商品被更改"),
     NO_DESIGN_DOCUMENT(8, "未绑定图稿"),
-    UNDERSTOCK(9, "主材库存不足"),
-    ORDER_CHECK(10, "万里牛状态异常:订单打回审核"),
     ;
 
     private static final Map<Integer, OrderExceptionTypeEnum> map = new HashMap<>();

+ 15 - 13
sd-business/src/main/java/com/sd/business/entity/order/enums/OrderStatusEnum.java

@@ -1,11 +1,13 @@
 package com.sd.business.entity.order.enums;
 
-import com.ruoyi.common.exception.ServiceException;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 订单状态
@@ -15,12 +17,11 @@ import java.util.Map;
 public enum OrderStatusEnum {
     DRAFT(0, "草稿"),
     UNDER_REVIEW(10, "订单待确认"),
-    STOCK_PREPARATION(20, "备料中"),
+    SUSPEND(12, "挂起"),
+    SCHEDULING(20, "排单"),
     IN_PRODUCTION(30, "生产中"),
     COMPLETION_PRODUCTION(40, "生产完成"),
     HAVE_BEEN_SHIPPED(50, "已发货"),
-    SUSPEND(60, "挂起"),
-    EXCHANGE(90, "已售后"),
 
     ;
 
@@ -35,15 +36,16 @@ public enum OrderStatusEnum {
     private final Integer key;
     private final String value;
 
-    /**
-     * 通过key获取名称
-     */
-    public static OrderStatusEnum getEnum(Integer key) {
-        OrderStatusEnum orderStatusEnum = map.get(key);
-        if (orderStatusEnum == null) {
-            throw new ServiceException("未知订单状态:" + key);
-        }
-        return orderStatusEnum;
+    public static List<Map<String, Object>> getMapList() {
+        return Arrays.stream(values())
+                .map(item -> {
+                    Map<String, Object> tempMap = new HashMap<>();
+                    tempMap.put("key", item.getKey());
+                    tempMap.put("value", item.getValue());
+                    tempMap.put("identifying", item.name());
+                    return tempMap;
+                })
+                .collect(Collectors.toList());
     }
 
 }

+ 7 - 7
sd-business/src/main/java/com/sd/business/service/order/impl/OrderInfoServiceImpl.java

@@ -171,7 +171,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                 .from(OrderInfo.class)
                 .leftJoin(Department.class, OrderInfo::getDepartmentId)
 
-                .orderByDesc("if(t1.status = 60, 1, 0)")
+                .orderByDesc("if(t1.status = " + OrderStatusEnum.SUSPEND.getKey() + ", 1, 0)")
                 .orderByDesc(OrderInfo::getId)
                 .eq(OrderInfo::getStatus, dto.getStatus())
                 .eq(OrderInfo::getSettlementStatus, dto.getSettlementStatus())
@@ -474,7 +474,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         orderSkuProductionCostService.editLinked(orderSkuProductionCostList, OrderSkuProductionCost::getOrderId, dto.getId());
 
         // 是委外订单并且没有包材时,修改订单状态为生产中,并生成生产任务和工单
-        if (ObjectUtil.equals(dto.getStatus(), OrderStatusEnum.STOCK_PREPARATION.getKey())
+        if (ObjectUtil.equals(dto.getStatus(), OrderStatusEnum.SCHEDULING.getKey())
                 && ObjectUtil.equals(dto.getType(), 2)
                 && ObjectUtil.isEmpty(orderSkuBomList)) {
             dto.setStatus(OrderStatusEnum.IN_PRODUCTION.getKey());
@@ -525,7 +525,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
             throw new ServiceException("未找到订单");
         }
 
-        if (orderInfo.getStatus() <= OrderStatusEnum.STOCK_PREPARATION.getKey()) {
+        if (orderInfo.getStatus() <= OrderStatusEnum.SCHEDULING.getKey()) {
             delete(id);
             return;
         }
@@ -588,7 +588,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         }
 
         if (Objects.equals(orderInfo.getDelFlag(), StatusConstant.NOT_DELETED)
-                && orderInfo.getStatus() > OrderStatusEnum.STOCK_PREPARATION.getKey()) {
+                && orderInfo.getStatus() > OrderStatusEnum.SCHEDULING.getKey()) {
             throw new ServiceException("订单正在生产中,无法直接删除,需要走审批流程");
         }
 
@@ -613,7 +613,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         List<OrderSkuDto> orderSkuList = dto.getOrderSkuList();
 
         // 更新订单
-        dto.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
+        dto.setStatus(OrderStatusEnum.SCHEDULING.getKey());
         // 订单为委外订单时,订单分类为委外订单,订单费用修改
         if (Objects.equals(dto.getType(), 2)) {
             dto.setClassify(OrderClassifyEnum.OUTSOURCE_ORDER.getKey());
@@ -700,7 +700,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         orderSkuProductionCostService.editLinked(orderSkuProductionCostList, OrderSkuProductionCost::getOrderId, dto.getId());
 
         // 是委外订单并且没有包材时,修改订单状态为生产中,并生成生产任务和工单
-        if (ObjectUtil.equals(dto.getStatus(), OrderStatusEnum.STOCK_PREPARATION.getKey())
+        if (ObjectUtil.equals(dto.getStatus(), OrderStatusEnum.SCHEDULING.getKey())
                 && ObjectUtil.equals(dto.getType(), 2)
                 && ObjectUtil.isEmpty(orderSkuBomList)) {
             dto.setStatus(OrderStatusEnum.IN_PRODUCTION.getKey());
@@ -882,7 +882,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         if (orderInfo == null) {
             throw new ServiceException("未找到订单");
         }
-        update(q -> q.set(OrderInfo::getStatus, OrderStatusEnum.STOCK_PREPARATION.getKey()).eq(BaseIdPo::getId, id));
+        update(q -> q.set(OrderInfo::getStatus, OrderStatusEnum.SCHEDULING.getKey()).eq(BaseIdPo::getId, id));
     }
 
     @Override

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

@@ -217,7 +217,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
         // 订单进度
         if (department != null && Objects.equals(department.getOrderMode(), "2") && orderInfo.getWlnStatus() != 1) {
-            orderInfo.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
+            orderInfo.setStatus(OrderStatusEnum.SCHEDULING.getKey());
         } else {
             orderInfo.setStatus(OrderStatusEnum.UNDER_REVIEW.getKey());
         }
@@ -334,7 +334,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
                 && Objects.equals(department.getOrderMode(), "2")
                 && orderInfo.getWlnStatus() != 1
                 && Objects.equals(orderInfo.getStatus(), OrderStatusEnum.UNDER_REVIEW.getKey())) {
-            orderInfo.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
+            orderInfo.setStatus(OrderStatusEnum.SCHEDULING.getKey());
         }
 
         updateOrderList.add(orderInfo);
@@ -545,7 +545,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
             assignedOrderSkuPrice(context, orderSku, skuSpec);
 
-            if (OrderStatusEnum.STOCK_PREPARATION.getKey().equals(orderInfo.getStatus())
+            if (OrderStatusEnum.SCHEDULING.getKey().equals(orderInfo.getStatus())
                     && orderSku.getArtworkLibraryId() == null) {
                 addExceptionType(orderInfo, OrderExceptionTypeEnum.NO_DESIGN_DOCUMENT);
             }