Commit b61c4907 by wangli

完善获取工程师姓名列表

1 parent aa92e818
package com.alibaba.cloud.integration.order.service.impl; package com.alibaba.cloud.integration.order.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.cloud.integration.common.BusinessException; import com.alibaba.cloud.integration.common.BusinessException;
import com.alibaba.cloud.integration.common.Result; import com.alibaba.cloud.integration.common.Result;
import com.alibaba.cloud.integration.order.dao.OrderAppointmentDao; import com.alibaba.cloud.integration.order.dao.OrderAppointmentDao;
import com.alibaba.cloud.integration.order.dao.OrderRequestDao; import com.alibaba.cloud.integration.order.dao.OrderRequestDao;
import com.alibaba.cloud.integration.order.dto.OrderServiceList; import com.alibaba.cloud.integration.order.dto.OrderServiceList;
import com.alibaba.cloud.integration.order.dto.OrderServiceListResp; import com.alibaba.cloud.integration.order.dto.OrderServiceListResp;
import com.alibaba.cloud.integration.order.entity.Order;
import com.alibaba.cloud.integration.order.entity.OrderAppointment; import com.alibaba.cloud.integration.order.entity.OrderAppointment;
import com.alibaba.cloud.integration.order.entity.OrderRequest; import com.alibaba.cloud.integration.order.entity.OrderRequest;
import com.alibaba.cloud.integration.order.entity.OrderTimeline;
import com.alibaba.cloud.integration.order.service.OrderServiceListService; import com.alibaba.cloud.integration.order.service.OrderServiceListService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.antlr.v4.runtime.atn.SemanticContext;
import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -59,7 +63,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService { ...@@ -59,7 +63,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
orderIds.add(r.getOrderId()); orderIds.add(r.getOrderId());
} }
// 获取工程师姓名列表 // 获取工程师姓名列表
HashMap<String, List<String>> engineerNames = this.GetEngineerNames(this.GetOrderAppointment(orderIds)); HashMap<String, List<String>> engineerNames = this.getEngineerNames(this.GetOrderAppointments(orderIds));
List<String> names; List<String> names;
List<OrderServiceList> content = new ArrayList<>(); List<OrderServiceList> content = new ArrayList<>();
...@@ -97,21 +101,34 @@ public class OrderServiceListServiceImpl implements OrderServiceListService { ...@@ -97,21 +101,34 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
} }
public List<OrderAppointment> GetOrderAppointment(List<String> orderIds) { public List<OrderAppointment> GetOrderAppointments(List<String> orderIds) {
// 获取指派单列表 // 获取指派单列表
if(CollectionUtil.isEmpty(orderIds)) {
return new ArrayList<OrderAppointment>();
}
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getOrderId, orderIds); lqw.in(OrderAppointment::getOrderId, orderIds);
return orderAppointmentDao.selectList(lqw); return orderAppointmentDao.selectList(lqw);
} }
public HashMap<String, List<String>> GetEngineerNames(List<OrderAppointment> orders){ public HashMap<String, List<String>> getEngineerNames(List<OrderAppointment> orders){
return null; // 获取orderId最新订单对应的工程师姓名列表
HashMap<String, List<String>> enginnerNames = new HashMap<>();
Map<String, List<OrderAppointment>> g =this.groupOrderAppointments(orders);
for(String orderId: g.keySet()) {
List<String> names = new ArrayList<>();
for(OrderAppointment o: g.get(orderId)) {
names.add(o.getEngineerName());
}
enginnerNames.put(orderId, names);
}
return enginnerNames;
} }
public HashMap<String, List<String>> GetOrderAppointments(List<OrderAppointment> orders){ public Map<String, List<OrderAppointment>> groupOrderAppointments(List<OrderAppointment> orders){
// 获取指派单工人姓名 // 获取orderId对应的最新的subOrderId的订单列表
HashMap<String, List<String>> map = new HashMap<>();
// 根据orderId+subOrderId降序排序 // 根据orderId+subOrderId降序排序
Comparator<OrderAppointment> byOrderIdDesc = Comparator.comparing(OrderAppointment::getOrderId, String.CASE_INSENSITIVE_ORDER).reversed(); Comparator<OrderAppointment> byOrderIdDesc = Comparator.comparing(OrderAppointment::getOrderId, String.CASE_INSENSITIVE_ORDER).reversed();
...@@ -119,7 +136,22 @@ public class OrderServiceListServiceImpl implements OrderServiceListService { ...@@ -119,7 +136,22 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
Comparator<OrderAppointment> comp = byOrderIdDesc.thenComparing(bySuborderIdDesc); Comparator<OrderAppointment> comp = byOrderIdDesc.thenComparing(bySuborderIdDesc);
List<OrderAppointment> results = orders.stream().sorted(comp).collect(Collectors.toList()); List<OrderAppointment> results = orders.stream().sorted(comp).collect(Collectors.toList());
return map; //获取orderId对应的最新的subOrderId的订单列表
String orderId = "";
String subOrderId = "";
List<OrderAppointment> items = new ArrayList<>();
for (OrderAppointment o: results) {
if (orderId != o.getOrderId()) {
orderId = o.getOrderId();
subOrderId = o.getSuborderId();
items.add(o);
continue;
}
if (subOrderId == o.getSuborderId()) {
items.add(o);
}
}
return items.stream().collect(Collectors.groupingBy(OrderAppointment::getOrderId));
} }
private Integer getEngNum(List<String> names){ private Integer getEngNum(List<String> names){
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!