Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r28756 -r29206 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 28756) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 29206) @@ -797,7 +797,42 @@ Collections.sort(urgentList); reorderedList.addAll(urgentList); } - + //对一次性物品进行排序(数量超过1个时,查出对应一次性物品物品的顺序号,按顺序号进行排序) + if(CollectionUtils.size(disposableGoodList) > 1){ + List dgList = diposableGoodsManager.getCollection(disposableGoodList.stream().map(ApplicationGoodsVo::getDisposableGoodsId).collect(Collectors.toList())); + Map idToDisposableGoodsMap = new HashMap(); + if(CollectionUtils.isNotEmpty(dgList)){ + dgList.stream().forEach(dg -> { + idToDisposableGoodsMap.put(dg.getId(), dg); + }); + } + disposableGoodList.sort(new Comparator() { + + @Override + public int compare(ApplicationGoodsVo o1, ApplicationGoodsVo o2) { + Long dgId1 = o1.getDisposableGoodsId(); + Long dgId2 = o2.getDisposableGoodsId(); + DisposableGoods dg1 = idToDisposableGoodsMap.get(dgId1); + DisposableGoods dg2 = idToDisposableGoodsMap.get(dgId2); + + Integer sequence1 = null; + Integer sequence2 = null; + if(dg1 != null){ + sequence1 = dg1.getSequence(); + } + if(dg2 != null){ + sequence2 = dg2.getSequence(); + } + if(sequence1 == null){ + sequence1 = Integer.MAX_VALUE; + } + if(sequence2 == null){ + sequence2 = Integer.MAX_VALUE; + } + return Integer.compare(sequence1, sequence2); + } + }); + } if(sortingOfGoodsToBeShipped == 1){ // 深圳市第三人民医院SZSDSRMYY-8 待发货物品颜色状态显示 // 1、器械包按照:已灭菌的器械包→未灭菌的器械包的顺序排序(SZSDSRMYY-8)