Ver Fonte

提交app端接口开发

chenxiaofei há 2 meses atrás
pai
commit
bd5095ad78

+ 2 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportRemoteService.java

@@ -117,4 +117,6 @@ public interface TransportRemoteService {
      * @param params 请求参数
      */
     HttpResult logisticsOrderInitiateReconciliationUpdateStatus(UpdateOrderStatusDto params);
+
+    List<RWaybillOrderVo> queryWaybillOrderByEntId(Long entId);
 }

+ 4 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/AppTruckInfoVo.java

@@ -80,6 +80,10 @@ public class AppTruckInfoVo implements Serializable {
      * 车辆类型(0-自有车辆,1-外部车辆)
      */
     private String truckMark;
+    /**
+     * 运单号
+     */
+    private String wOrderNo;
 
 
 //    /**

+ 18 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -1615,8 +1615,17 @@ public class KwfTruckService {
             fleetIdAndDriverMap = kwfFleetDrivers.stream().collect(Collectors.groupingBy(KwfFleetDriver::getFleetId));
         }
         List<KwfDriver> drivers = new ArrayList<>();
+
         if (CollectionUtils.isNotEmpty(driverIds)){
              drivers = kwfDriverRepository.findByDriverIds(driverIds);
+
+        }
+        //查询运单
+        List<RWaybillOrderVo>  rWaybillOrderVos = transportRemoteService.queryWaybillOrderByEntId(entId);
+
+        Map<Long, List<RWaybillOrderVo>> truckIdAndWaybillOrderMap = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(rWaybillOrderVos)){
+             truckIdAndWaybillOrderMap = rWaybillOrderVos.stream().collect(Collectors.groupingBy(RWaybillOrderVo::getTruckId));
         }
 
         Map<Long, KwfDriver> driverIdAndDriverMap = new HashMap<>();
@@ -1631,8 +1640,10 @@ public class KwfTruckService {
         Map<Long, KwfFleet> finalFleetIdAndFleetMap = fleetIdAndFleetMap;
         Map<Long, KwfDriver> finalDriverIdAndDriverMap = driverIdAndDriverMap;
         Map<Long, List<KwfFleetDriver>> finalFleetIdAndDriverMap = fleetIdAndDriverMap;
+        Map<Long, List<RWaybillOrderVo>> finalTruckIdAndWaybillOrderMap = truckIdAndWaybillOrderMap;
         List<AppTruckInfoVo> ents = truckList.stream()
-                .map(t-> getAppTruckInfoVo(t, entIdKwsEnterpriseResDtoMap, finalTruckIdAndFleetTruckMap, finalFleetIdAndFleetMap, finalDriverIdAndDriverMap, finalFleetIdAndDriverMap))
+                .map(t-> getAppTruckInfoVo(t, entIdKwsEnterpriseResDtoMap, finalTruckIdAndFleetTruckMap
+                        , finalFleetIdAndFleetMap, finalDriverIdAndDriverMap, finalFleetIdAndDriverMap, finalTruckIdAndWaybillOrderMap))
                 .collect(Collectors.toList());
 
         return PageDataResult.success(Integer.parseInt(String.valueOf(page.getCurrent())),Integer.parseInt(String.valueOf(page.getSize())),page.getTotal(),ents);
@@ -1643,7 +1654,8 @@ public class KwfTruckService {
             ,Map<Long, List<KwfFleetTruck>> truckIdAndFleetTruckMap
             ,Map<Long, KwfFleet> fleetIdAndFleetMap
             , Map<Long, KwfDriver> driverIdAndDriverMap
-            ,Map<Long, List<KwfFleetDriver>> fleetIdAndDriverMap) {
+            ,Map<Long, List<KwfFleetDriver>> fleetIdAndDriverMap
+            ,Map<Long, List<RWaybillOrderVo>> finalTruckIdAndWaybillOrderMap) {
         AppTruckInfoVo truckInfoVo = new AppTruckInfoVo();
         truckInfoVo.setEntId(String.valueOf(t.getEntId()));
         KwsEnterpriseResDto enterpriseResDto = entIdKwsEnterpriseResDtoMap.getOrDefault(t.getEntId(), new KwsEnterpriseResDto());
@@ -1672,6 +1684,10 @@ public class KwfTruckService {
             truckInfoVo.setLatitude(vehicleReturnData.getLatitude());
             truckInfoVo.setLongitude(vehicleReturnData.getLongitude());
         }
+        List<RWaybillOrderVo> rWaybillOrderVos = finalTruckIdAndWaybillOrderMap.get(t.getId());
+        if (CollectionUtils.isNotEmpty(rWaybillOrderVos)){
+            truckInfoVo.setWOrderNo(rWaybillOrderVos.get(0).getWOrderNo());
+        }
         truckInfoVo.setTruckMark(String.valueOf(t.getTruckMark()));
         truckInfoVo.setBusinessStatus(String.valueOf(t.getBusinessStatus()));
         return truckInfoVo;

+ 36 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dubbo/TransportServiceImpl.java

@@ -44,12 +44,14 @@ import com.sckw.transport.api.model.vo.RWaybillOrderVo;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.vo.WaybillCountVo;
+import com.sckw.transport.repository.KwtWaybillOrderRepository;
 import com.sckw.transport.service.KwtCommonService;
 import jakarta.annotation.Resource;
 import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
@@ -111,6 +113,8 @@ public class TransportServiceImpl implements TransportRemoteService {
 
     @Autowired
     private KwtWaybillOrderTrackMapper waybillOrderTrackDao;
+    @Resource
+    private KwtWaybillOrderRepository waybillOrderRepository;
 
     /**
      * 对账管理-ids查询
@@ -802,4 +806,36 @@ public class TransportServiceImpl implements TransportRemoteService {
         }
         return HttpResult.ok();
     }
+
+    @Override
+    public List<RWaybillOrderVo> queryWaybillOrderByEntId(Long entId) {
+        List<KwtWaybillOrder> waybillOrders  = waybillOrderRepository.queryWaybillOrderByEntId(entId);
+        if (CollectionUtils.isEmpty(waybillOrders)){
+            return Collections.emptyList();
+        }
+       return waybillOrders.stream()
+               .map(TransportServiceImpl::getWaybillOrderVo)
+               .collect(Collectors.toList());
+    }
+
+    @NotNull
+    private static RWaybillOrderVo getWaybillOrderVo(KwtWaybillOrder waybillOrder) {
+        RWaybillOrderVo vo = new RWaybillOrderVo();
+        vo.setId(waybillOrder.getId());
+        vo.setEntId(waybillOrder.getEntId());
+        vo.setLOrderId(waybillOrder.getLOrderId());
+        vo.setWOrderNo(waybillOrder.getWOrderNo());
+        vo.setType(waybillOrder.getType());
+        vo.setTruckId(waybillOrder.getTruckId());
+        vo.setTruckNo(waybillOrder.getTruckNo());
+        vo.setDriverId(waybillOrder.getDriverId());
+        vo.setDriverName(waybillOrder.getDriverName());
+        vo.setDriverPhone(waybillOrder.getDriverPhone());
+        vo.setDriverIdcard(waybillOrder.getDriverIdcard());
+        vo.setStartTime(waybillOrder.getStartTime());
+        vo.setEndTime(waybillOrder.getEndTime());
+        vo.setStatus(waybillOrder.getStatus());
+        vo.setDepartureTime(waybillOrder.getEndTime());
+        return vo;
+    }
 }

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CurrentTaskTraceReqVo.java

@@ -39,5 +39,15 @@ public class CurrentTaskTraceReqVo implements Serializable {
          */
         @Schema(description = "定位时间")
         private String locationTime;
+        /**
+         * 耗时
+         */
+        @Schema(description = "耗时")
+        private String duration;
     }
+    /**
+     * 总耗时
+     */
+    @Schema(description = "总耗时")
+    private String totalDuration;
 }

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderRepository.java

@@ -93,4 +93,11 @@ public class KwtWaybillOrderRepository extends ServiceImpl<KwtWaybillOrderMapper
                 .orderByDesc(KwtWaybillOrder::getId)
                 .last("limit 1"));
     }
