|
|
@@ -414,11 +414,11 @@ public class IotOpeationFillController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- IotOpeationFillRespVO fill = new IotOpeationFillRespVO();
|
|
|
+ /* IotOpeationFillRespVO fill = new IotOpeationFillRespVO();
|
|
|
|
|
|
- /**
|
|
|
+ *//**
|
|
|
* 遍历主表数据,拿到id,根据id查询子表获取子表设备名称+设备编码
|
|
|
- */
|
|
|
+ *//*
|
|
|
for (IotOpeationFillOrderDO orderDO : fillList.getList()) {
|
|
|
fill.setOrderId(orderDO.getId());
|
|
|
fill.setDeptId(orderDO.getDeptId());
|
|
|
@@ -435,7 +435,58 @@ public class IotOpeationFillController {
|
|
|
orderDO.setFillDev(devList.getFillDev());
|
|
|
orderDO.setUnFillDev(devList.getUnFillDev());
|
|
|
}
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
+ // 收集所有订单ID和部门ID的映射关系
|
|
|
+ Map<Long, Long> orderDeptMap = fillList.getList().stream()
|
|
|
+ .collect(Collectors.toMap(IotOpeationFillOrderDO::getId, IotOpeationFillOrderDO::getDeptId));
|
|
|
+
|
|
|
+ // 准备查询参数
|
|
|
+ IotOpeationFillRespVO fill = new IotOpeationFillRespVO();
|
|
|
+
|
|
|
+ // 2. 批量查询所有fill数据
|
|
|
+ List<IotOpeationFillDO> allFillList = new ArrayList<>();
|
|
|
+ for (Map.Entry<Long, Long> entry : orderDeptMap.entrySet()) {
|
|
|
+ fill.setOrderId(entry.getKey());
|
|
|
+ fill.setDeptId(entry.getValue());
|
|
|
+ allFillList.addAll(iotOpeationFillService.fillListByDeptId(fill));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 批量查询所有dev数据
|
|
|
+ Map<Long, IotOpeationFillDO> devMap = new HashMap<>();
|
|
|
+ for (Long orderId : orderDeptMap.keySet()) {
|
|
|
+ fill.setOrderId(orderId);
|
|
|
+ devMap.put(orderId, iotOpeationFillService.devListByOrderId(fill));
|
|
|
}
|
|
|
+
|
|
|
+ // 4. 将fill数据按订单ID分组
|
|
|
+ Map<Long, List<IotOpeationFillDO>> fillMap = allFillList.stream()
|
|
|
+ .collect(Collectors.groupingBy(IotOpeationFillDO::getOrderId)); // 假设IotOpeationFillDO有getOrderId方法
|
|
|
+
|
|
|
+ // 5. 遍历处理结果
|
|
|
+ for (IotOpeationFillOrderDO orderDO : fillList.getList()) {
|
|
|
+ Long orderId = orderDO.getId();
|
|
|
+ List<IotOpeationFillDO> dList = fillMap.getOrDefault(orderId, Collections.emptyList());
|
|
|
+
|
|
|
+ if (!dList.isEmpty()) {
|
|
|
+ StringJoiner joiner = new StringJoiner(", ");
|
|
|
+ for (IotOpeationFillDO fillDO : dList) {
|
|
|
+ joiner.add(fillDO.getDeviceCode() + "/" + fillDO.getDeviceName());
|
|
|
+ }
|
|
|
+ orderDO.setFillList(joiner.toString());
|
|
|
+
|
|
|
+ IotOpeationFillDO devList = devMap.get(orderId);
|
|
|
+ if (devList != null) {
|
|
|
+ orderDO.setAllDev(devList.getAllDev());
|
|
|
+ orderDO.setFillDev(devList.getFillDev());
|
|
|
+ orderDO.setUnFillDev(devList.getUnFillDev());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return success(BeanUtils.toBean(fillList, IotOpeationFillOrderDO.class));
|
|
|
}
|
|
|
|