|
|
@@ -1,13 +1,26 @@
|
|
|
package com.sckw.transport.service;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.sckw.core.common.enums.NumberConstant;
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
+import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
-import com.sckw.transport.dao.KwtWaybillOrderMapper;
|
|
|
-import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
|
|
|
-import com.sckw.transport.dao.KwtWaybillOrderTrackMapper;
|
|
|
+import com.sckw.mongo.model.TobleTop;
|
|
|
+import com.sckw.transport.common.enums.CarWaybillEnum;
|
|
|
+import com.sckw.transport.dao.*;
|
|
|
+import com.sckw.transport.model.KwtLogisticsOrderAddress;
|
|
|
+import com.sckw.transport.model.KwtLogisticsOrderGoods;
|
|
|
+import com.sckw.transport.model.KwtWaybillOrder;
|
|
|
+import com.sckw.transport.model.vo.WaybillOrderVO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Comparator;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* @author lfdc
|
|
|
* @description 司机端service
|
|
|
@@ -26,9 +39,20 @@ public class DriverService {
|
|
|
@Autowired
|
|
|
private KwtWaybillOrderTicketMapper waybillOrderTicketMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private KwtLogisticsOrderMapper logisticsOrderMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwtLogisticsOrderUnitMapper logisticsOrderUnitMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwtLogisticsOrderAddressMapper logisticsOrderAddressMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -40,6 +64,110 @@ public class DriverService {
|
|
|
* 执行:对应[已出车][到达装货地点]、[已装货]、[到达卸货地点]
|
|
|
* 完结: 对应[已卸货]、[已核单]
|
|
|
* */
|
|
|
- return null;
|
|
|
+ List<Long> status = new ArrayList<>();
|
|
|
+ List<TobleTop> list = new ArrayList<>();
|
|
|
+ status.add(CarWaybillEnum.PENDING_ORDER.getCode().longValue());
|
|
|
+ TobleTop top = waybillOrderMapper.statistics(id, status);
|
|
|
+ top.setName("计划");
|
|
|
+ top.setValue(String.valueOf(NumberConstant.ONE));
|
|
|
+ status.clear();
|
|
|
+ status.add(CarWaybillEnum.PENDING_VEHICLE.getCode().longValue());
|
|
|
+ TobleTop top1 = waybillOrderMapper.statistics(id, status);
|
|
|
+ top1.setName("出车");
|
|
|
+ top1.setValue(String.valueOf(NumberConstant.TWO));
|
|
|
+ status.clear();
|
|
|
+ status.add(CarWaybillEnum.EXIT_COMPLETED.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.WAIT_LOADING.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.COMPLETION_LOADING.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.WAIT_UNLOADING.getCode().longValue());
|
|
|
+ TobleTop top2 = waybillOrderMapper.statistics(id, status);
|
|
|
+ top2.setName("执行");
|
|
|
+ top2.setValue(String.valueOf(NumberConstant.THREE));
|
|
|
+ status.clear();
|
|
|
+ status.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.APPROVAL_COMPLETED.getCode().longValue());
|
|
|
+ TobleTop top3 = waybillOrderMapper.statistics(id, status);
|
|
|
+ top3.setName("完结");
|
|
|
+ top3.setValue(String.valueOf(NumberConstant.FOUR));
|
|
|
+ list.add(top);
|
|
|
+ list.add(top1);
|
|
|
+ list.add(top2);
|
|
|
+ list.add(top3);
|
|
|
+ return HttpResult.ok(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据当前登录 id获取派给当前id的车辆运单
|
|
|
+ * @param id 司机id
|
|
|
+ * @param type 展示页签类型
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public HttpResult getWaybillDriverDetail(Long id, String type) {
|
|
|
+ /**
|
|
|
+ * 当前司机端页面 页面【计划】=1;【出车】=2;【执行】=3;【完结】=4
|
|
|
+ * 计划:对应运单状态的[待接单]
|
|
|
+ * 出车:对应运单状态的[待出车]
|
|
|
+ * 执行:对应[已出车][到达装货地点]、[已装货]、[到达卸货地点]
|
|
|
+ * 完结: 对应[已卸货]、[已核单]
|
|
|
+ * */
|
|
|
+ HttpResult result = new HttpResult();
|
|
|
+ List<Long> status = new ArrayList<>();
|
|
|
+ if (String.valueOf(NumberConstant.ONE).equals(type)) {
|
|
|
+ status.add(CarWaybillEnum.PENDING_ORDER.getCode().longValue());
|
|
|
+ } else if (String.valueOf(NumberConstant.TWO).equals(type)) {
|
|
|
+ status.add(CarWaybillEnum.PENDING_VEHICLE.getCode().longValue());
|
|
|
+ } else if (String.valueOf(NumberConstant.THREE).equals(type)) {
|
|
|
+ status.add(CarWaybillEnum.EXIT_COMPLETED.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.WAIT_LOADING.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.COMPLETION_LOADING.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.WAIT_UNLOADING.getCode().longValue());
|
|
|
+ } else if (String.valueOf(NumberConstant.FOUR).equals(type)) {
|
|
|
+ status.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
|
|
|
+ status.add(CarWaybillEnum.APPROVAL_COMPLETED.getCode().longValue());
|
|
|
+ } else {
|
|
|
+ result.setMsg("类型错误");
|
|
|
+ result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ List<Long> list = waybillOrderMapper.selectDriverOrder(id, status);
|
|
|
+ List<WaybillOrderVO> orderVOList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ for (Long aLong : list) {
|
|
|
+ KwtLogisticsOrderAddress loadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
|
|
|
+ .eq(KwtLogisticsOrderAddress::getLOrderId, aLong).eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.ONE));
|
|
|
+ KwtLogisticsOrderAddress unloadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
|
|
|
+ .eq(KwtLogisticsOrderAddress::getLOrderId, aLong).eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.TWO));
|
|
|
+ KwtLogisticsOrderGoods orderGoods = logisticsOrderGoodsMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderGoods>()
|
|
|
+ .eq(KwtLogisticsOrderGoods::getLOrderId, aLong));
|
|
|
+ List<KwtWaybillOrder> waybillOrders = waybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
|
|
|
+ .eq(KwtWaybillOrder::getLOrderId, aLong).eq(KwtWaybillOrder::getDriverId, id));
|
|
|
+ for (KwtWaybillOrder waybill : waybillOrders) {
|
|
|
+ WaybillOrderVO vo = new WaybillOrderVO();
|
|
|
+ vo.setLOrderId(aLong);
|
|
|
+ vo.setLoadCityCode(loadAddress.getCityCode());
|
|
|
+ vo.setLoadCityName(loadAddress.getCityName());
|
|
|
+ vo.setLoadDetailAddress(loadAddress.getDetailAddress());
|
|
|
+ vo.setUnloadCityName(unloadAddress.getCityName());
|
|
|
+ vo.setUnloadCityCode(unloadAddress.getCityCode());
|
|
|
+ vo.setGoodsName(orderGoods == null ? null : (orderGoods.getGoodsName() == null ? null : orderGoods.getGoodsName()));
|
|
|
+ vo.setGoodsCode(orderGoods == null ? null : (orderGoods.getSkuId() == null ? null : String.valueOf(orderGoods.getSkuId())));
|
|
|
+ vo.setWOrderId(waybill.getId());
|
|
|
+ vo.setWOrderNo(waybill.getWOrderNo());
|
|
|
+ vo.setCreateTime(waybill.getCreateTime());
|
|
|
+ vo.setStartTime(waybill.getStartTime());
|
|
|
+ vo.setEndTime(waybill.getEndTime());
|
|
|
+ //todo 查询车队服务dubbo
|
|
|
+// vo.setFleetName();
|
|
|
+// vo.setFleetId();
|
|
|
+// vo.setTruckFleetName();
|
|
|
+ vo.setEntrustAmount(waybill.getEntrustAmount());
|
|
|
+ vo.setType(waybill.getType());
|
|
|
+ vo.setTruckNo(waybill.getTruckNo());
|
|
|
+ orderVOList.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ orderVOList = orderVOList.stream().sorted(Comparator.comparing(WaybillOrderVO::getCreateTime)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return HttpResult.ok(orderVOList);
|
|
|
}
|
|
|
}
|