+
+    public List<KwtWaybillOrder> queryWaybillOrderByEntId(Long entId) {
+        return list(Wrappers.<KwtWaybillOrder>lambdaQuery()
+                .eq(KwtWaybillOrder::getDelFlag,0)
+                .eq(Objects.nonNull(entId),KwtWaybillOrder::getEntId,entId)
+                .orderByDesc(KwtWaybillOrder::getId));
+    }
 }

+ 19 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/kwfTruckTraceService.java

@@ -54,6 +54,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;
 
+import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.*;
@@ -390,6 +391,24 @@ public class kwfTruckTraceService {
                 .collect(Collectors.toList());
         CurrentTaskTraceReqVo currentTaskTraceReqVo = new CurrentTaskTraceReqVo();
         currentTaskTraceReqVo.setWOrderNo(vehicleReturnDataList.get(0).getWOrderNo());
+
+        for (int i = 1; i < currentTaskTraceList.size(); i++) {
+            CurrentTaskTraceReqVo.CurrentTaskTrace current = currentTaskTraceList.get(i);
+            CurrentTaskTraceReqVo.CurrentTaskTrace previous = currentTaskTraceList.get(i - 1);
+            LocalDateTime currentTime = LocalDateTime.parse(current.getLocationTime());
+            LocalDateTime previousTime = LocalDateTime.parse(previous.getLocationTime());
+            Duration duration = Duration.between(previousTime, currentTime);
+            current.setDuration(String.valueOf(duration.toMinutes()));
+        }
+        CurrentTaskTraceReqVo.CurrentTaskTrace first = currentTaskTraceList.get(0);
+        CurrentTaskTraceReqVo.CurrentTaskTrace last = currentTaskTraceList.get(currentTaskTraceList.size() - 1);
+
+        LocalDateTime firstTime = LocalDateTime.parse(first.getLocationTime());
+        LocalDateTime lastTime = LocalDateTime.parse(last.getLocationTime());
+
+        Duration totalDuration = Duration.between(firstTime, lastTime);
+        long durationInMinutes = totalDuration.toMinutes();
+        currentTaskTraceReqVo.setTotalDuration(String.valueOf(durationInMinutes));
         currentTaskTraceReqVo.setCurrentTaskTraceList(currentTaskTraceList);
         return currentTaskTraceReqVo;
     }