使用案例1:
private List<Inventory> sortByRule(List<InventoryWrap> inventoryWraps ,String turnOverMode) { //收集排序规则 List<SortRule> sortRules = new ArrayList<SortRule>(); //先按照库存周转排序 if(turnOverMode != null){ if (TurnOverMode.FIFO_STORAGEDATE.equals(turnOverMode)) { sortRules.add(new SortRule(2, "batch", "ASC"));//expireDate } else if (TurnOverMode.LIFO_STORAGEDATE.equals(turnOverMode)) { sortRules.add(new SortRule(2, "batch", "DESC"));//expireDate } else if (TurnOverMode.FIFO_VALIDDATE.equals(turnOverMode)) { sortRules.add(new SortRule(1, "batch", "ASC"));//expireDate } else if (TurnOverMode.LIFO_VALIDDATE.equals(turnOverMode)) { sortRules.add(new SortRule(1, "batch", "DESC"));//expireDate } } //参考库位编号顺序排列,保证一个库位的库存在一起 sortRules.add(new SortRule(3, "locationIndex", "ASC")); sortRules.add(new SortRule(4, "locationCode", "ASC")); //构造排序Chain ComparatorChain chain = new ComparatorChain(); for (SortRule sortRule : sortRules) { if (sortRule.getSortMethod().equals("DESC")) { chain.addComparator(new ReverseComparator( new BeanComparator(sortRule.getSortKey()))); } else { chain.addComparator( new BeanComparator(sortRule.getSortKey())); } } //排序处理 Collections.sort(inventoryWraps,chain); //将托盘库存排到非托盘库存前 List<Inventory> tempInvs1 = new ArrayList<Inventory>(); List<Inventory> tempInvs2 = new ArrayList<Inventory>(); for(InventoryWrap inventoryWrap : inventoryWraps){ if(inventoryWrap.getInventory().getLP() == null){ tempInvs2.add(inventoryWrap.getInventory()); }else{ tempInvs1.add(inventoryWrap.getInventory()); } } tempInvs1.addAll(tempInvs2); return tempInvs1; } //-----------------------------SortRule.java------------------ public class SortRule { private int sortIndex; private String sortKey; private String sortMethod; } //-----------------------------InventoryWrap.java------------- public class InventoryWrap{ private Inventory inventory; private Date storageDate; private Date productionDate;//生产日 private Date expireDate;//失效日 private Integer convertFigure; private Integer locationIndex;//库位排序号 private String locationCode; private String locationStatus; private double locationUsedRate; private Integer lpIndex; private Long locationId; private double avaliableQuantity; private String batch; }
使用案例2:
private List<OperatingDailyTemp> sortByRule(List<InventoryWrap> inventoryWraps) { //收集排序规则 List<SortRule> sortRules = new ArrayList<SortRule>(); sortRules.add(new SortRule(1, "itemCode", "ASC")); sortRules.add(new SortRule(2, "batch", "ASC")); //构造排序Chain ComparatorChain chain = new ComparatorChain(); for (SortRule sortRule : sortRules) { if (sortRule.getSortMethod().equals("DESC")) { chain.addComparator(new ReverseComparator( new BeanComparator(sortRule.getSortKey()))); } else { chain.addComparator( new BeanComparator(sortRule.getSortKey())); } } //排序处理 Collections.sort(inventoryWraps,chain); List<OperatingDailyTemp> tempInvs = new ArrayList<OperatingDailyTemp>(); for(InventoryWrap inventoryWrap : inventoryWraps){ tempInvs.add(inventoryWrap.getTemp()); } return tempInvs; } //------------------InventoryWrap.java---- public class InventoryWrap{ private OperatingDailyTemp temp; private String itemCode; private String batch; } //----------------SortRule.java---- public class SortRule { private int sortIndex; private String sortKey; private String sortMethod; }
相关推荐
Collections.sort(peoples, new BeanComparator("age")); ``` 这段代码将根据`age`属性对`peoples`列表进行排序。 ##### 多属性排序 ```java ArrayList<BeanComparator> sortFields = new ArrayList(); ...
Collections.sort(list, moInfoComparator); } catch (Exception e) { e.printStackTrace(); throw e; } } // 默认情况下,为 false @SuppressWarnings("unchecked") public static <E> void sortByWhat(List...
`ComparatorChain`则允许串联多个比较器,进行复合排序。 6. **函数接口**:`Factory`接口用于创建对象,`Predicate`接口用于判断条件,这些接口配合其他组件可以实现函数式编程风格。 7. **集合工厂**:`...
nodejs010-nodejs-cryptiles-0.2.2-1.el6.centos.alt.noarch.rpm
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
基于麻雀搜索算法优化的深度置信网络(SSA-DBN)参数调整与数据分类预测——以隐藏层节点、迭代次数和学习率为优化目标的MATLAB实现,基于麻雀搜索算法优化深度置信网络(SSA-DBN)的数据分类预测 优化参数为隐藏层节点、迭代次数和学习率 利用交叉验证抑制过拟合问题 matlab代码, ,SSA-DBN; 参数优化; 隐藏层节点; 迭代次数; 学习率; 交叉验证; 过拟合抑制; MATLAB代码,基于SSA-DBN优化的数据分类预测方法:参数优化与过拟合抑制
BeTheme第一次发布于2014年5月21日,自那时以来,已有数以百万计的人下载了BeTheme,其评分为4.8。这个主题是WooCommerce支持的,在此帮助下,您可以制作一个电子商务网站,还可以制作博客、新闻和其他类型的网站。BeTheme 21.5.6 wordpress主题模板特点:放大器支撑多用途主题500+预制件演示单击演示安装移动友好型主题联络表格7支持自转滑块。
基于S7-200智能控制与组态王4x3界面的书架式堆垛立体车库系统设计与应用,基于S7-200和组态王4x3书架式堆垛式立体库立体车库 ,S7-200; 组态王4x3; 书架式堆垛式立体库; 立体车库,基于S7-200与组态王4x3的立体车库系统
1、文件内容:pykde4-akonadi-4.10.5-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pykde4-akonadi-4.10.5-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于28379D的异步电机无速度传感器控制:MD500与MD500E滑模同步调制代码研究,各种代码md500代码,异步电机,基于28379D,带无速度传感器控制,参数辨识,同步调制等功能。 还有md500e代码,滑模无感代码,逆变整流代码 ,核心关键词:md500代码; 异步电机; 28379D; 无速度传感器控制; 参数辨识; 同步调制; md500e代码; 滑模无感控制; 逆变整流代码。,基于28379D的MD500电机异步控制系统与参数辨识软件
"可再生能源驱动的热电联供微网经济运行优化研究:基于具体文献的程序复现与MATLAB粒子群算法应用",含可再生能源的热电联供型微网经济运行优化 有具体文献 程序复现 MATLAB粒子群算法 ,核心关键词: 可再生能源; 热电联供型微网; 经济运行优化; 具体文献; 程序复现; MATLAB粒子群算法。,含可再能源热电联供型微网运行优化策略复现于特定文献中的MATLAB模型研究。
1、文件内容:pyserial-2.6-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pyserial-2.6-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
finishBitmap.jpg
"英博尔控制器调速软件全面升级,引领行业新风尚",英博尔控制器调速软件全新 ,英博尔; 控制器; 调速软件; 全新,英博尔控制器调速软件全新升级
电机定子模态频率计算方法及公式在Excel表格中的应用,电机定子模态频率计算公式,公式法,exl表格 ,电机定子模态频率计算公式; 公式法; EXL表格,电机定子模态频率计算方法及公式法在Excel表格中的应用
一、项目简介 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 二、技术实现 jdk版本:1.8 及以上 ide工具:IDEA或者eclipse 数据库: mysql5.5及以上 后端:spring+springboot+mybatis+maven+mysql 前端: vue , css,js , elementui 三、系统功能 1、系统角色主要包括:管理员、用户 2、系统功能 主要功能包括: 用户登录注册 首页 个人中心 修改密码 个人信息 用户管理 管理员管理 问卷管理 题目管理 题目统计 问卷调查管理 新闻资讯管理 轮播图管理 问卷调查 新闻资讯 个人中心 问卷调查记录 后台管理 详见 https://flypeppa.blog.csdn.net/article/details/143189415
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
1、文件内容:pulseaudio-esound-compat-10.0-6.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pulseaudio-esound-compat-10.0-6.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
一种基于Lifelogging视频的文本标签生成模型.pdf