|
|
@@ -18,10 +18,7 @@ import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
import com.sckw.order.api.model.OrderUnitInfoDetailVO;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
-import com.sckw.transport.model.KwtForkliftWaybillOrder;
|
|
|
-import com.sckw.transport.model.KwtLogisticsOrder;
|
|
|
-import com.sckw.transport.model.KwtWaybillOrder;
|
|
|
-import com.sckw.transport.model.KwtWaybillOrderTicket;
|
|
|
+import com.sckw.transport.model.*;
|
|
|
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;
|
|
|
@@ -37,6 +34,7 @@ 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;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
@@ -62,6 +60,7 @@ public class ForkliftOrderService {
|
|
|
private final KwtWaybillOrderTicketRepository waybillOrderTicketRepository;
|
|
|
private final KwtLogisticsOrderRepository logisticsOrderRepository;
|
|
|
private final KwtLogisticsOrderGoodsRepository logisticsOrderGoodsRepository;
|
|
|
+ private final KwtWaybillOrderNodeRepository waybillOrderNodeRepository;
|
|
|
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
private RemoteContractService remoteContractService;
|
|
|
@@ -557,7 +556,8 @@ public class ForkliftOrderService {
|
|
|
* 铲车接单
|
|
|
* @param param
|
|
|
*/
|
|
|
- private void createForkliftWaybillOrder(ForkliftOrderTakingParam param) {
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void createForkliftWaybillOrder(ForkliftOrderTakingParam param) {
|
|
|
log.info("生成铲车订单,入参参数:{}", JSON.toJSONString(param));
|
|
|
KwtForkliftWaybillOrder forkliftWaybillOrder = forkliftWaybillOrderRepository.queryForkliftWaybillOrderByFOrderId(param.getForkliftOrderId());
|
|
|
if (forkliftWaybillOrder == null) {
|
|
|
@@ -573,9 +573,44 @@ public class ForkliftOrderService {
|
|
|
forkliftWaybillOrder.setDriverName(param.getDriverName());
|
|
|
forkliftWaybillOrder.setForkliftAcceptTime(new Date());
|
|
|
forkliftWaybillOrderRepository.updateById(forkliftWaybillOrder);
|
|
|
+
|
|
|
+ // 创建司机日志记录
|
|
|
+ creatWaybillOrderNode(param, forkliftWaybillOrder);
|
|
|
log.info("铲车接单成功,订单ID:{}", forkliftWaybillOrder.getWOrderId());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 创建日子轨迹记录
|
|
|
+ * @param param
|
|
|
+ * @param forkliftWaybillOrder
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void creatWaybillOrderNode(ForkliftOrderTakingParam param, KwtForkliftWaybillOrder forkliftWaybillOrder) {
|
|
|
+ log.info("[铲车接单]创建车辆运单-节点轨迹入参参数:{}", JSON.toJSONString(param));
|
|
|
+ // 查询运单
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderRepository.getById(forkliftWaybillOrder.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_SUB_NOT_FOUND, "未找到关联的运单!");
|
|
|
+ }
|
|
|
+ // 查询子运单
|
|
|
+ KwtWaybillOrderSubtask subtask = waybillOrderSubtaskRepository.queryByWOrderId(forkliftWaybillOrder.getWOrderId());
|
|
|
+ if (subtask == null) {
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_SUB_NOT_FOUND, "未找到关联的子运单!");
|
|
|
+ }
|
|
|
+
|
|
|
+ KwtWaybillOrderNode node = new KwtWaybillOrderNode();
|
|
|
+ node.setWOrderId(forkliftWaybillOrder.getWOrderId());
|
|
|
+ node.setWSubtaskId(subtask.getId());
|
|
|
+ node.setOrderStatus(subtask.getStatus());
|
|
|
+ node.setTruckNo(waybillOrder.getTruckNo());
|
|
|
+ node.setTruckId(waybillOrder.getTruckId());
|
|
|
+ node.setDriverId(waybillOrder.getDriverId());
|
|
|
+ node.setDriverName(waybillOrder.getDriverName());
|
|
|
+ node.setRemark("装载员[" + param.getDriverName() + "]已接单,装载单号[" + forkliftWaybillOrder.getFOrderNo() + "]");
|
|
|
+ waybillOrderNodeRepository.save(node);
|
|
|
+ log.info("[铲车接单]记录节点轨迹成功,节点ID:{}", node.getId());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 铲车取消接单
|
|
|
* @param param
|