|
@@ -499,6 +499,27 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
|
|
|
System.out.println(s);
|
|
|
}
|
|
|
|
|
|
+ @Override//判断一车多单是否还有订单,如果又就再推送消息给他
|
|
|
+ public void pushMessageToDriver(Map<String, Object> mapValue) {
|
|
|
+ Map<String,Object> mapAddOrder =omstruckOrderMapper.getSporadicOrdermapAddOrder(new BigDecimal(mapValue.get("orderId").toString()));
|
|
|
+ BigDecimal sporadicOrderTimes = DataChange.dataToBigDecimal(mapAddOrder.get("sporadicOrderTimes"));
|
|
|
+ BigDecimal sporadicOrderId = DataChange.dataToBigDecimal(mapAddOrder.get("sporadicOrderId"));
|
|
|
+ BigDecimal orderId = DataChange.dataToBigDecimal(mapValue.get("orderId"));
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(mapAddOrder.get("capacityId"));
|
|
|
+ Map<String, Object> addMapSporadicOrder = new HashMap<>();
|
|
|
+ addMapSporadicOrder.put("sporadicOrderId",sporadicOrderId);
|
|
|
+ addMapSporadicOrder.put("orderId",orderId);
|
|
|
+ List<Map<String,Object>> mapList = new ArrayList<>();
|
|
|
+ Map<String,Object> map=new HashMap<>();
|
|
|
+ map.put("capacityId",capacityId);
|
|
|
+ mapList.add(map);
|
|
|
+ addMapSporadicOrder.put("mapList",mapList);
|
|
|
+ if (sporadicOrderTimes.intValue()>0){
|
|
|
+ //mapvalue需要orderId,零星订单id,maplist放一个运力id
|
|
|
+ amsFeign.addSporadicOrderTimes(addMapSporadicOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 销售物流,下发订单
|
|
|
*
|
|
@@ -545,12 +566,12 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public int driverReceiveOrRefuse(Map<String, Object> map) {
|
|
|
+ public synchronized int driverReceiveOrRefuse(Map<String, Object> map) {
|
|
|
BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
|
|
|
OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
- if((Integer) map.get("orderReceiveStatus") == 1){
|
|
|
+ if((Integer) map.get("orderReceiveStatus") == 1) {
|
|
|
List<Integer> orderIdList = omstruckOrderMapper.getReceiveOrderIdListByCapacityNum((String) map.get("capacityNumber"));
|
|
|
- if(orderIdList.size() > 0){
|
|
|
+ if (orderIdList.size() > 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
omstruckOrder.setOrderStatus(new BigDecimal(5)); //5 :已接收
|
|
@@ -558,7 +579,19 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
|
|
|
Map<String, Object> orderMessage = omstruckOrderSeparateMapper.getOrderMessagge(orderId);
|
|
|
//添加各个实绩
|
|
|
omstruckOrderSeparateService.addAllSonResult(orderMessage);
|
|
|
- }else { //其他状态都视为 拒绝接单
|
|
|
+
|
|
|
+ //判断订单是否是一车多单
|
|
|
+ BigDecimal orderType = (BigDecimal) orderMessage.get("orderType");
|
|
|
+ if (orderType.intValue()==15 || orderType.intValue()==16) {
|
|
|
+ //通过订单查询趟次
|
|
|
+ Integer sporadicOrderTimes = omstruckOrderMapper.getSporadicOrderTimes(orderId);
|
|
|
+ //生成作业实绩之后、更改订单数量
|
|
|
+ if (orderMessage.containsKey("orderPlanId") && sporadicOrderTimes > 0) {
|
|
|
+ int state = omstruckOrderSeparateService.updateTimes(new BigDecimal(orderMessage.get("orderPlanId").toString()), sporadicOrderTimes - 1);
|
|
|
+ System.out.println(state);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { //其他状态都视为 拒绝接单
|
|
|
omstruckOrder.setOrderStatus(new BigDecimal(6));
|
|
|
//添加拒绝原因
|
|
|
omstruckOrder.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
|
|
@@ -613,7 +646,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
|
|
|
/**
|
|
|
* 司机接单推送数据
|
|
|
* 车牌号
|
|
|
- *
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
@@ -1576,15 +1608,47 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
|
|
|
@Override
|
|
|
public int driverConfirmation(Map<String, Object> map) {
|
|
|
OmstruckOrder omstruckOrder = new OmstruckOrder();
|
|
|
+ BigDecimal orderId;
|
|
|
//通过运输订单号查询运输订单Id
|
|
|
- Integer orderId = omstruckOrderMapper.getOrderIdByOrderNumber((String) map.get("orderNumber"));
|
|
|
- omstruckOrder.setOrderId(new BigDecimal(orderId));
|
|
|
+ if(map.get("orderId") == null){
|
|
|
+ orderId = new BigDecimal(omstruckOrderMapper.getOrderIdByOrderNumber((String) map.get("orderNumber")));
|
|
|
+ }else {
|
|
|
+ orderId = DataChange.dataToBigDecimal(map.get("orderId"));
|
|
|
+ }
|
|
|
+ Map<String, Object> seqMap = omstruckOrderMapper.getMaxLineSeqByOrderId(orderId);
|
|
|
+ if(seqMap != null){
|
|
|
+ //如果没有到最后一步之前 不允许确认
|
|
|
+ BigDecimal orderLineSequence = DataChange.dataToBigDecimal(seqMap.get("orderLineSequence"));
|
|
|
+ BigDecimal maxSegmentSqe = DataChange.dataToBigDecimal(seqMap.get("segmentSqe"));
|
|
|
+ int i = maxSegmentSqe.intValue() - orderLineSequence.intValue();
|
|
|
+ if( i != 1){
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ omstruckOrder.setOrderId(orderId);
|
|
|
//设置司机确认订单
|
|
|
omstruckOrder.setDriverConfirmation(new BigDecimal(1));
|
|
|
omstruckOrder.setUpdateTime(new Date());
|
|
|
return omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询订单是否确认
|
|
|
+ * @Author TXF
|
|
|
+ * @Date 2022/1/4 23:36
|
|
|
+ * @param map {orderId}
|
|
|
+ * @return
|
|
|
+ **/
|
|
|
+ public boolean getDriverConfirmation(Map<String, Object> map){
|
|
|
+ Integer driverConfirmation = omstruckOrderMapper.getDriverConfirmation(DataChange.dataToBigDecimal(map.get("orderId")));
|
|
|
+ if(driverConfirmation == null){
|
|
|
+ return true;
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 通过运输订单号查询订单信息给司机
|
|
|
* @param map
|