提交 c1521770 authored 作者: zhoushaopan's avatar zhoushaopan

feat(维修模块): 优化查询维修管理中的查询速度

优化查询维修管理中的查询速度
上级 707f960c
......@@ -1841,6 +1841,7 @@ public class RepairController {
public ResponseEntity getRepairList(@RequestBody RepairTaskSelectVo repairTaskSelectVo) {
Integer type = repairTaskSelectVo.getType();
String unitName = userUtils.getCurrentUserUnitName();
Integer unitId = userUtils.getCurrentUnitId();
//是否有年份筛选
Integer year = repairTaskSelectVo.getYear();
Boolean hasYear = year != null && year > 0;
......@@ -1855,8 +1856,10 @@ public class RepairController {
repairDetails.forEach(RepairDetail::setConfigName);
//所在为当前单位
// List<RepairDetail> repairDetails1 = repairDetails.stream().filter(repairDetail -> repairDetail.getLocationUnit().equals(unitName)).collect(Collectors.toList());
// List<RepairDetail> repairDetails1 = repairDetails.stream().filter(repairDetail ->
// unitsService.findById(repairDetail.getLocationUnitId()).getName().equals(unitName)).collect(Collectors.toList());
List<RepairDetail> repairDetails1 = repairDetails.stream().filter(repairDetail ->
unitsService.findById(repairDetail.getLocationUnitId()).getName().equals(unitName)).collect(Collectors.toList());
repairDetail.getLocationUnitId().equals(unitId)).collect(Collectors.toList());
//默认按照时间排序
List<CustomOrder> orders = repairTaskSelectVo.getOrders();
List<RepairDetail> repairDetails2 = repairDetails1.stream().sorted(Comparator.comparing(RepairDetail::getUpdateTime)).collect(Collectors.toList());
......@@ -1876,19 +1879,30 @@ public class RepairController {
// //进行时间上面的优化
List<Integer> sendRepairIds = repairDetails1.stream().map(RepairDetail::getDeviceRepairBillId).collect(Collectors.toList());
//key为发起单位
Map<String, List<RepairBill>> listMap = deviceRepairBillService.findByIds(sendRepairIds).stream().collect(Collectors.groupingBy(RepairBill::getSendUnit));
if (!listMap.containsKey(unitName)){
// Map<String, List<RepairBill>> listMap = deviceRepairBillService.findByIds(sendRepairIds).stream()
// .collect(Collectors.groupingBy(RepairBill::getSendUnit));
Map<Integer, List<RepairBill>> listMap = deviceRepairBillService.findByIds(sendRepairIds).stream()
.collect(Collectors.groupingBy(RepairBill::getSendUnitId));
// if (!listMap.containsKey(unitName)){
// List<WaitingRepairEquipmentVo> waitingRepairEquipments = new ArrayList<>();
// return ResponseEntity.ok(PageUtil.getPerPage(repairTaskSelectVo.getPage(), repairTaskSelectVo.getSize(), waitingRepairEquipments, repairTaskSelectVo.getPageable()));
// }
if (!listMap.containsKey(unitId)){
List<WaitingRepairEquipmentVo> waitingRepairEquipments = new ArrayList<>();
return ResponseEntity.ok(PageUtil.getPerPage(repairTaskSelectVo.getPage(), repairTaskSelectVo.getSize(), waitingRepairEquipments, repairTaskSelectVo.getPageable()));
}
List<RepairBill> repairBills = listMap.get(unitName);
// List<RepairBill> repairBills = listMap.get(unitName);
List<RepairBill> repairBills = listMap.get(unitId);
//拿到当前发起单位是自己的 维修id
List<Integer> ids = repairBills.stream().map(RepairBill::getId).collect(Collectors.toList());
// List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(repairDetail -> ids.contains(repairDetail.getDeviceRepairBillId()))
// .filter(repairDetail -> !repairDetail.getLocationUnit().equals(unitName))
// .collect(Collectors.toList());
// List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(repairDetail -> ids.contains(repairDetail.getDeviceRepairBillId()))
// .filter(repairDetail -> !unitsService.findById(repairDetail.getLocationUnitId()).getName().equals(unitName))
// .collect(Collectors.toList());
List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(repairDetail -> ids.contains(repairDetail.getDeviceRepairBillId()))
.filter(repairDetail -> !unitsService.findById(repairDetail.getLocationUnitId()).getName().equals(unitName))
.filter(repairDetail -> !repairDetail.getLocationUnitId().equals(unitId))
.collect(Collectors.toList());
//原来代码
// List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(
......@@ -1932,8 +1946,10 @@ public class RepairController {
repairDetails.forEach(RepairDetail::setConfigName);
//所在在当前单位的
// List<RepairDetail> repairDetails2 = repairDetails.stream().filter(repairDetail -> repairDetail.getLocationUnit().equals(unitName)).collect(Collectors.toList());
// List<RepairDetail> repairDetails2 = repairDetails.stream().filter(repairDetail ->
// unitsService.findById(repairDetail.getLocationUnitId()).getName().equals(unitName)).collect(Collectors.toList());
List<RepairDetail> repairDetails2 = repairDetails.stream().filter(repairDetail ->
unitsService.findById(repairDetail.getLocationUnitId()).getName().equals(unitName)).collect(Collectors.toList());
repairDetail.getLocationUnitId().equals(unitId)).collect(Collectors.toList());
List<WaitingRepairEquipmentVo> waitingRepairEquipments = new ArrayList<>();
for (RepairDetail repairDetail : repairDetails2) {
TaskBto taskBto = taskService.getParentTaskIsNull(repairDetail.getDeviceRepairBillId(), 5);
......@@ -2020,7 +2036,9 @@ public class RepairController {
throw new ApiException("区县没有维修完成列表");
}
repairDetails.forEach(RepairDetail::setConfigName);
List<RepairDetail> repairDetails2 = repairDetails.stream().filter(repairDetail -> !hasYear || repairDetail.getUpdateTime().getYear() == year - 1900).collect(Collectors.toList());
List<RepairDetail> repairDetails2 = repairDetails.stream()
.filter(repairDetail -> !hasYear || repairDetail.getUpdateTime().getYear() == year - 1900)
.collect(Collectors.toList());
//按照时间排序
List<RepairDetail> repairDetailList = repairDetails2.stream().sorted(Comparator.comparing(RepairDetail::getUpdateTime)).collect(Collectors.toList());
List<RepairDetail> finalList = sortMethod(repairTaskSelectVo.getOrders(), repairDetailList, repairDetails);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论