Explorar el Código

门卫分页查询排序优化

donglang hace 4 días
padre
commit
f031a176b3

+ 4 - 63
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/GatekeeperOrderService.java

@@ -105,19 +105,6 @@ public class GatekeeperOrderService {
         if (param.getStatus() == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "状态不能为空!");
         }
-        // 正常排序
-        if (!Objects.equals(param.getStatus(), 4)) {
-            return pageQueryDbSort(param);
-
-        }
-        // 内存排序: 特殊处理
-        return pageQueryWithMemorySort(param);
-    }
-
-    /**
-     * 数据库层面排序 + 分页
-     */
-    private PageDataResult<GatekeeperOrderResp> pageQueryDbSort(GatekeeperOrderQueryParam param) {
         // 构建查询条件
         LambdaQueryWrapper<KwtGatekeeperWaybillOrder> wrapper = buildAndExecuteQuery(param);
         // 数据库层面排序
@@ -140,34 +127,6 @@ public class GatekeeperOrderService {
         return PageDataResult.success(param.getPageNum(), param.getPageSize(), pageByStatus.getTotal(), gatekeeperOrderPageResult);
     }
 
-    /**
-     * 内存排序 + 内存分页
-     */
-    private PageDataResult<GatekeeperOrderResp> pageQueryWithMemorySort(GatekeeperOrderQueryParam param) {
-        //构建查询条件
-        LambdaQueryWrapper<KwtGatekeeperWaybillOrder> wrapper = buildAndExecuteQuery(param);
-
-        //查询门卫订单
-        List<KwtGatekeeperWaybillOrder> records = gatekeeperWaybillOrderRepository.list(wrapper);
-        if (CollectionUtils.isEmpty(records)) {
-            log.info("当前无运单订单信息");
-            return PageDataResult.empty(param.getPageNum(), param.getPageSize());
-        }
-        List<GatekeeperOrderResp> gatekeeperOrderPageResult = getGatekeeperOrderPageResult(records);
-
-        //处理异常车辆数据
-        gatekeeperOrderPageResult = filterGatekeeperOrderResp(param, gatekeeperOrderPageResult);
-
-        //排序
-        sort2(param, gatekeeperOrderPageResult);
-
-        List<List<GatekeeperOrderResp>> pageList = Lists.partition(gatekeeperOrderPageResult, param.getPageSize());
-        List<GatekeeperOrderResp> walletPageList = pageList.size() >= param.getPageNum() ?
-                pageList.get(param.getPageNum() - 1) : Collections.emptyList();
-
-        return PageDataResult.success(param.getPageNum(), param.getPageSize(), (long) walletPageList.size(), gatekeeperOrderPageResult);
-    }
-
     /**
      * 构建查询条件并执行分页查询
      */
@@ -582,6 +541,10 @@ public class GatekeeperOrderService {
                 // 场内车辆: 车辆进场时间升序
                 wrapper.orderByAsc(KwtGatekeeperWaybillOrder::getIntoTime);
                 break;
+            case 4:
+                // 异常车辆: 场内耗时倒序
+                wrapper.orderByAsc(KwtGatekeeperWaybillOrder::getIntoTime);
+                break;
             case 5:
                 // 出入记录: 离场时间倒序
                 wrapper.orderByDesc(KwtGatekeeperWaybillOrder::getLeaveTime);
@@ -591,28 +554,6 @@ public class GatekeeperOrderService {
         }
     }
 
-    /**
-     * 内存排序
-     * @param param
-     * @param gatekeeperOrderPageResult
-     */
-    private void sort2(GatekeeperOrderQueryParam param, List<GatekeeperOrderResp> gatekeeperOrderPageResult) {
-        log.info("门卫订单内存排序,param:{}, order:{}", JSON.toJSONString(param), JSON.toJSONString(gatekeeperOrderPageResult));
-        if (CollectionUtils.isEmpty(gatekeeperOrderPageResult)) {
-            return;
-        }
-        // 根据状态进行排序
-        switch (param.getStatus()) {
-            case 4:
-                // 异常车辆: 场内耗时倒序
-                gatekeeperOrderPageResult.sort(Comparator.comparing(GatekeeperOrderResp::getDurationTime).reversed());
-                break;
-            default:
-                break;
-        }
-    }
-
-
     /**
      * 铲车订单状态统计
      * @param param