|
|
@@ -2,6 +2,8 @@ package com.sckw.transport.service.app;
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.sckw.core.common.enums.enums.ErrorCodeEnum;
|
|
|
import com.sckw.core.exception.BusinessPlatfromException;
|
|
|
@@ -10,7 +12,9 @@ import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.web.response.result.PageDataResult;
|
|
|
import com.sckw.transport.model.KwtForkliftWaybillOrder;
|
|
|
import com.sckw.transport.model.KwtWaybillOrder;
|
|
|
+import com.sckw.transport.model.param.WaybillOrderLoadingParam;
|
|
|
import com.sckw.transport.model.param.forklift.reponse.ForkliftOrderResp;
|
|
|
+import com.sckw.transport.model.param.forklift.request.ForkliftOrderCancelParam;
|
|
|
import com.sckw.transport.model.param.forklift.request.ForkliftOrderQueryParam;
|
|
|
import com.sckw.transport.model.param.forklift.request.ForkliftOrderTakingParam;
|
|
|
import com.sckw.transport.repository.KwtForkliftWaybillOrderRepository;
|
|
|
@@ -18,6 +22,7 @@ import com.sckw.transport.repository.KwtWaybillOrderRepository;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.data.redis.core.script.DefaultRedisScript;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -41,6 +46,8 @@ public class ForkliftOrderService {
|
|
|
|
|
|
private final KwtForkliftWaybillOrderRepository forkliftWaybillOrderRepository;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ WaybillOrderService waybillOrderService;
|
|
|
|
|
|
// 注入RedisTemplate用于分布式锁
|
|
|
@Resource
|
|
|
@@ -60,7 +67,7 @@ public class ForkliftOrderService {
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
- public PageDataResult<ForkliftOrderResp> pageQueryForkliftOrder(ForkliftOrderQueryParam param) {
|
|
|
+ public PageDataResult<ForkliftOrderResp> pageQueryForkliftWaybillOrder(ForkliftOrderQueryParam param) {
|
|
|
log.info("查询铲车司机的物流运单:{}", JSON.toJSONString(param));
|
|
|
//查询到底装货点的运单
|
|
|
Page<KwtWaybillOrder> pageByStatus = waybillOrderRepository.findPageByStatus(param.getPageNum(), param.getPageSize());
|
|
|
@@ -78,6 +85,41 @@ public class ForkliftOrderService {
|
|
|
return PageDataResult.success(param.getPageNum(), param.getPageSize(), pageByStatus.getTotal(), forkliftOrderList);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询铲车订单
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public PageDataResult<ForkliftOrderResp> pageQueryForkliftOrder(ForkliftOrderQueryParam param) {
|
|
|
+ log.info("查询铲车司机订单:{}", JSON.toJSONString(param));
|
|
|
+ LambdaQueryWrapper<KwtForkliftWaybillOrder> wrapper = Wrappers.<KwtForkliftWaybillOrder>lambdaQuery()
|
|
|
+ .eq(KwtForkliftWaybillOrder::getDriverId, param.getDriverId())
|
|
|
+ .orderByDesc(KwtForkliftWaybillOrder::getCreateTime)
|
|
|
+ .orderByDesc(KwtForkliftWaybillOrder::getId);
|
|
|
+ if (ForkliftStatusEnum.PENDING_ORDERS.getCode().equals(param.getStatus())) {
|
|
|
+ wrapper.eq(KwtForkliftWaybillOrder::getStatus, 1);
|
|
|
+ } else if (ForkliftStatusEnum.ORDER_TAKING.getCode().equals(param.getStatus())) {
|
|
|
+ wrapper.eq(KwtForkliftWaybillOrder::getStatus, 5);
|
|
|
+ } else if (ForkliftStatusEnum.COMPLETED.getCode().equals(param.getStatus())) {
|
|
|
+ wrapper.eq(KwtForkliftWaybillOrder::getStatus, 10);
|
|
|
+ }
|
|
|
+ Page<KwtForkliftWaybillOrder> pageByStatus = forkliftWaybillOrderRepository.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
|
|
|
+ List<KwtForkliftWaybillOrder> records = pageByStatus.getRecords();
|
|
|
+ if (CollectionUtils.isEmpty(records)) {
|
|
|
+ log.info("当前铲车司机无物流运单,铲车司机id:{}", param.getDriverId());
|
|
|
+ return PageDataResult.empty(param.getPageNum(), param.getPageSize());
|
|
|
+ }
|
|
|
+ List<ForkliftOrderResp> forkliftOrderList = new ArrayList<>();
|
|
|
+ for (KwtWaybillOrder record : records) {
|
|
|
+ ForkliftOrderResp forklift = new ForkliftOrderResp();
|
|
|
+ forklift.setDriverId(record.getDriverId());
|
|
|
+ forklift.setDriverName(record.getDriverName());
|
|
|
+ forkliftOrderList.add(forklift);
|
|
|
+ }
|
|
|
+ return PageDataResult.success(param.getPageNum(), param.getPageSize(), pageByStatus.getTotal(), forkliftOrderList);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 铲车接单
|
|
|
* @param param
|
|
|
@@ -219,30 +261,42 @@ public class ForkliftOrderService {
|
|
|
log.info("创建铲车订单成功,订单ID:{}", waybillOrder.getId());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 铲车取消接单
|
|
|
* @param param
|
|
|
* @return
|
|
|
*/
|
|
|
- public PageDataResult<ForkliftOrderResp> cancelForkliftOrder(ForkliftOrderQueryParam param) {
|
|
|
- log.info("查询铲车司机的物流运单:{}", JSON.toJSONString(param));
|
|
|
- //查询到底装货点的运单
|
|
|
- Page<KwtWaybillOrder> pageByStatus = waybillOrderRepository.findPageByStatus(param.getPageNum(), param.getPageSize());
|
|
|
- List<KwtWaybillOrder> records = pageByStatus.getRecords();
|
|
|
- if (CollectionUtils.isEmpty(records)) {
|
|
|
- return PageDataResult.empty(param.getPageNum(), param.getPageSize());
|
|
|
+ public void cancelForkliftOrder(ForkliftOrderCancelParam param) {
|
|
|
+ log.info("铲车司机取消订单:{}", JSON.toJSONString(param));
|
|
|
+ //查询铲车接单的订单
|
|
|
+ KwtForkliftWaybillOrder forkliftWaybillOrder = forkliftWaybillOrderRepository.getById(param.getForkliftOrderId());
|
|
|
+ if (forkliftWaybillOrder == null) {
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.FORKLIFT_ORDER_NOT_FOUND, "当前铲车订单不存在!");
|
|
|
}
|
|
|
- List<ForkliftOrderResp> forkliftOrderList = new ArrayList<>();
|
|
|
- for (KwtWaybillOrder record : records) {
|
|
|
- ForkliftOrderResp forklift = new ForkliftOrderResp();
|
|
|
- forklift.setDriverId(record.getDriverId());
|
|
|
- forklift.setDriverName(record.getDriverName());
|
|
|
- forkliftOrderList.add(forklift);
|
|
|
+ forkliftWaybillOrder.setStatus(ForkliftStatusEnum.ORDER_CANCEL.getCode());
|
|
|
+ forkliftWaybillOrderRepository.updateById(forkliftWaybillOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 装载完成
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void loadingCompleted(ForkliftOrderCancelParam param) {
|
|
|
+ log.info("铲车司机装载完成:{}", JSON.toJSONString(param));
|
|
|
+ KwtForkliftWaybillOrder forkliftWaybillOrder = forkliftWaybillOrderRepository.getById(param.getForkliftOrderId());
|
|
|
+ if (forkliftWaybillOrder == null) {
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.FORKLIFT_ORDER_NOT_FOUND, "当前铲车订单不存在!");
|
|
|
}
|
|
|
- return PageDataResult.success(param.getPageNum(), param.getPageSize(), pageByStatus.getTotal(), forkliftOrderList);
|
|
|
+ forkliftWaybillOrder.setStatus(ForkliftStatusEnum.COMPLETED.getCode());
|
|
|
+ forkliftWaybillOrderRepository.updateById(forkliftWaybillOrder);
|
|
|
+
|
|
|
+ //更新物流运单的状态(已装货)
|
|
|
+ WaybillOrderLoadingParam loadingParam = new WaybillOrderLoadingParam();
|
|
|
+ loadingParam.setLng(param.getLng());
|
|
|
+ loadingParam.setLat(param.getLat());
|
|
|
+ loadingParam.setWaybillOrderId(forkliftWaybillOrder.getWOrderId());
|
|
|
+ waybillOrderService.loading(loadingParam);
|
|
|
}
|
|
|
|
|
|
|