donglang преди 3 седмици
родител
ревизия
994d7c5fc1

+ 32 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -14,6 +14,7 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.fleet.api.model.vo.DriverConductRulesVO;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.fleet.api.model.vo.TruckDispatchCoefficientVO;
+import com.sckw.order.api.model.OrderUnitInfoDetailVO;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.model.*;
@@ -125,10 +126,12 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         CompletableFuture.runAsync(() ->{
             try {
                 log.debug("开始异步保存铲车司机数据,运单ID:{}", waybillOrder.getId());
+                //企业id
+                Long entId = getEntId(waybillOrder);
 
                 KwtForkliftWaybillOrder forklift = new KwtForkliftWaybillOrder();
                 forklift.setFOrderNo("F" + System.currentTimeMillis());
-                forklift.setEntId(waybillOrder.getEntId());
+                forklift.setEntId(entId);
                 forklift.setWOrderId(waybillOrder.getId());
                 forklift.setLOrderId(waybillOrder.getLOrderId());
 
@@ -172,6 +175,34 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         });
     }
 
+    /**
+     * 获取企业id
+     * @param waybillOrder
+     * @return
+     */
+    private Long getEntId(KwtWaybillOrder waybillOrder) {
+        log.info("[创建装货铲车]开始查询企业id,入参参数:{}", JSON.toJSONString(waybillOrder));
+        Long entId;
+        KwtLogisticsOrder logOrder = getLogisticsOrder(waybillOrder.getLOrderId());
+        KwtLogisticsOrderUnit kwtLogisticsOrderUnit = logisticsOrderUnitRepository.queryByLOrderIdAndUnitType(logOrder.getId(), 1);
+        if (kwtLogisticsOrderUnit == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_FOUND, "[接单]物流企业信息数据不存在");
+        }
+        // 原矿运输山上、上下门卫企业id
+        List<Long> mockEntIds = Arrays.asList(538039617157337089L, 538040297439891457L);
+        if (Objects.equals(1, logOrder.getOrderType()) && mockEntIds.contains(kwtLogisticsOrderUnit.getEntId())) {
+            entId = mockEntIds.get(0);
+        } else {
+            List<OrderUnitInfoDetailVO> unitInfoDetailVOS = tradeOrderInfoService.queryOrderUnitByTradeOrderId(logOrder.getTOrderId());
+            OrderUnitInfoDetailVO unitInfoDetailVO = unitInfoDetailVOS.stream()
+                    .filter(unit -> Objects.equals(unit.getUnitType(), "2"))
+                    .findFirst().orElse(new OrderUnitInfoDetailVO());
+            entId = unitInfoDetailVO.getEntId();
+        }
+        log.info("[创建装货铲车]查询企业id完成,入参参数:{}", JSON.toJSONString(entId));
+        return entId;
+    }
+
     /**
      * 修改门卫订单状态
      * @param waybillOrder

+ 34 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ReplenishHandler.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.handler;
 
 
+import com.alibaba.fastjson.JSON;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
@@ -9,12 +10,10 @@ import com.sckw.core.model.enums.ForkliftStatusEnum;
 import com.sckw.core.model.enums.LoadingTypeEnum;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.fleet.api.model.vo.RTruckVo;
+import com.sckw.order.api.model.OrderUnitInfoDetailVO;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
-import com.sckw.transport.model.KwtForkliftWaybillOrder;
-import com.sckw.transport.model.KwtLogisticsOrderGoods;
-import com.sckw.transport.model.KwtWaybillOrder;
-import com.sckw.transport.model.KwtWaybillOrderSubtask;
+import com.sckw.transport.model.*;
 import com.sckw.transport.model.param.WaybillOrderReplenishParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -57,10 +56,12 @@ public class ReplenishHandler extends AbstractWaybillOrderHandler<WaybillOrderRe
     private void createForkliftWaybill(KwtWaybillOrder waybillOrder) {
         try {
             log.debug("开始异步保存铲车司机数据,运单ID:{}", waybillOrder.getId());
+            //企业id
+            Long entId = getEntId(waybillOrder);
 
             KwtForkliftWaybillOrder forklift = new KwtForkliftWaybillOrder();
             forklift.setFOrderNo("F" + System.currentTimeMillis());
-            forklift.setEntId(waybillOrder.getEntId());
+            forklift.setEntId(entId);
             forklift.setWOrderId(waybillOrder.getId());
             forklift.setLOrderId(waybillOrder.getLOrderId());
 
@@ -103,6 +104,34 @@ public class ReplenishHandler extends AbstractWaybillOrderHandler<WaybillOrderRe
         }
     }
 
+    /**
+     * 获取企业id
+     * @param waybillOrder
+     * @return
+     */
+    private Long getEntId(KwtWaybillOrder waybillOrder) {
+        log.info("[创建补货铲车]开始查询企业id,入参参数:{}", JSON.toJSONString(waybillOrder));
+        Long entId;
+        KwtLogisticsOrder logOrder = getLogisticsOrder(waybillOrder.getLOrderId());
+        KwtLogisticsOrderUnit kwtLogisticsOrderUnit = logisticsOrderUnitRepository.queryByLOrderIdAndUnitType(logOrder.getId(), 1);
+        if (kwtLogisticsOrderUnit == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_FOUND, "[接单]物流企业信息数据不存在");
+        }
+        // 原矿运输山上、上下门卫企业id
+        List<Long> mockEntIds = Arrays.asList(538039617157337089L, 538040297439891457L);
+        if (Objects.equals(1, logOrder.getOrderType()) && mockEntIds.contains(kwtLogisticsOrderUnit.getEntId())) {
+            entId = mockEntIds.get(0);
+        } else {
+            List<OrderUnitInfoDetailVO> unitInfoDetailVOS = tradeOrderInfoService.queryOrderUnitByTradeOrderId(logOrder.getTOrderId());
+            OrderUnitInfoDetailVO unitInfoDetailVO = unitInfoDetailVOS.stream()
+                    .filter(unit -> Objects.equals(unit.getUnitType(), "2"))
+                    .findFirst().orElse(new OrderUnitInfoDetailVO());
+            entId = unitInfoDetailVO.getEntId();
+        }
+        log.info("[创建补货铲车]查询企业id完成,入参参数:{}", JSON.toJSONString(entId));
+        return entId;
+    }
+
     @Override
     protected void calculateAutoDispatchScore(WaybillOrderReplenishParam param, KwtWaybillOrder waybillOrder) {
 

+ 8 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/forklift/request/ForkliftOrderQueryParam.java

@@ -2,6 +2,7 @@ package com.sckw.transport.model.param.forklift.request;
 
 import com.sckw.core.web.request.PageReq;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -20,6 +21,13 @@ public class ForkliftOrderQueryParam extends PageReq implements Serializable {
     @Serial
     private static final long serialVersionUID = 8601314159466179906L;
 
+    /**
+     * 铲车企业id
+     */
+    @NotNull(message = "铲车企业id不能为空")
+    @Schema(description = "铲车企业id")
+    private Long entId;
+
     /**
      * 铲车司机id
      */

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/ForkliftOrderService.java

@@ -142,6 +142,7 @@ public class ForkliftOrderService {
      */
     private LambdaQueryWrapper<KwtForkliftWaybillOrder> buildBaseQueryWrapper(ForkliftOrderQueryParam param) {
         LambdaQueryWrapper<KwtForkliftWaybillOrder> wrapper = Wrappers.<KwtForkliftWaybillOrder>lambdaQuery()
+                .eq(KwtForkliftWaybillOrder::getEntId, param.getEntId())
                 .eq(StringUtils.isNotBlank(param.getDriverId()), KwtForkliftWaybillOrder::getDriverId, param.getDriverId())
                 .in(CollectionUtils.isNotEmpty(param.getDictIdList()),KwtForkliftWaybillOrder::getDictId, param.getDictIdList())
                 .orderByDesc(KwtForkliftWaybillOrder::getCreateTime)