package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.modular.system.dao.LineShiftMapper;
|
import com.stylefeng.guns.modular.system.model.LineShift;
|
import com.stylefeng.guns.modular.system.model.OrderCrossCity;
|
import com.stylefeng.guns.modular.system.service.ILineShiftService;
|
import com.stylefeng.guns.modular.system.service.IOrderCrossCityService;
|
import com.stylefeng.guns.modular.system.util.DateUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
|
@Service
|
public class LineShiftServiceImpl extends ServiceImpl<LineShiftMapper, LineShift> implements ILineShiftService {
|
|
@Resource
|
private LineShiftMapper lineShiftMapper;
|
|
@Autowired
|
private IOrderCrossCityService orderCrossCityService;
|
|
@Autowired
|
private DateUtil dateUtil;
|
|
|
|
/**
|
* 根据线路id获取排班数据
|
* @param lineId
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<Map<String, Object>> queryByLineId(Integer lineId) throws Exception {
|
return lineShiftMapper.queryByLineId(lineId);
|
}
|
|
|
/**
|
* 获取排班详情
|
* @param lineShiftId
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<Map<String, Object>> queryLineShiftInfo(Integer lineShiftId, String time) throws Exception {
|
Map<String, Date> date = dateUtil.getStartAndEndDate(time);
|
List<Map<String, Object>> list = lineShiftMapper.queryInfo(lineShiftId, (null != date ? date.get("startTime") : null));
|
for(Map<String, Object> map : list){
|
List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryByDriverId(Integer.valueOf(map.get("driverId").toString()), (null != date ? date.get("startTime") : null), (null != date ? date.get("endTime") : null), 2, 3, 4, 5, 6, 11);
|
List<Map<String, Object>> ms = new ArrayList<>();
|
for(OrderCrossCity orderCrossCity : orderCrossCities){
|
if(Integer.valueOf(map.get("id").toString()).compareTo(orderCrossCity.getLineShiftDriverId()) == 0){
|
Map<String, Object> map1 = new HashMap<>();
|
map1.put("name", orderCrossCity.getPassengers() + "-" + orderCrossCity.getPassengersPhone());
|
map1.put("number", orderCrossCity.getPeopleNumber());
|
map1.put("id", orderCrossCity.getId());
|
ms.add(map1);
|
}
|
}
|
map.put("users", JSON.toJSONString(ms));
|
}
|
return list;
|
}
|
}
|