| //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";  | 
| //    }  | 
| //  | 
| //}  |