提交 157fbe98 authored 作者: zhoushaopan's avatar zhoushaopan

feat(维修管理): 新增了查询多个id的接口

新增了查询多个任务id的接口
上级 6cfee6e4
...@@ -1640,15 +1640,38 @@ public class RepairController { ...@@ -1640,15 +1640,38 @@ public class RepairController {
integerList.add(9); integerList.add(9);
integerList.add(4); integerList.add(4);
//过滤掉状态4,5,9 //过滤掉状态4,5,9
long l = System.currentTimeMillis();
List<RepairDetail> repairDetails1 = repairDetailDao.findAllByRepairStatusNotIn(integerList, repairTaskSelectVo.getPageable().getSort()); List<RepairDetail> repairDetails1 = repairDetailDao.findAllByRepairStatusNotIn(integerList, repairTaskSelectVo.getPageable().getSort());
repairDetails1.forEach(repairDetail -> { repairDetails1.forEach(repairDetail -> {
repairDetail.setConfigName(); repairDetail.setConfigName();
}); });
System.out.println("repairDetails1--"+(System.currentTimeMillis()-l));
//发起送修的单位为当前单位 并且所在单位不是自己的 //发起送修的单位为当前单位 并且所在单位不是自己的
List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(repairDetail -> deviceRepairBillService.getOne(repairDetail.getDeviceRepairBillId()).getSendUnit().equals(unitName)) //进行时间上面的优化 todo
List<Integer> sendRepairIds = repairDetails1.stream().map(RepairDetail::getDeviceRepairBillId).collect(Collectors.toList());
//通过id去查询
List<String> sendUnits = deviceRepairBillService.findByIds(sendRepairIds).stream().map(RepairBill::getSendUnit).collect(Collectors.toList());
List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(repairDetail -> sendUnits.contains(unitName))
.filter(repairDetail -> !repairDetail.getLocationUnit().equals(unitName)) .filter(repairDetail -> !repairDetail.getLocationUnit().equals(unitName))
.collect(Collectors.toList()); .collect(Collectors.toList());
// List<RepairDetail> repairDetails2 = repairDetails1.stream().filter(
// repairDetail -> deviceRepairBillService.getOne(repairDetail.getDeviceRepairBillId())
// .getSendUnit().equals(unitName))
// .filter(repairDetail -> !repairDetail.getLocationUnit().equals(unitName))
// .collect(Collectors.toList());
List<WaitingRepairEquipmentVo> waitingRepairEquipments = new ArrayList<>(); List<WaitingRepairEquipmentVo> waitingRepairEquipments = new ArrayList<>();
long l2 = System.currentTimeMillis();
//进行优化
//需要查出来多个task todo
// List<Integer> taskIds = repairDetails2.stream().map(RepairDetail::getDeviceRepairBillId).collect(Collectors.toList());
// repairDetails2.forEach(
// repairDetail -> {
// WaitingRepairEquipmentVo waitingRepairEquipment = new WaitingRepairEquipmentVo();
// BeanUtils.copyProperties(repairDetail, waitingRepairEquipment);
//
// waitingRepairEquipments.add(waitingRepairEquipment);
// }
// );
for (RepairDetail repairDetail : repairDetails2) { for (RepairDetail repairDetail : repairDetails2) {
TaskBto taskBto = taskService.getParentTaskIsNull(repairDetail.getDeviceRepairBillId(), 5); TaskBto taskBto = taskService.getParentTaskIsNull(repairDetail.getDeviceRepairBillId(), 5);
TaskUserVo taskUserVo = taskBto.toVo(); TaskUserVo taskUserVo = taskBto.toVo();
...@@ -1657,6 +1680,8 @@ public class RepairController { ...@@ -1657,6 +1680,8 @@ public class RepairController {
waitingRepairEquipment.setTaskUserVos(taskUserVo); waitingRepairEquipment.setTaskUserVos(taskUserVo);
waitingRepairEquipments.add(waitingRepairEquipment); waitingRepairEquipments.add(waitingRepairEquipment);
} }
System.out.println("taskBto--"+(System.currentTimeMillis()-l2));
//按照时间排序 //按照时间排序
List<WaitingRepairEquipmentVo> waitingRepairEquipmentVoList = waitingRepairEquipments.stream().sorted(Comparator.comparing(WaitingRepairEquipmentVo::getUpdateTime)).collect(Collectors.toList()); List<WaitingRepairEquipmentVo> waitingRepairEquipmentVoList = waitingRepairEquipments.stream().sorted(Comparator.comparing(WaitingRepairEquipmentVo::getUpdateTime)).collect(Collectors.toList());
return ResponseEntity.ok(PageUtil.getPerPage(repairTaskSelectVo.getPage(), repairTaskSelectVo.getSize(), waitingRepairEquipmentVoList, repairTaskSelectVo.getPageable())); return ResponseEntity.ok(PageUtil.getPerPage(repairTaskSelectVo.getPage(), repairTaskSelectVo.getSize(), waitingRepairEquipmentVoList, repairTaskSelectVo.getPageable()));
......
...@@ -4,9 +4,15 @@ import com.tykj.dev.device.repair.subject.domin.RepairBill; ...@@ -4,9 +4,15 @@ import com.tykj.dev.device.repair.subject.domin.RepairBill;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/** /**
* @author dengdiyi * @author dengdiyi
*/ */
public interface RepairBillDao extends JpaRepository<RepairBill, Integer>, JpaSpecificationExecutor<RepairBill> { public interface RepairBillDao extends JpaRepository<RepairBill, Integer>, JpaSpecificationExecutor<RepairBill> {
/**
* 通过ids查询集合
*/
List<RepairBill> findAllByIdIn(List<Integer> ids);
} }
...@@ -26,4 +26,9 @@ public interface RepairBillService { ...@@ -26,4 +26,9 @@ public interface RepairBillService {
RepairBill update(RepairBill deviceRepairBillEntity); RepairBill update(RepairBill deviceRepairBillEntity);
void delete(Integer id); void delete(Integer id);
/**
* 通过id集合进行查询
*/
List<RepairBill> findByIds(List<Integer> ids);
} }
...@@ -94,6 +94,12 @@ public class RepairBillServiceImpl implements RepairBillService { ...@@ -94,6 +94,12 @@ public class RepairBillServiceImpl implements RepairBillService {
deviceRepairBillDao.deleteById(id); deviceRepairBillDao.deleteById(id);
} }
@Override
public List<RepairBill> findByIds(List<Integer> ids) {
return deviceRepairBillDao.findAllByIdIn(ids);
}
private Specification<RepairBill> getSelectSpecification(RepairBillSelectVo deviceRepairBillSelectVo) { private Specification<RepairBill> getSelectSpecification(RepairBillSelectVo deviceRepairBillSelectVo) {
PredicateBuilder<RepairBill> predicateBuilder = Specifications.and(); PredicateBuilder<RepairBill> predicateBuilder = Specifications.and();
PredicateBuilder<RepairBill> predicateBuilder1 = Specifications.or(); PredicateBuilder<RepairBill> predicateBuilder1 = Specifications.or();
......
package com.tykj.dev.device.task.repository; package com.tykj.dev.device.task.repository;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.task.subject.domin.Task; import com.tykj.dev.device.task.subject.domin.Task;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
...@@ -89,4 +90,5 @@ public interface TaskDao extends JpaRepository<Task, Integer>, JpaSpecificationE ...@@ -89,4 +90,5 @@ public interface TaskDao extends JpaRepository<Task, Integer>, JpaSpecificationE
//zsp //zsp
List<Task> findAllByBusinessTypeAndOwnUnitAndCustomInfo(Integer businessType, Integer ownUnit,String customInfo); List<Task> findAllByBusinessTypeAndOwnUnitAndCustomInfo(Integer businessType, Integer ownUnit,String customInfo);
List<Task> findAllByIdIn(List<Integer> ids);
} }
...@@ -237,4 +237,9 @@ public interface TaskService { ...@@ -237,4 +237,9 @@ public interface TaskService {
List<TaskBto> findAllByBillIdAndBusinessType2(Integer billId,Integer businessType); List<TaskBto> findAllByBillIdAndBusinessType2(Integer billId,Integer businessType);
List<Task> findAllByBillAndBusinessTypeAndOwnUnit(Integer businessType,Integer ownUnit); List<Task> findAllByBillAndBusinessTypeAndOwnUnit(Integer businessType,Integer ownUnit);
/**
* 查询多个任务
*/
TaskBto findByTaskIds(List<Integer> ids);
} }
...@@ -1152,6 +1152,18 @@ public class TaskServiceImpl implements TaskService { ...@@ -1152,6 +1152,18 @@ public class TaskServiceImpl implements TaskService {
.stream().filter(task -> task.getTitle().contains("系统发起") && !list.contains(task.getBillStatus())).collect(Collectors.toList()); .stream().filter(task -> task.getTitle().contains("系统发起") && !list.contains(task.getBillStatus())).collect(Collectors.toList());
} }
@Override
public TaskBto findByTaskIds(List<Integer> ids) {
List<Task> tasks = taskDao.findAllByIdIn(ids).stream().filter(task -> task.getBusinessType() == 5).collect(Collectors.toList());
tasks = tasks.stream().filter(task -> task.getParentTaskId() == null).collect(Collectors.toList());
if (tasks.size()==0){
return new TaskBto();
// throw new ApiException(String.format("要查询的数据不存在,查询的billId为 %d,businessType为 %d", billId, businessType));
}else {
return tasks.get(0).parse2Bto();
}
}
@Override @Override
public void moveAllSonNodeToEnd(Integer taaskId) { public void moveAllSonNodeToEnd(Integer taaskId) {
List<Task> tasks = taskDao.findAllByParentTaskId(taaskId); List<Task> tasks = taskDao.findAllByParentTaskId(taaskId);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论