| | |
| | | } |
| | | List<MesProWorkOrderBomDO> items = new ArrayList<>(); |
| | | for (MesProWorkOrderBomDO bom : bomList) { |
| | | if (bom.getProcessId().equals(process.getProcessId())) { |
| | | // 跳过无工序编号的投料行(工单 BOM 中仅按工序维护投料明细,无工序的行不参与展开, |
| | | // 且 getProcessId 可能为 null,直接 equals 会 NPE) |
| | | if (Objects.equals(bom.getProcessId(), process.getProcessId())) { |
| | | items.add(bom); |
| | | } |
| | | } |
| | |
| | | // 3. 以最后一道工序的投料为起点 |
| | | Map<Long, BigDecimal> currentLayer = new LinkedHashMap<>(); |
| | | for (MesProWorkOrderBomDO bom : bomList) { |
| | | if (bom.getProcessId().equals(lastProcess.getProcessId())) { |
| | | if (Objects.equals(bom.getProcessId(), lastProcess.getProcessId())) { |
| | | currentLayer.merge(bom.getItemId(), bom.getQuantity(), BigDecimal::add); |
| | | } |
| | | } |