Commit 68c5ef10 by 王力

Merge branch 'dev_bugfix_orderrequests' into 'develop'

Dev bugfix orderrequests

See merge request !131
2 parents 6d799cf2 d4efdce0
...@@ -10,22 +10,9 @@ public class ScheduleEngineerOverviewResp { ...@@ -10,22 +10,9 @@ public class ScheduleEngineerOverviewResp {
private String engineerCode; private String engineerCode;
private String startTime; private String startTime;
private String endTime; private String endTime;
private List<Dynamic> dynamics; private List<LabelValueDTO> dynamics;
private List<Timeline> timelines; private List<TimeLineDTO> orders;
private List<Order> orders; private List<Order> orderDetails;
@Data
public static class Dynamic {
private String label;
private String value;
}
@Data
public static class Timeline {
private String startTime;
private String endTime;
private String type;
}
@Data @Data
public static class Order { public static class Order {
......
...@@ -7,8 +7,10 @@ import com.dituhui.pea.common.BusinessException; ...@@ -7,8 +7,10 @@ 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.*; import com.dituhui.pea.order.dao.*;
import com.dituhui.pea.order.dto.LabelValueDTO;
import com.dituhui.pea.order.dto.ScheduleEngineerOverviewResp; import com.dituhui.pea.order.dto.ScheduleEngineerOverviewResp;
import com.dituhui.pea.order.dto.ScheduleOverviewResp; import com.dituhui.pea.order.dto.ScheduleOverviewResp;
import com.dituhui.pea.order.dto.TimeLineDTO;
import com.dituhui.pea.order.entity.*; import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.service.ScheduleService; import com.dituhui.pea.order.service.ScheduleService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -71,7 +73,7 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -71,7 +73,7 @@ public class ScheduleServiceImpl implements ScheduleService {
List<OrgTeamEngineer> teamEngineers = this.queryOrgTeamEngineers(t.getTeamId()); List<OrgTeamEngineer> teamEngineers = this.queryOrgTeamEngineers(t.getTeamId());
// 获取技术员列表 // 获取技术员列表
List<EngineerInfo> engineerInfoList = this.queryEngineerInfoByGroupId(t.getGroupId()); List<EngineerInfo> engineerInfoList = engineerInfoMPDao.selectByGroupId(t.getGroupId());
Map<String, List<EngineerInfo>> engineers = engineerInfoList.stream().collect(Collectors.groupingBy(EngineerInfo::getEngineerCode)); Map<String, List<EngineerInfo>> engineers = engineerInfoList.stream().collect(Collectors.groupingBy(EngineerInfo::getEngineerCode));
// 获取技术员对应的订单 // 获取技术员对应的订单
...@@ -125,19 +127,22 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -125,19 +127,22 @@ public class ScheduleServiceImpl implements ScheduleService {
@Override @Override
public Result<?> getScheduleEngineerOverview(String date, String engineerCode) throws BusinessException { public Result<?> getScheduleEngineerOverview(String date, String engineerCode) throws BusinessException {
EngineerInfo engineer = this.queryEngineerInfo(engineerCode); EngineerInfo engineer = engineerInfoMPDao.getByEngineerCode(engineerCode);
if (engineer == null) { if (engineer == null) {
throw new BusinessException("分销员不存在"); throw new BusinessException("分销员不存在");
} }
List<LabelValueDTO> emptyTips = new ArrayList<>();
List<OrderAppointment> orderAppointments = this.queryOrderAppointmentsByEngineerCode(engineerCode, date); List<OrderAppointment> orderAppointments = this.queryOrderAppointmentsByEngineerCode(engineerCode, date);
List<TimeLineDTO> timelines = new ArrayList<>();
List<ScheduleEngineerOverviewResp.Timeline> timelines = new ArrayList<>();
for (OrderAppointment o : orderAppointments) { for (OrderAppointment o : orderAppointments) {
ScheduleEngineerOverviewResp.Timeline item = new ScheduleEngineerOverviewResp.Timeline(); TimeLineDTO item = new TimeLineDTO();
item.setStartTime(TimeUtils.timestamp2DateTime(o.getExpectStartTime(), "hh:mm")); item.setOrderId(o.getOrderId());
item.setEndTime(TimeUtils.timestamp2DateTime(o.getExpectEndTime(), "hh:mm")); item.setPreStatus(o.getPreStatus());
item.setType(o.getStatus()); item.setAppointmentStatus(o.getStatus());
item.setStartTime(TimeUtils.IsoTimestamp2DateTime(o.getExpectStartTime()));
item.setEndTime(TimeUtils.IsoTimestamp2DateTime(o.getExpectEndTime()));
item.setTips(emptyTips);
timelines.add(item); timelines.add(item);
} }
...@@ -145,22 +150,22 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -145,22 +150,22 @@ public class ScheduleServiceImpl implements ScheduleService {
List<OrderAppointment> empty = new ArrayList<>(); List<OrderAppointment> empty = new ArrayList<>();
Integer countPending = statusGroup.getOrDefault("ASSIGNED", empty).size() + statusGroup.getOrDefault("CONTACTED", empty).size() + statusGroup.getOrDefault("DEPARTED", empty).size(); Integer countPending = statusGroup.getOrDefault("ASSIGNED", empty).size() + statusGroup.getOrDefault("CONTACTED", empty).size() + statusGroup.getOrDefault("DEPARTED", empty).size();
List<ScheduleEngineerOverviewResp.Dynamic> dynamics = new ArrayList<>(); List<LabelValueDTO> dynamics = new ArrayList<>();
dynamics.add(this.packDynamic("姓名", engineer.getName())); dynamics.add(new LabelValueDTO("姓名", engineer.getName()));
dynamics.add(this.packDynamic("日期", date)); dynamics.add(new LabelValueDTO("日期", date));
dynamics.add(this.packDynamic("状态", "上班")); dynamics.add(new LabelValueDTO("状态", "上班"));
dynamics.add(this.packDynamic("待服务", Integer.toString(countPending))); dynamics.add(new LabelValueDTO("待服务", Integer.toString(countPending)));
dynamics.add(this.packDynamic("服务中", Integer.toString(statusGroup.getOrDefault("STARTED", empty).size()))); dynamics.add(new LabelValueDTO("服务中", Integer.toString(statusGroup.getOrDefault("STARTED", empty).size())));
dynamics.add(this.packDynamic("已完成", Integer.toString(statusGroup.getOrDefault("FINISHED", empty).size()))); dynamics.add(new LabelValueDTO("已完成", Integer.toString(statusGroup.getOrDefault("FINISHED", empty).size())));
dynamics.add(this.packDynamic("已取消", Integer.toString(statusGroup.getOrDefault("CANCELED", empty).size()))); dynamics.add(new LabelValueDTO("已取消", Integer.toString(statusGroup.getOrDefault("CANCELED", empty).size())));
dynamics.add(this.packDynamic("已改约", Integer.toString(statusGroup.getOrDefault("RESCHEDULED", empty).size()))); dynamics.add(new LabelValueDTO("已改约", Integer.toString(statusGroup.getOrDefault("RESCHEDULED", empty).size())));
dynamics.add(this.packDynamic("预计总耗时", "6小时")); dynamics.add(new LabelValueDTO("预计总耗时", "6小时"));
dynamics.add(this.packDynamic("公里数", "42公里")); dynamics.add(new LabelValueDTO("公里数", "42公里"));
dynamics.add(this.packDynamic("工作时间", "08:00-18:00")); dynamics.add(new LabelValueDTO("工作时间", "08:00-18:00"));
dynamics.add(this.packDynamic("交通工具", "电动车")); dynamics.add(new LabelValueDTO("交通工具", "电动车"));
List<String> orderIds = orderAppointments.stream().map(OrderAppointment::getOrderId).collect(Collectors.toList()); List<String> orderIds = orderAppointments.stream().map(OrderAppointment::getOrderId).collect(Collectors.toList());
List<OrderRequest> orderRequests = this.queryOrderRequestByOrderIds(orderIds); List<OrderRequest> orderRequests = orderRequestMPDao.selectByOrderIds(orderIds);
List<ScheduleEngineerOverviewResp.Order> orders = new ArrayList<>(); List<ScheduleEngineerOverviewResp.Order> orders = new ArrayList<>();
for (OrderRequest o : orderRequests) { for (OrderRequest o : orderRequests) {
ScheduleEngineerOverviewResp.Order item = new ScheduleEngineerOverviewResp.Order(); ScheduleEngineerOverviewResp.Order item = new ScheduleEngineerOverviewResp.Order();
...@@ -181,7 +186,7 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -181,7 +186,7 @@ public class ScheduleServiceImpl implements ScheduleService {
} }
String groupName = ""; String groupName = "";
OrgGroup group = this.queryOrgGroupInfo(engineer.getGroupId()); OrgGroup group = orgGroupMPDao.getByGroupId(engineer.getGroupId());
if (group != null) { if (group != null) {
groupName = group.getGroupName(); groupName = group.getGroupName();
} }
...@@ -192,8 +197,8 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -192,8 +197,8 @@ public class ScheduleServiceImpl implements ScheduleService {
res.setStartTime("08:00"); // TODO res.setStartTime("08:00"); // TODO
res.setEndTime("18:00"); res.setEndTime("18:00");
res.setDynamics(dynamics); res.setDynamics(dynamics);
res.setTimelines(timelines); res.setOrders(timelines);
res.setOrders(orders); res.setOrderDetails(orders);
return Result.success(res); return Result.success(res);
} }
...@@ -229,12 +234,6 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -229,12 +234,6 @@ public class ScheduleServiceImpl implements ScheduleService {
return orderRequestMPDao.selectList(lqw); return orderRequestMPDao.selectList(lqw);
} }
private List<OrderRequest> queryOrderRequestByOrderIds(List<String> orderIds) {
LambdaQueryWrapper<OrderRequest> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderRequest::getOrderId, orderIds);
return orderRequestMPDao.selectList(lqw);
}
private List<OrderAppointment> queryOrderAppointments(List<String> orderIds, String date) { private List<OrderAppointment> queryOrderAppointments(List<String> orderIds, String date) {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getOrderId, orderIds); lqw.in(OrderAppointment::getOrderId, orderIds);
...@@ -251,24 +250,6 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -251,24 +250,6 @@ public class ScheduleServiceImpl implements ScheduleService {
return orderAppointmentMPDao.selectList(lqw); return orderAppointmentMPDao.selectList(lqw);
} }
private List<EngineerInfo> queryEngineerInfoByGroupId(String groupId) {
LambdaQueryWrapper<EngineerInfo> lqw = new LambdaQueryWrapper<>();
lqw.eq(EngineerInfo::getGroupId, groupId);
return engineerInfoMPDao.selectList(lqw);
}
private EngineerInfo queryEngineerInfo(String engineerCode) {
LambdaQueryWrapper<EngineerInfo> lqw = new LambdaQueryWrapper<>();
lqw.eq(EngineerInfo::getEngineerCode, engineerCode);
return engineerInfoMPDao.selectOne(lqw);
}
private OrgGroup queryOrgGroupInfo(String groupId) {
LambdaQueryWrapper<OrgGroup> lqw = new LambdaQueryWrapper<>();
lqw.eq(OrgGroup::getGroupId, groupId);
return orgGroupMPDao.selectOne(lqw);
}
private ScheduleOverviewResp.OrderSum getTeamOrderSum(List<OrderRequest> orders) { private ScheduleOverviewResp.OrderSum getTeamOrderSum(List<OrderRequest> orders) {
ScheduleOverviewResp.OrderSum s = new ScheduleOverviewResp.OrderSum(); ScheduleOverviewResp.OrderSum s = new ScheduleOverviewResp.OrderSum();
...@@ -283,11 +264,4 @@ public class ScheduleServiceImpl implements ScheduleService { ...@@ -283,11 +264,4 @@ public class ScheduleServiceImpl implements ScheduleService {
s.setCleanNum(cc.getOrDefault("清洗", emtpy).size()); s.setCleanNum(cc.getOrDefault("清洗", emtpy).size());
return s; return s;
} }
private ScheduleEngineerOverviewResp.Dynamic packDynamic(String label, String value) {
ScheduleEngineerOverviewResp.Dynamic item = new ScheduleEngineerOverviewResp.Dynamic();
item.setLabel(label);
item.setValue(value);
return item;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!