Commit d6f22c9d by 王力

Merge branch 'dev_temp_merge' into 'master'

Dev temp merge

See merge request !128
2 parents 11fc2225 5a9ae690
package com.dituhui.pea.order.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OrderConfig {
public static final int DEFAULT_PAGE_SIZE = 10;
public static final int DEFAULT_PAGE_INDEX = 1;
}
...@@ -3,8 +3,22 @@ package com.dituhui.pea.order.dao; ...@@ -3,8 +3,22 @@ package com.dituhui.pea.order.dao;
import com.dituhui.pea.order.entity.EngineerInfo; import com.dituhui.pea.order.entity.EngineerInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface EngineerInfoMPDao extends BaseMapper<EngineerInfo> { public interface EngineerInfoMPDao extends BaseMapper<EngineerInfo> {
}
@Select("select * from engineer_info where engineer_code = #{engineerCode}")
EngineerInfo getByEngineerCode(String engineerCode);
@Select("select * from engineer_info where engineer_code = #{engineerCode}")
List<EngineerInfo> selectByEngineerCode(String engineerCode);
@Select("select * from engineer_info where engineer_code in #{engineerCodes}")
List<EngineerInfo> selectByEngineerCodes(List<String> engineerCodes);
@Select("select * from engineer_info where group_id = #{groupId}")
List<EngineerInfo> selectByGroupId(String groupId);
}
\ No newline at end of file
...@@ -3,7 +3,19 @@ package com.dituhui.pea.order.dao; ...@@ -3,7 +3,19 @@ package com.dituhui.pea.order.dao;
import com.dituhui.pea.order.entity.OrderRequest; import com.dituhui.pea.order.entity.OrderRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface OrderRequestMPDao extends BaseMapper<OrderRequest> { public interface OrderRequestMPDao extends BaseMapper<OrderRequest> {
@Select("select * from order_request where order_id = #{orderId}")
OrderRequest getByOrderId(String orderId);
@Select("select * from order_request where order_id = #{orderId}")
List<OrderRequest> selectByOrderId(String orderId);
@Select("select * from order_request where order_id in #{orderIds}")
List<OrderRequest> selectByOrderIds(List<String> orderIds);
} }
\ No newline at end of file
...@@ -3,7 +3,16 @@ package com.dituhui.pea.order.dao; ...@@ -3,7 +3,16 @@ package com.dituhui.pea.order.dao;
import com.dituhui.pea.order.entity.OrgGroup; import com.dituhui.pea.order.entity.OrgGroup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper @Mapper
public interface OrgGroupMPDao extends BaseMapper<OrgGroup> { public interface OrgGroupMPDao extends BaseMapper<OrgGroup> {
@Select("select * from org_group where group_id = #{groupId}")
OrgGroup getByGroupId(String groupId);
@Select("select * from org_group where group_id = #{groupId}")
List<OrgGroup> selectByGroupId(String groupId);
} }
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.config.OrderConfig;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
...@@ -21,6 +23,6 @@ public class CapacityStatQueryReqDTO { ...@@ -21,6 +23,6 @@ public class CapacityStatQueryReqDTO {
*/ */
@NotBlank @NotBlank
private String levelValue; private String levelValue;
private Integer page; private Integer page = OrderConfig.DEFAULT_PAGE_INDEX;
private Integer size; private Integer size = OrderConfig.DEFAULT_PAGE_SIZE;
} }
package com.dituhui.pea.order.dto; package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.config.OrderConfig;
import java.util.List; import java.util.List;
@lombok.Data @lombok.Data
...@@ -8,8 +10,8 @@ public class EngineersGanttReqDTO { ...@@ -8,8 +10,8 @@ public class EngineersGanttReqDTO {
private String levelType; private String levelType;
private String levelValue; private String levelValue;
private Integer page; private Integer page = OrderConfig.DEFAULT_PAGE_INDEX;
private Integer size; private Integer size = OrderConfig.DEFAULT_PAGE_SIZE;
private String date; private String date;
private List<String> engineerCodes; private List<String> engineerCodes;
} }
...@@ -8,4 +8,12 @@ import lombok.experimental.Accessors; ...@@ -8,4 +8,12 @@ import lombok.experimental.Accessors;
public class LabelValueDTO { public class LabelValueDTO {
private String value; private String value;
private String label; private String label;
public LabelValueDTO() {
}
public LabelValueDTO(String label, String value) {
this.label = label;
this.value = (value == null) ? "" : value;
}
} }
...@@ -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> orders;
} }
@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; package com.dituhui.pea.order.dto;
import com.dituhui.pea.order.config.OrderConfig;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
...@@ -14,8 +15,8 @@ public class OrderChangeListReqDTO { ...@@ -14,8 +15,8 @@ public class OrderChangeListReqDTO {
* levelType对应的id值 * levelType对应的id值
*/ */
private String levelValue; private String levelValue;
private int page; private int page = OrderConfig.DEFAULT_PAGE_INDEX;
private int size; private int size = OrderConfig.DEFAULT_PAGE_SIZE;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date = new Date(); private Date date = new Date();
/** /**
......
...@@ -2,6 +2,8 @@ package com.dituhui.pea.order.dto; ...@@ -2,6 +2,8 @@ package com.dituhui.pea.order.dto;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -13,7 +15,9 @@ public class OrderCreateReqDTO { ...@@ -13,7 +15,9 @@ public class OrderCreateReqDTO {
private String phone; private String phone;
private String address; private String address;
private LocationDTO location; private LocationDTO location;
@NotBlank
private String brand; private String brand;
@NotBlank()
private String type; private String type;
private String skill; private String skill;
private String faultDescribe; private String faultDescribe;
......
...@@ -7,6 +7,7 @@ import java.util.List; ...@@ -7,6 +7,7 @@ import java.util.List;
@Data @Data
public class OrderServiceDetailResp { public class OrderServiceDetailResp {
private String orderId; private String orderId;
private String appointmentStatus;
private String status; private String status;
private String statusDesc; private String statusDesc;
private String risk; private String risk;
......
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
...@@ -206,7 +206,7 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -206,7 +206,7 @@ public class DispatchServiceImpl implements DispatchService {
public Result<?> dispatchOrderConfirm(String engineerCode, List<String> orderIds) throws BusinessException { public Result<?> dispatchOrderConfirm(String engineerCode, List<String> orderIds) throws BusinessException {
// 派工台确认派单 // 派工台确认派单
EngineerInfo engineer = this.queryEngineer(engineerCode); EngineerInfo engineer = engineerInfoMPDao.getByEngineerCode(engineerCode);
if (engineer == null) { if (engineer == null) {
throw new BusinessException("技术员不存在"); throw new BusinessException("技术员不存在");
} }
...@@ -222,8 +222,8 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -222,8 +222,8 @@ public class DispatchServiceImpl implements DispatchService {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.eq(OrderAppointment::getEngineerCode, engineerCode); lqw.eq(OrderAppointment::getEngineerCode, engineerCode);
lqw.ge(OrderAppointment::getExpectStartTime, this.getTimestampFromDate(date, "00:00:00")); lqw.ge(OrderAppointment::getExpectStartTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", date)));
lqw.lt(OrderAppointment::getExpectStartTime, this.getTimestampFromDate(date, "23:59:59")); lqw.le(OrderAppointment::getExpectStartTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 23:59:59", date)));
lqw.orderByAsc(OrderAppointment::getExpectStartTime); lqw.orderByAsc(OrderAppointment::getExpectStartTime);
List<OrderAppointment> orderAppointments = orderAppointmentMPDao.selectList(lqw); List<OrderAppointment> orderAppointments = orderAppointmentMPDao.selectList(lqw);
...@@ -271,8 +271,8 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -271,8 +271,8 @@ public class DispatchServiceImpl implements DispatchService {
lqw.in(levelType.equals("group"), OrderRequest::getOrgGroupId, levelIds); lqw.in(levelType.equals("group"), OrderRequest::getOrgGroupId, levelIds);
lqw.eq(OrderRequest::getStatus, "open"); lqw.eq(OrderRequest::getStatus, "open");
lqw.eq(OrderRequest::getAppointmentStatus, "NOT_ASSIGNED"); lqw.eq(OrderRequest::getAppointmentStatus, "NOT_ASSIGNED");
lqw.ge(OrderRequest::getExpectTimeBegin, this.getTimestampFromDate(date, "00:00:00")); lqw.ge(OrderRequest::getExpectTimeBegin, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", date)));
lqw.le(OrderRequest::getExpectTimeBegin, this.getTimestampFromDate(date, "23:59:59")); lqw.le(OrderRequest::getExpectTimeBegin, TimeUtils.IsoDateTime2Timestamp(String.format("%s 23:59:59", date)));
return orderRequestMPDao.selectList(lqw); return orderRequestMPDao.selectList(lqw);
} }
...@@ -294,8 +294,9 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -294,8 +294,9 @@ public class DispatchServiceImpl implements DispatchService {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getEngineerCode, engineerCodes); lqw.in(OrderAppointment::getEngineerCode, engineerCodes);
lqw.ge(OrderAppointment::getExpectStartTime, this.getTimestampFromDate(date, "00:00:00"));
lqw.le(OrderAppointment::getExpectStartTime, this.getTimestampFromDate(date, "23:59:59")); lqw.ge(OrderAppointment::getExpectStartTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 00:00:00", date)));
lqw.le(OrderAppointment::getExpectStartTime, TimeUtils.IsoDateTime2Timestamp(String.format("%s 23:59:59", date)));
lqw.orderByAsc(OrderAppointment::getEngineerCode); lqw.orderByAsc(OrderAppointment::getEngineerCode);
lqw.orderByAsc(OrderAppointment::getExpectStartTime); lqw.orderByAsc(OrderAppointment::getExpectStartTime);
...@@ -313,12 +314,6 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -313,12 +314,6 @@ public class DispatchServiceImpl implements DispatchService {
return engineerInfoMPDao.selectList(lqw); return engineerInfoMPDao.selectList(lqw);
} }
private EngineerInfo queryEngineer(String engineerCode) {
LambdaQueryWrapper<EngineerInfo> lqw = new LambdaQueryWrapper<>();
lqw.eq(EngineerInfo::getEngineerCode, engineerCode);
return engineerInfoMPDao.selectOne(lqw);
}
private List<String> queryOrgGroupIds(String levelType, List<String> levelIds) { private List<String> queryOrgGroupIds(String levelType, List<String> levelIds) {
LambdaQueryWrapper<OrgGroup> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrgGroup> lqw = new LambdaQueryWrapper<>();
lqw.in(levelType.equals("cluster"), OrgGroup::getClusterId, levelIds); lqw.in(levelType.equals("cluster"), OrgGroup::getClusterId, levelIds);
...@@ -352,10 +347,6 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -352,10 +347,6 @@ public class DispatchServiceImpl implements DispatchService {
return map; return map;
} }
public Timestamp getTimestampFromDate(String date, String time) {
return Timestamp.valueOf(date + " " + time);
}
private String parseTimeSlot(Timestamp t) { private String parseTimeSlot(Timestamp t) {
String h = TimeUtils.timestamp2DateTime(t, "HH"); String h = TimeUtils.timestamp2DateTime(t, "HH");
Integer hour = Integer.parseInt(h); Integer hour = Integer.parseInt(h);
......
...@@ -17,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -17,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -81,7 +79,7 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -81,7 +79,7 @@ public class EngineerServiceImpl implements EngineerService {
// 获取技术员基础信息详情 // 获取技术员基础信息详情
// 获取技术员列表 // 获取技术员列表
List<EngineerInfo> records = this.queryEngineerInfos(engineerCode); List<EngineerInfo> records = engineerInfoMPDao.selectByEngineerCode(engineerCode);
if (records.isEmpty()) { if (records.isEmpty()) {
throw new BusinessException("技术员不存在"); throw new BusinessException("技术员不存在");
} }
...@@ -115,7 +113,7 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -115,7 +113,7 @@ public class EngineerServiceImpl implements EngineerService {
@Override @Override
public Result<?> getEngineerSkillDetail(String engineerCode) throws BusinessException { public Result<?> getEngineerSkillDetail(String engineerCode) throws BusinessException {
// 获取工程师技能详情 // 获取工程师技能详情
List<EngineerInfo> engineers = this.queryEngineerInfos(engineerCode); List<EngineerInfo> engineers = engineerInfoMPDao.selectByEngineerCode(engineerCode);
if (engineers.isEmpty()) { if (engineers.isEmpty()) {
throw new BusinessException("技术员不存在"); throw new BusinessException("技术员不存在");
} }
...@@ -189,7 +187,7 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -189,7 +187,7 @@ public class EngineerServiceImpl implements EngineerService {
@Override @Override
public Result<?> getEngineerBusinessDetail(String engineerCode) { public Result<?> getEngineerBusinessDetail(String engineerCode) {
// 获取技术员业务熟悉详情 // 获取技术员业务熟悉详情
List<EngineerInfo> engineers = this.queryEngineerInfos(engineerCode); List<EngineerInfo> engineers = engineerInfoMPDao.selectByEngineerCode(engineerCode);
if (engineers.isEmpty()) { if (engineers.isEmpty()) {
throw new BusinessException("技术员不存在"); throw new BusinessException("技术员不存在");
} }
...@@ -240,13 +238,6 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -240,13 +238,6 @@ public class EngineerServiceImpl implements EngineerService {
return pg; return pg;
} }
private List<EngineerInfo> queryEngineerInfos(String engineerCode) {
// 分页查询工程师基础信息
LambdaQueryWrapper<EngineerInfo> lqw = new LambdaQueryWrapper<>();
lqw.eq(EngineerInfo::getEngineerCode, engineerCode);
return engineerInfoMPDao.selectList(lqw);
}
private HashMap<String, String> queryGroupNames(List<String> groupIds) { private HashMap<String, String> queryGroupNames(List<String> groupIds) {
//查询小组名称映射关系 //查询小组名称映射关系
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
......
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,12 +64,20 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -61,12 +64,20 @@ public class OrderAssignImpl implements OrderAssign {
continue; continue;
} }
// 获取订单tips
HashMap<String, List<LabelValueDTO>> orderTips = new HashMap<>();
List<String> orderIds = orderAppointments.stream().map(OrderAppointment::getOrderId).collect(Collectors.toList());
if (!orderIds.isEmpty()) {
List<OrderRequest> orders = this.queryOrderRequestsByOrderIds(orderIds);
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.setDistanceDesc("+4公里");
item.setEngineerCode(engineer.getEngineerCode()); item.setEngineerCode(engineer.getEngineerCode());
item.setEngineerName(engineer.getName()); item.setEngineerName(engineer.getName());
...@@ -74,10 +85,10 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -74,10 +85,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.setEndTime("18:00");
item.setTimelines(this.packTimelines(orderAppointments)); item.setOrders(this.packTimelines(orderAppointments, orderTips));
items.add(item); items.add(item);
} }
...@@ -147,6 +158,12 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -147,6 +158,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 +182,40 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -165,18 +182,40 @@ 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.setAppointmentStatus(order.getStatus());
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) {
return orders.stream().collect(Collectors.toMap(
OrderRequest::getOrderId, this::packOrderTip, (l1, l2) -> l1, HashMap::new));
}
private List<LabelValueDTO> packOrderTip(OrderRequest order) {
// pack订单tips
List<LabelValueDTO> items = new ArrayList<>();
items.add(new LabelValueDTO("类型/品牌", String.format("%s %s %s", order.getSkill(), order.getType(), order.getBrand())));
items.add(new LabelValueDTO("电话/地址", String.format("%s %s\n%s", order.getName(), order.getPhone(), order.getAddress())));
items.add(new LabelValueDTO("备注", order.getDescription()));
items.add(new LabelValueDTO("标签", order.getTags()));
return items;
}
} }
@Data @Data
......
...@@ -11,8 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,8 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -57,6 +55,7 @@ public class OrderServiceDetailImpl implements OrderServiceDetail { ...@@ -57,6 +55,7 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
res.setRiskDesc(""); res.setRiskDesc("");
res.setStatusDesc("打开"); res.setStatusDesc("打开");
res.setStatus(order.getStatus()); res.setStatus(order.getStatus());
res.setAppointmentStatus(order.getAppointmentStatus());
res.setLocation(String.format("%s,%s", order.getX(), order.getY())); res.setLocation(String.format("%s,%s", order.getX(), order.getY()));
res.setItems(items); res.setItems(items);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!