| | |
| | | if (issued <= 0.0D) { |
| | | continue; |
| | | } |
| | | List<LocDetl> locDetls = locDetlService.queryStock(orderDetl); |
| | | |
| | | // 使用新增多字段条件查询库存(可改成传入参数来优化) |
| | | List<LocDetl> locDetls = locDetlService.queryStock(orderDetl); // 这个方法内部应该根据多个字段匹配 |
| | | |
| | | for (LocDetl locDetl : locDetls) { |
| | | if (locDetl.getMatnr().equals(orderDetl.getMatnr())) { |
| | | // 多字段匹配 |
| | | boolean match = locDetl.getMatnr().equals(orderDetl.getMatnr()) |
| | | && Objects.equals(locDetl.getOutOrderNo(), orderDetl.getOutOrderNo()) |
| | | && Objects.equals(locDetl.getTemp2(), orderDetl.getTemp2()) |
| | | && Objects.equals(locDetl.getProType(), orderDetl.getProType()) |
| | | && Objects.equals(locDetl.getModel(), orderDetl.getModel()) |
| | | && Objects.equals(locDetl.getLuHao(), orderDetl.getLuHao()); |
| | | |
| | | if (!match) continue; |
| | | |
| | | if (issued > 0) { |
| | | LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), |
| | | LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), |
| | | locDetl.getBatch(), orderDetl.getOrderNo(), |
| | | issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); |
| | | List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103); |
| | | locDto.setStaNos(staNos); |
| | |
| | | locDto.setProType(locDetl.getProType()); |
| | | locDto.setSPgNO(locDetl.getSPgNO()); |
| | | locDto.setColor(locDetl.getColor()); |
| | | locDto.setTemp2(locDetl.getTemp2()); // 新增字段 |
| | | locDtos.add(locDto); |
| | | //exist.add(locDetl.getLocNo()); |
| | | // 剩余待出数量递减 |
| | | |
| | | issued = issued - locDetl.getAnfme(); |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (issued > 0) { |
| | | LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); |
| | | locDto.setLack(Boolean.TRUE); |
| | |
| | | locDto.setProType(orderDetl.getProType()); |
| | | locDto.setSPgNO(orderDetl.getSPgNO()); |
| | | locDto.setColor(orderDetl.getColor()); |
| | | locDto.setTemp2(orderDetl.getTemp2()); |
| | | locDtos.add(locDto); |
| | | } |
| | | } |
| | | |
| | | return R.ok().add(locDtos); |
| | | } |
| | | |