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 {
private String engineerCode;
private String startTime;
private String endTime;
private List<Dynamic> dynamics;
private List<Timeline> timelines;
private List<Order> orders;
@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;
}
private List<LabelValueDTO> dynamics;
private List<TimeLineDTO> orders;
private List<Order> orderDetails;
@Data
public static class Order {
......
......@@ -7,8 +7,10 @@ import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.TimeUtils;
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.ScheduleOverviewResp;
import com.dituhui.pea.order.dto.TimeLineDTO;
import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.service.ScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -71,7 +73,7 @@ public class ScheduleServiceImpl implements ScheduleService {
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));
// 获取技术员对应的订单
......@@ -125,19 +127,22 @@ public class ScheduleServiceImpl implements ScheduleService {
@Override
public Result<?> getScheduleEngineerOverview(String date, String engineerCode) throws BusinessException {
EngineerInfo engineer = this.queryEngineerInfo(engineerCode);
EngineerInfo engineer = engineerInfoMPDao.getByEngineerCode(engineerCode);
if (engineer == null) {
throw new BusinessException("分销员不存在");
}
List<LabelValueDTO> emptyTips = new ArrayList<>();
List<OrderAppointment> orderAppointments = this.queryOrderAppointmentsByEngineerCode(engineerCode, date);
List<ScheduleEngineerOverviewResp.Timeline> timelines = new ArrayList<>();
List<TimeLineDTO> timelines = new ArrayList<>();
for (OrderAppointment o : orderAppointments) {
ScheduleEngineerOverviewResp.Timeline item = new ScheduleEngineerOverviewResp.Timeline();
item.setStartTime(TimeUtils.timestamp2DateTime(o.getExpectStartTime(), "hh:mm"));
item.setEndTime(TimeUtils.timestamp2DateTime(o.getExpectEndTime(), "hh:mm"));
item.setType(o.getStatus());
TimeLineDTO item = new TimeLineDTO();
item.setOrderId(o.getOrderId());
item.setPreStatus(o.getPreStatus());
item.setAppointmentStatus(o.getStatus());
item.setStartTime(TimeUtils.IsoTimestamp2DateTime(o.getExpectStartTime()));
item.setEndTime(TimeUtils.IsoTimestamp2DateTime(o.getExpectEndTime()));
item.setTips(emptyTips);
timelines.add(item);
}
......@@ -145,22 +150,22 @@ public class ScheduleServiceImpl implements ScheduleService {
List<OrderAppointment> empty = new ArrayList<>();
Integer countPending = statusGroup.getOrDefault("ASSIGNED", empty).size() + statusGroup.getOrDefault("CONTACTED", empty).size() + statusGroup.getOrDefault("DEPARTED", empty).size();
List<ScheduleEngineerOverviewResp.Dynamic> dynamics = new ArrayList<>();
dynamics.add(this.packDynamic("姓名", engineer.getName()));
dynamics.add(this.packDynamic("日期", date));
dynamics.add(this.packDynamic("状态", "上班"));
dynamics.add(this.packDynamic("待服务", Integer.toString(countPending)));
dynamics.add(this.packDynamic("服务中", Integer.toString(statusGroup.getOrDefault("STARTED", empty).size())));
dynamics.add(this.packDynamic("已完成", Integer.toString(statusGroup.getOrDefault("FINISHED", empty).size())));
dynamics.add(this.packDynamic("已取消", Integer.toString(statusGroup.getOrDefault("CANCELED", empty).size())));
dynamics.add(this.packDynamic("已改约", Integer.toString(statusGroup.getOrDefault("RESCHEDULED", empty).size())));
dynamics.add(this.packDynamic("预计总耗时", "6小时"));
dynamics.add(this.packDynamic("公里数", "42公里"));
dynamics.add(this.packDynamic("工作时间", "08:00-18:00"));
dynamics.add(this.packDynamic("交通工具", "电动车"));
List<LabelValueDTO> dynamics = new ArrayList<>();
dynamics.add(new LabelValueDTO("姓名", engineer.getName()));
dynamics.add(new LabelValueDTO("日期", date));
dynamics.add(new LabelValueDTO("状态", "上班"));
dynamics.add(new LabelValueDTO("待服务", Integer.toString(countPending)));
dynamics.add(new LabelValueDTO("服务中", Integer.toString(statusGroup.getOrDefault("STARTED", empty).size())));
dynamics.add(new LabelValueDTO("已完成", Integer.toString(statusGroup.getOrDefault("FINISHED", empty).size())));
dynamics.add(new LabelValueDTO("已取消", Integer.toString(statusGroup.getOrDefault("CANCELED", empty).size())));
dynamics.add(new LabelValueDTO("已改约", Integer.toString(statusGroup.getOrDefault("RESCHEDULED", empty).size())));
dynamics.add(new LabelValueDTO("预计总耗时", "6小时"));
dynamics.add(new LabelValueDTO("公里数", "42公里"));
dynamics.add(new LabelValueDTO("工作时间", "08:00-18:00"));
dynamics.add(new LabelValueDTO("交通工具", "电动车"));
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<>();
for (OrderRequest o : orderRequests) {
ScheduleEngineerOverviewResp.Order item = new ScheduleEngineerOverviewResp.Order();
......@@ -181,7 +186,7 @@ public class ScheduleServiceImpl implements ScheduleService {
}
String groupName = "";
OrgGroup group = this.queryOrgGroupInfo(engineer.getGroupId());
OrgGroup group = orgGroupMPDao.getByGroupId(engineer.getGroupId());
if (group != null) {
groupName = group.getGroupName();
}
......@@ -192,8 +197,8 @@ public class ScheduleServiceImpl implements ScheduleService {
res.setStartTime("08:00"); // TODO
res.setEndTime("18:00");
res.setDynamics(dynamics);
res.setTimelines(timelines);
res.setOrders(orders);
res.setOrders(timelines);
res.setOrderDetails(orders);
return Result.success(res);
}
......@@ -229,12 +234,6 @@ public class ScheduleServiceImpl implements ScheduleService {
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) {
LambdaQueryWrapper<OrderAppointment> lqw = new LambdaQueryWrapper<>();
lqw.in(OrderAppointment::getOrderId, orderIds);
......@@ -251,24 +250,6 @@ public class ScheduleServiceImpl implements ScheduleService {
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) {
ScheduleOverviewResp.OrderSum s = new ScheduleOverviewResp.OrderSum();
......@@ -283,11 +264,4 @@ public class ScheduleServiceImpl implements ScheduleService {
s.setCleanNum(cc.getOrDefault("清洗", emtpy).size());
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!