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