Browse Source

委外订单新增时,没有包材的订单状态设置为生产中

fgd 1 năm trước cách đây
mục cha
commit
04b414ef58

+ 3 - 1
sd-business/src/main/java/com/sd/business/flow/OrderFlow.java

@@ -1,5 +1,6 @@
 package com.sd.business.flow;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.flow.enums.FlowStatusEnum;
@@ -51,7 +52,8 @@ public class OrderFlow extends FlowDelegate {
         orderService.update(q -> q
                 .eq(BaseIdPo::getId, businessId)
                 .set(OrderInfo::getFlowStatus, FlowStatusEnum.PASS.getKey())
-                .set(OrderInfo::getStatus, OrderStatusEnum.STOCK_PREPARATION.getKey())
+                // 判断委外订单是否存在包材,不存在则直接修改为生产中
+                .set(OrderInfo::getStatus, orderService.isExistOrderSkuBom(businessId) ? OrderStatusEnum.IN_PRODUCTION.getKey() : OrderStatusEnum.STOCK_PREPARATION.getKey())
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );

+ 7 - 0
sd-business/src/main/java/com/sd/business/service/order/OrderService.java

@@ -97,4 +97,11 @@ public interface OrderService extends BaseService<OrderInfo> {
      */
     String getOrderWlnCodeStr(OrderSelectDto dto);
 
+    /**
+     * 订单是否存在包材
+     * @param orderId
+     * @return
+     */
+    Boolean isExistOrderSkuBom(Long orderId);
+
 }

+ 17 - 0
sd-business/src/main/java/com/sd/business/service/order/impl/OrderServiceImpl.java

@@ -665,6 +665,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         return JSON.toJSONString(wlnCodeList);
     }
 
+    @Override
+    public Boolean isExistOrderSkuBom(Long orderId) {
+        OrderInfo orderInfo = this.getById(orderId);
+        if (!ObjectUtil.equals(orderInfo.getType(), 2)) {
+            return false;
+        }
+        boolean flag = true;
+        List<OrderSku> list = orderSkuService.list(q -> q.eq(OrderSku::getOrderId, orderInfo.getId()));
+        for (OrderSku orderSku : list) {
+            long count = orderSkuBomService.count(q -> q.eq(OrderSkuBom::getOrderSkuId, orderSku.getId()));
+            if (count != 0) {
+                flag = false;
+            }
+        }
+        return flag;
+    }
+
     /**
      * 删除订单以及订单关联数据
      */