Commit 68995856 by 王力

Merge branch 'dev_bugfix_orderdetail0620' into 'develop'

Dev bugfix orderdetail0620

See merge request !119
2 parents 687c0a42 c22ac384
...@@ -20,7 +20,7 @@ public class OrderAssignRecommendResp { ...@@ -20,7 +20,7 @@ public class OrderAssignRecommendResp {
private String startTime; private String startTime;
private String endTime; private String endTime;
private InsertInfo insertInfo; private InsertInfo insertInfo;
private List<Timeline> timelines; private List<TimeLineDTO> timelines;
} }
@Data @Data
...@@ -35,11 +35,4 @@ public class OrderAssignRecommendResp { ...@@ -35,11 +35,4 @@ public class OrderAssignRecommendResp {
private String title; private String title;
private String color; private String color;
} }
@Data
public static class Timeline {
private String startTime;
private String endTime;
private String type;
}
} }
package com.dituhui.pea.order.dto;
import lombok.Data;
import java.util.List;
@Data
public class TimeLineDTO {
private String orderId;
private String preStatus;
private String appointmentStatus;
private String startTime;
private String endTime;
private List<LabelValueDTO> tips;
}
\ No newline at end of file
package com.dituhui.pea.order.service.impl; package com.dituhui.pea.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.dituhui.pea.common.BusinessException; import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result; import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils; import com.dituhui.pea.order.common.TimeUtils;
import com.dituhui.pea.order.dao.EngineerInfoMPDao; import com.dituhui.pea.order.dao.EngineerInfoMPDao;
import com.dituhui.pea.order.dao.OrderAppointmentMPDao; import com.dituhui.pea.order.dao.OrderAppointmentMPDao;
import com.dituhui.pea.order.dao.OrderRequestMPDao; import com.dituhui.pea.order.dao.OrderRequestMPDao;
import com.dituhui.pea.order.dto.LabelValueDTO;
import com.dituhui.pea.order.dto.OrderAssignRecommendResp; import com.dituhui.pea.order.dto.OrderAssignRecommendResp;
import com.dituhui.pea.order.dto.TimeLineDTO;
import com.dituhui.pea.order.entity.EngineerInfo; import com.dituhui.pea.order.entity.EngineerInfo;
import com.dituhui.pea.order.entity.OrderAppointment; import com.dituhui.pea.order.entity.OrderAppointment;
import com.dituhui.pea.order.entity.OrderRequest; import com.dituhui.pea.order.entity.OrderRequest;
import com.dituhui.pea.order.service.OrderAssign; import com.dituhui.pea.order.service.OrderAssign;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.Data; import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -20,10 +22,11 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -20,10 +22,11 @@ import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
public class OrderAssignImpl implements OrderAssign { public class OrderAssignImpl implements OrderAssign {
...@@ -61,10 +64,14 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -61,10 +64,14 @@ public class OrderAssignImpl implements OrderAssign {
continue; continue;
} }
List<String> orderIds = orderAppointments.stream().map(OrderAppointment::getOrderId).collect(Collectors.toList());
List<OrderRequest> orders = this.queryOrderRequestsByOrderIds(orderIds);
HashMap<String, List<LabelValueDTO>> orderTips = this.packOrderTips(orders);
OrderAssignRecommendResp.Engineer item = new OrderAssignRecommendResp.Engineer(); OrderAssignRecommendResp.Engineer item = new OrderAssignRecommendResp.Engineer();
OrderAssignRecommendResp.InsertInfo insertInfo = new OrderAssignRecommendResp.InsertInfo(); OrderAssignRecommendResp.InsertInfo insertInfo = new OrderAssignRecommendResp.InsertInfo();
insertInfo.setNumber(String.format("%d/%d", rr.index+1, orderAppointments.size() + 1)); insertInfo.setNumber(String.format("%d/%d", rr.index + 1, orderAppointments.size() + 1));
insertInfo.setTimeDesc("+30分钟"); insertInfo.setTimeDesc("+30分钟");
insertInfo.setTimeDesc("+4公里"); insertInfo.setTimeDesc("+4公里");
...@@ -74,10 +81,10 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -74,10 +81,10 @@ public class OrderAssignImpl implements OrderAssign {
item.setInsertInfo(insertInfo); item.setInsertInfo(insertInfo);
item.setDistanceDesc("15.5公里"); item.setDistanceDesc("15.5公里");
item.setTimeDesc("520分钟"); item.setTimeDesc("520分钟");
item.setDesc(String.format("将被插入在第%d单,受此影响原第%d单变化第%d单,第3单将增加5公里路程,比预计晚到30分钟,建议调整;", rr.index+1, rr.index + 1, rr.index + 2)); item.setDesc(String.format("将被插入在第%d单,受此影响原第%d单变化第%d单,第3单将增加5公里路程,比预计晚到30分钟,建议调整;", rr.index + 1, rr.index + 1, rr.index + 2));
item.setStartTime("08:00"); item.setStartTime("08:00");
item.setStartTime("18:00"); item.setStartTime("18:00");
item.setTimelines(this.packTimelines(orderAppointments)); item.setTimelines(this.packTimelines(orderAppointments, orderTips));
items.add(item); items.add(item);
} }
...@@ -147,6 +154,12 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -147,6 +154,12 @@ public class OrderAssignImpl implements OrderAssign {
return orderRequestMPDao.selectOne(lqw); return orderRequestMPDao.selectOne(lqw);
} }
private List<OrderRequest> queryOrderRequestsByOrderIds(List<String> orderIds) {
LambdaQueryWrapper<OrderRequest> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderRequest::getOrderId, orderIds);
return orderRequestMPDao.selectList(lqw);
}
private List<OrderAppointment> queryOrderAppointments(String engineerCode, String date) { private List<OrderAppointment> queryOrderAppointments(String engineerCode, String date) {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.eq(OrderAppointment::getEngineerCode, engineerCode); lqw.eq(OrderAppointment::getEngineerCode, engineerCode);
...@@ -165,18 +178,48 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -165,18 +178,48 @@ public class OrderAssignImpl implements OrderAssign {
return engineerInfoMPDao.selectList(lqw); return engineerInfoMPDao.selectList(lqw);
} }
private List<OrderAssignRecommendResp.Timeline> packTimelines(List<OrderAppointment> orders) { private List<TimeLineDTO> packTimelines(List<OrderAppointment> orders, HashMap<String, List<LabelValueDTO>> orderTips) {
List<OrderAssignRecommendResp.Timeline> items = new ArrayList<>();
for(OrderAppointment order: orders){ List<LabelValueDTO> empty = new ArrayList<>();
OrderAssignRecommendResp.Timeline item = new OrderAssignRecommendResp.Timeline();
List<TimeLineDTO> items = new ArrayList<>();
for (OrderAppointment order : orders) {
TimeLineDTO item = new TimeLineDTO();
item.setOrderId(order.getOrderId());
item.setPreStatus(order.getPreStatus());
item.setStartTime(TimeUtils.timestamp2DateTime(order.getExpectStartTime(), "HH:mm")); item.setStartTime(TimeUtils.timestamp2DateTime(order.getExpectStartTime(), "HH:mm"));
item.setEndTime(TimeUtils.timestamp2DateTime(order.getExpectEndTime(), "HH:mm")); item.setEndTime(TimeUtils.timestamp2DateTime(order.getExpectEndTime(), "HH:mm"));
item.setType(order.getStatus()); item.setTips(orderTips.getOrDefault(order.getOrderId(), empty));
items.add(item); items.add(item);
} }
return items; return items;
} }
private HashMap<String, List<LabelValueDTO>> packOrderTips(List<OrderRequest> orders) {
HashMap<String, List<LabelValueDTO>> map = new HashMap<>();
for (OrderRequest order : orders) {
map.put(order.getOrderId(), this.packOrderTip(order));
}
return map;
}
private List<LabelValueDTO> packOrderTip(OrderRequest order) {
// pack订单tips
List<LabelValueDTO> items = new ArrayList<>();
items.add(this.packLabelValue("类型/品牌", String.format("%s %s %s", order.getSkill(), order.getType(), order.getBrand())));
items.add(this.packLabelValue("电话/地址", String.format("%s %s\n%s", order.getName(), order.getPhone(), order.getAddress())));
items.add(this.packLabelValue("备注", order.getDescription()));
items.add(this.packLabelValue("标签", order.getTags()));
return items;
}
private LabelValueDTO packLabelValue(String label, String value) {
LabelValueDTO item = new LabelValueDTO();
item.setLabel(label);
item.setValue(value);
return item;
}
} }
@Data @Data
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!