自动化立体仓库 - WMS系统
#
Junjie
3 天以前 d72d46b4cf88d38d5dd3acd02b80a819e8b4a073
src/main/java/com/zy/asrs/controller/OutController.java
@@ -197,7 +197,46 @@
                    locDtos.add(locDto);
                }
            }
            // 重新计算出库站点,可能存在一个托盘多条明细,多条明细统计下来可全板出库,但实际给出的站点只能拣选出库
            HashMap<String, Double> locAnfmeMap = new HashMap<>();
            for (LocDto locDto : locDtos) {
                if(locAnfmeMap.containsKey(locDto.getLocNo())) {
                    Double anfme = locAnfmeMap.get(locDto.getLocNo());
                    BigDecimal decimal = BigDecimal.valueOf(locDto.getAnfme()).add(BigDecimal.valueOf(anfme));
                    locAnfmeMap.put(locDto.getLocNo(), decimal.doubleValue());
                }else {
                    locAnfmeMap.put(locDto.getLocNo(), locDto.getAnfme());
                }
            }
            HashMap<String, List<Integer>> locStaNosMap = new HashMap<>();
            for (Map.Entry<String, Double> entry : locAnfmeMap.entrySet()) {
                String locNo = entry.getKey();
                Double realAnfme = entry.getValue();
                double stockAnfme = 0D;
                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
                for (LocDetl locDetl : locDetls) {
                    BigDecimal decimal = BigDecimal.valueOf(stockAnfme).add(BigDecimal.valueOf(locDetl.getAnfme()));
                    stockAnfme = decimal.doubleValue();
                }
                int ioType = 103;
                if(stockAnfme == realAnfme) {
                    ioType = 101;
                }
                List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locNo, ioType);
                locStaNosMap.put(locNo, staNos);
            }
            for (LocDto locDto : locDtos) {
                List<Integer> staNos = locStaNosMap.get(locDto.getLocNo());
                locDto.setStaNos(staNos);
            }
        }
        return R.ok().add(locDtos);
    }