skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/interceptor/StockSortInterceptor.java
@@ -1,68 +1,68 @@
//package com.zy.asrs.wms.common.interceptor;
//
//import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
//import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
//import org.apache.ibatis.executor.Executor;
//import org.apache.ibatis.mapping.BoundSql;
//import org.apache.ibatis.mapping.MappedStatement;
//import org.apache.ibatis.session.ResultHandler;
//import org.apache.ibatis.session.RowBounds;
//
//import java.sql.SQLException;
//
//
//public class StockSortInterceptor implements InnerInterceptor {
//
//    @Override
//    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
//        // 获取原始SQL语句
//        String originalSql = boundSql.getSql();
//        // 判断方法是否为特定的查询方法
//        if (isSpecificQueryMethod(ms)) {
//            // 添加排序逻辑
//            String sql = addSort(originalSql);
//            // 修改完成的sql 再设置回去
//            PluginUtils.MPBoundSql mpBoundSql = PluginUtils.mpBoundSql(boundSql);
//            mpBoundSql.sql(sql);
//        }
//    }
//
//    private boolean isSpecificQueryMethod(MappedStatement ms) {
//        // 检查MappedStatement的ID以判断是否为特定的查询方法
//        String statementId = ms.getId();
//        return statementId.equals("com.zy.asrs.wms.asrs.mapper.LocDetlMapper.getStock");
//    }
//
//    private String addSort(String originalSql) {
//        // 根据需要添加排序逻辑
//        return originalSql + " ORDER BY" + isQueue();
//    }
//
//    private String isQueue() {
//        //先进先出:在查询库存记录时,排序字段按照man_loc_detl表的createTime升序排序
//        return " create_time ASC";
//    }
//
//    private String isFree() {
//        //设备空闲情况:优先查询空闲的设备,在有空闲的设备时,从空闲的设备对应的货架上查询
//        //TODO
//        return " create_time ASC";
//    }
//
//    private String isBarcodeDesc() {
//        //托盘最大值降序:就是按照托盘号降序
//        return " barcode DESC";
//    }
//
//    private String isBarcodeAsc() {
//        //托盘最大值升序:就是按照托盘号升序
//        return " barcode ASC";
//    }
//
//    private String isEven() {
//        // 楼层均匀分布:
//        //TODO
//        return " barcode ASC";
//    }
//
//}
//package com.zy.asrs.wms.common.interceptor;
//
//import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
//import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
//import org.apache.ibatis.executor.Executor;
//import org.apache.ibatis.mapping.BoundSql;
//import org.apache.ibatis.mapping.MappedStatement;
//import org.apache.ibatis.session.ResultHandler;
//import org.apache.ibatis.session.RowBounds;
//
//import java.sql.SQLException;
//
//
//public class StockSortInterceptor implements InnerInterceptor {
//
//    @Override
//    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
//        // 获取原始SQL语句
//        String originalSql = boundSql.getSql();
//        // 判断方法是否为特定的查询方法
//        if (isSpecificQueryMethod(ms)) {
//            // 添加排序逻辑
//            String sql = addSort(originalSql);
//            // 修改完成的sql 再设置回去
//            PluginUtils.MPBoundSql mpBoundSql = PluginUtils.mpBoundSql(boundSql);
//            mpBoundSql.sql(sql);
//        }
//    }
//
//    private boolean isSpecificQueryMethod(MappedStatement ms) {
//        // 检查MappedStatement的ID以判断是否为特定的查询方法
//        String statementId = ms.getId();
//        return statementId.equals("com.zy.asrs.wms.asrs.mapper.LocDetlMapper.getStock");
//    }
//
//    private String addSort(String originalSql) {
//        // 根据需要添加排序逻辑
//        return originalSql + " ORDER BY" + isQueue();
//    }
//
//    private String isQueue() {
//        //先进先出:在查询库存记录时,排序字段按照man_loc_detl表的createTime升序排序
//        return " create_time ASC";
//    }
//
//    private String isFree() {
//        //设备空闲情况:优先查询空闲的设备,在有空闲的设备时,从空闲的设备对应的货架上查询
//        //TODO
//        return " create_time ASC";
//    }
//
//    private String isBarcodeDesc() {
//        //托盘最大值降序:就是按照托盘号降序
//        return " barcode DESC";
//    }
//
//    private String isBarcodeAsc() {
//        //托盘最大值升序:就是按照托盘号升序
//        return " barcode ASC";
//    }
//
//    private String isEven() {
//        // 楼层均匀分布:
//        //TODO
//        return " barcode ASC";
//    }
//
//}