将pnDetail和PN组合
时间: 2024-02-27 17:53:19 浏览: 58
希捷硬盘model和PN对照表
要将 `pnDetail` 列表和对应的 PN 组合起来,可以使用一个 Map 来保存 PN 和对应的 `pnDetail` 列表,可以按照如下方式修改代码:
```
//1.先通过参数去查询对于PN去重后的数据
List<String> pnCodes = stockListMapper.queryStockTackingPnList(vo);
//设置pnCodes
vo.setPnCodes(pnCodes);
//将Pncode滞空
vo.setPnCode(null);
//2.根据去重后的数据去查询当前PN下面的所有SN产品
List<StockTackingExportVO> pnDetail = stockListMapper.queryStockTackingList(vo);
// 新增以下代码
Map<String, List<StockTackingExportVO>> pnDetailMap = new HashMap<>();
for (StockTackingExportVO detail : pnDetail) {
String pnCode = detail.getPnCode();
List<StockTackingExportVO> detailList = pnDetailMap.getOrDefault(pnCode, new ArrayList<>());
detailList.add(detail);
pnDetailMap.put(pnCode, detailList);
}
// 将 pnDetailMap 和 pnCodes 组合起来
List<Map<String, Object>> resultList = new ArrayList<>();
for (String pnCode : pnCodes) {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("pnCode", pnCode);
resultMap.put("pnDetail", pnDetailMap.getOrDefault(pnCode, new ArrayList<>()));
resultList.add(resultMap);
}
// 最后将 resultList 返回即可
return resultList;
```
这样,最终返回的结果是一个包含多个 Map 的列表,每个 Map 中包含 PN 和对应的 `pnDetail` 列表。
阅读全文