| | |
| | | // .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId).orderByAsc(HollowGlassRelationInfo::getHollowSequence)); |
| | | List<HollowBigStorageCageDetails> hollowGlassRelationInfos = hollowBigStorageCageDetailsService.queryPairGlassList(flowCardId, relationInfo.getTotalLayer(), relationInfo.getTotalPairQuantity(), isOut); |
| | | Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowGlassRelationInfos.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence)); |
| | | |
| | | Map<Integer, List<HollowBigStorageCageDetails>> sortListMap = new TreeMap<>(); |
| | | sortListMap.putAll(listMap); |
| | | //设置间隔板数据共所有配对玻璃使用 |
| | | List<LisecHollowGlassAndFrameDetails> glassAndFrameList = new ArrayList<>(); |
| | | listMap.forEach((e, v) -> { |
| | | sortListMap.forEach((e, v) -> { |
| | | LisecHollowGlassAndFrameDetails glassAndFrame = new LisecHollowGlassAndFrameDetails(); |
| | | List<LisecHollowGlassDetails> glassList = new ArrayList<>(); |
| | | List<LisecHollowFrameDetails> frameList = new ArrayList<>(); |
| | |
| | | glassAndFrame.setFrameList(frameList); |
| | | glassAndFrameList.add(glassAndFrame); |
| | | }); |
| | | Collections.sort(glassAndFrameList, (s1, s2) -> Integer.parseInt(s1.getItemNum()) - Integer.parseInt(s2.getItemNum())); |
| | | details.setGlassAndFrameList(glassAndFrameList); |
| | | |
| | | |
| | | Configuration cfg = new Configuration(new Version("2.3.29")); |
| | | cfg.setClassForTemplateLoading(HollowBigStorageCageController.class, "/templates/"); |
| | | // 创建Calculator实例 |
| | |
| | | if (930 == request.getCell()) { |
| | | Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowBigStorageCageDetailsList.stream() |
| | | .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence)); |
| | | List<List<HollowGlassQueueInfo>> disorderList = new ArrayList<>(); |
| | | for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : listMap.entrySet()) { |
| | | Map<Integer, List<HollowBigStorageCageDetails>> sortListMap = new TreeMap<>(); |
| | | sortListMap.putAll(listMap); |
| | | for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : sortListMap.entrySet()) { |
| | | //创建队列接收不满足成对情况下:一对玻璃分几次上车的次序问题 |
| | | List<HollowGlassQueueInfo> tempList = new ArrayList<>(); |
| | | //先将玻璃按照正常顺序排列,计算一车最多放几块,算好块数之后将一车的玻璃按照倒序存储 |
| | |
| | | for (HollowBigStorageCageDetails item : reverse) { |
| | | remainWidth = remainWidth - (int) Math.max(item.getWidth(), item.getHeight()); |
| | | if (remainWidth < 0) { |
| | | disorderList.add(CollectionUtil.reverse(tempList)); |
| | | hollowQueues.addAll(CollectionUtil.reverse(tempList)); |
| | | tempList = new ArrayList<>(); |
| | | remainWidth = carWidth - (int) Math.max(item.getWidth(), item.getHeight()); |
| | | } |
| | |
| | | tempList.add(queueInfo); |
| | | remainWidth = remainWidth - glassGap; |
| | | } |
| | | disorderList.add(CollectionUtil.reverse(tempList)); |
| | | hollowQueues.addAll(CollectionUtil.reverse(tempList)); |
| | | HollowBigStorageCageDetails cageDetails = entry.getValue().get(0); |
| | | if (cageDetails.getIsPair() == 1) { |
| | | isPairCount = isPairCount - cageDetails.getTotalLayer(); |
| | |
| | | } |
| | | } |
| | | } |
| | | //防止玻璃中空线玻璃无序,将玻璃按照顺序重新排序 |
| | | Collections.sort(disorderList, (s1, s2) -> s1.get(0).getHollowSequence() - s2.get(0).getHollowSequence()); |
| | | for (List<HollowGlassQueueInfo> list : disorderList) { |
| | | hollowQueues.addAll(list); |
| | | } |
| | | |
| | | } else { |
| | | loop: |
| | | for (HollowBigStorageCageDetails item : hollowBigStorageCageDetailsList) { |