Просмотр исходного кода

feat:实时调度查询日志打印 耗时问题定位

wangweiyu 4 лет назад
Родитель
Сommit
77735c4fc0
1 измененных файлов с 27 добавлено и 0 удалено
  1. 27 0
      src/main/java/com/aoyang/tms/service/impl/WorkOrderServiceImpl.java

+ 27 - 0
src/main/java/com/aoyang/tms/service/impl/WorkOrderServiceImpl.java

@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -36,6 +37,7 @@ import java.util.List;
  * @author guoyong
  * @since 2022-04-20
  */
+@Slf4j
 @Service
 public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
 
@@ -171,18 +173,30 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
         }
         // strategy接口
         Page<Truck> page = new Page<>(pageParam.getPage(), pageParam.getSize());
+        Long t1 = System.currentTimeMillis();
         IPage<TruckOrderManageVO> truckOrderRecords = truckMapper.listTmsManageTruck(page, pageParam.getParam());
+        Long t2 = System.currentTimeMillis();
         List<TruckOrderManageVO> truckOrderList = truckOrderRecords.getRecords();
+        Long mongoCost = 0L;
+        Long adressCost = 0L;
+        Long driverReadInfoCost = 0L;
         for (TruckOrderManageVO vo : truckOrderList) {
+            Long t3 = System.currentTimeMillis();
             LocationVO location = commonService.getLocation(Long.valueOf(vo.getTruckId()));
+            Long t4 = System.currentTimeMillis();
+            log.info("getLocation 耗时:{}", t4-t3);
             if (location != null) {
                 vo.setLatitude(location.getLatitude());
                 vo.setLongitude(location.getLongitude());
                 vo.setLocation(commonService.longitudeToAddress(location.getLongitude(), location.getLatitude()));
+                log.info("longitudeToAddress 耗时:{}", System.currentTimeMillis()-t4);
             }
+            Long t5 = System.currentTimeMillis();
             if (vo.getOrderId() != null) {
                 // 设置已读未读信息
                 List<TruckDriver> truckDrivers = truckDriverService.findTruckDrivers(Long.valueOf(vo.getTruckId()));
+                Long t7 = System.currentTimeMillis();
+                log.info("findTruckDrivers 耗时:{}", t7-t5);
                 List<ReadInfo> readInfos = new ArrayList<>();
                 for (TruckDriver driver : truckDrivers) {
                     QueryWrapper queryWrapper = new QueryWrapper<>();
@@ -202,6 +216,8 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
                     }
                     readInfos.add(readInfo);
                 }
+                Long t8 = System.currentTimeMillis();
+                log.info("TruckDriver readInfos 耗时:{}", t8-t7);
                 List<TruckEscort> truckEscorts = truckEscortService.list(new QueryWrapper<TruckEscort>().eq("truck_id", vo.getTruckId()));
                 for (TruckEscort truckEscort : truckEscorts) {
                     QueryWrapper queryWrapper = new QueryWrapper<>();
@@ -221,12 +237,23 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
                     }
                     readInfos.add(readInfo);
                 }
+                Long t9 = System.currentTimeMillis();
+                log.info("TruckEscort readInfos 耗时:{}", t9-t8);
 
                 vo.setReadInfos(readInfos);
+                driverReadInfoCost += t9-t7;
             }
 
+            mongoCost += t4-t3;
+            adressCost += t5-t4;
+
         }
 
+        log.info("getTruckOrderManageList 查询实时调度列表耗时:{}", t2-t1);
+        log.info("getTruckOrderManageList 查询mongo耗时:{}", mongoCost);
+        log.info("getTruckOrderManageList 查询adress耗时:{}", adressCost);
+        log.info("getTruckOrderManageList 查询readInfos耗时:{}", driverReadInfoCost);
+
         truckOrderRecords.setRecords(truckOrderList);
         return new Result<>(truckOrderRecords);
     }