订单定时任务优化
parent
8d2b0ea864
commit
5e9e830180
|
|
@ -23,8 +23,7 @@ public class BizDriverStateController {
|
||||||
* 查询司机定位信息
|
* 查询司机定位信息
|
||||||
*/
|
*/
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public AjaxResult list()
|
public AjaxResult list() {
|
||||||
{
|
|
||||||
return AjaxResult.success(bizDriverStateService.selectDriverLocation());
|
return AjaxResult.success(bizDriverStateService.selectDriverLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -34,8 +33,7 @@ public class BizDriverStateController {
|
||||||
@GetMapping("/track")
|
@GetMapping("/track")
|
||||||
public AjaxResult list(@RequestParam(required = false) String startTime,
|
public AjaxResult list(@RequestParam(required = false) String startTime,
|
||||||
@RequestParam(required = false) String endTime,
|
@RequestParam(required = false) String endTime,
|
||||||
@RequestParam Long driverId)
|
@RequestParam Long driverId) {
|
||||||
{
|
|
||||||
String tableName = "track_driver_" + driverId;
|
String tableName = "track_driver_" + driverId;
|
||||||
return AjaxResult.success(bizDriverStateService.selectDriverTrack(startTime, endTime, tableName));
|
return AjaxResult.success(bizDriverStateService.selectDriverTrack(startTime, endTime, tableName));
|
||||||
}
|
}
|
||||||
|
|
@ -45,8 +43,7 @@ public class BizDriverStateController {
|
||||||
*/
|
*/
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
@Transactional
|
@Transactional
|
||||||
public AjaxResult add(@RequestBody BizDriverState bizDriverState)
|
public AjaxResult add(@RequestBody BizDriverState bizDriverState) {
|
||||||
{
|
|
||||||
// 同步新增到司机对应的轨迹表中
|
// 同步新增到司机对应的轨迹表中
|
||||||
bizDriverStateService.insertDriveDriveState(bizDriverState);
|
bizDriverStateService.insertDriveDriveState(bizDriverState);
|
||||||
bizDriverState.setId(null);
|
bizDriverState.setId(null);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package com.cpxt.biz.domain;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
|
@ -31,6 +33,15 @@ public class BizCarState
|
||||||
@Excel(name = "车牌号")
|
@Excel(name = "车牌号")
|
||||||
private String carNo;
|
private String carNo;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String orderSn;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String driverName;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String copilotName;
|
||||||
|
|
||||||
/** 定位设备ID */
|
/** 定位设备ID */
|
||||||
@Excel(name = "定位设备ID")
|
@Excel(name = "定位设备ID")
|
||||||
private String vin;
|
private String vin;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,12 @@ public class BizDriverState implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String driverName;
|
private String driverName;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String orderSn;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String carNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 定位设备ID
|
* 定位设备ID
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -107,4 +107,10 @@ public class BizOrderTask
|
||||||
/** 更新者 */
|
/** 更新者 */
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
|
|
||||||
|
private Integer execMode;
|
||||||
|
|
||||||
|
private String execTimes;
|
||||||
|
|
||||||
|
private String orderDateMode;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ public interface BizDriverStateMapper extends BaseMapper<BizDriverState> {
|
||||||
|
|
||||||
int insertBizDriverState(BizDriverState bizDriverState);
|
int insertBizDriverState(BizDriverState bizDriverState);
|
||||||
|
|
||||||
Map selectDriverTrack(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("tableName") String tableName);
|
List<Map> selectDriverTrack(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("tableName") String tableName);
|
||||||
|
|
||||||
@Select("SELECT * FROM biz_driver_state WHERE id in (SELECT t.id FROM (SELECT id,MAX(gps_time) FROM biz_driver_state GROUP BY driver_id) t)")
|
@Select("SELECT * FROM biz_driver_state WHERE id in (SELECT t.id FROM (SELECT id,MAX(gps_time) FROM biz_driver_state GROUP BY driver_id) t)")
|
||||||
List<BizDriverState> selectDriverLocation();
|
List<BizDriverState> selectDriverLocation();
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ public interface BizDriverStateService extends IService<BizDriverState> {
|
||||||
|
|
||||||
public int insertDriveDriveState(BizDriverState bizDriverState);
|
public int insertDriveDriveState(BizDriverState bizDriverState);
|
||||||
|
|
||||||
Map selectDriverTrack(String startTime, String endTime, String tableName);
|
List<Map> selectDriverTrack(String startTime, String endTime, String tableName);
|
||||||
|
|
||||||
List<BizDriverState> selectDriverLocation();
|
List<BizDriverState> selectDriverLocation();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
package com.cpxt.biz.service.impl;
|
package com.cpxt.biz.service.impl;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.cpxt.biz.domain.BizCarState;
|
import com.cpxt.biz.domain.BizCarState;
|
||||||
|
import com.cpxt.biz.domain.BizOrder;
|
||||||
import com.cpxt.biz.mapper.BizCarStateMapper;
|
import com.cpxt.biz.mapper.BizCarStateMapper;
|
||||||
|
import com.cpxt.biz.mapper.BizOrderMapper;
|
||||||
import com.cpxt.biz.service.IBizCarStateService;
|
import com.cpxt.biz.service.IBizCarStateService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -24,6 +27,9 @@ public class BizCarStateServiceImpl implements IBizCarStateService
|
||||||
@Autowired
|
@Autowired
|
||||||
private BizCarStateMapper bizCarStateMapper;
|
private BizCarStateMapper bizCarStateMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BizOrderMapper bizOrderMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询车辆实时状态列表(分页)
|
* 查询车辆实时状态列表(分页)
|
||||||
*
|
*
|
||||||
|
|
@ -72,7 +78,24 @@ public class BizCarStateServiceImpl implements IBizCarStateService
|
||||||
public List<BizCarState> selectBizCarStateList(BizCarState bizCarState)
|
public List<BizCarState> selectBizCarStateList(BizCarState bizCarState)
|
||||||
{
|
{
|
||||||
LambdaQueryWrapper<BizCarState> queryWrapper = buildQueryWrapper(bizCarState);
|
LambdaQueryWrapper<BizCarState> queryWrapper = buildQueryWrapper(bizCarState);
|
||||||
return bizCarStateMapper.selectList(queryWrapper);
|
List<BizCarState> bizCarStateList = bizCarStateMapper.selectList(queryWrapper);
|
||||||
|
for (BizCarState carState : bizCarStateList) {
|
||||||
|
Date gpsTime = carState.getGpsTime();
|
||||||
|
String carNo = carState.getCarNo();
|
||||||
|
LambdaQueryWrapper<BizOrder> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper1.eq(BizOrder::getCarNo,carNo);
|
||||||
|
queryWrapper1.in(BizOrder::getOrderStatus,"1","2");
|
||||||
|
queryWrapper1.le(BizOrder::getUpdateTime,gpsTime);
|
||||||
|
queryWrapper1.orderByDesc(BizOrder::getUpdateTime);
|
||||||
|
queryWrapper1.last("limit 1");
|
||||||
|
BizOrder bizOrder = bizOrderMapper.selectOne(queryWrapper1);
|
||||||
|
if (bizOrder != null){
|
||||||
|
carState.setOrderSn(bizOrder.getOrderSn());
|
||||||
|
carState.setDriverName(bizOrder.getDriverName());
|
||||||
|
carState.setCopilotName(bizOrder.getCopilotName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bizCarStateList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
package com.cpxt.biz.service.impl;
|
package com.cpxt.biz.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.cpxt.biz.domain.BizDriverState;
|
import com.cpxt.biz.domain.BizDriverState;
|
||||||
|
import com.cpxt.biz.domain.BizOrder;
|
||||||
import com.cpxt.biz.mapper.BizDriverStateMapper;
|
import com.cpxt.biz.mapper.BizDriverStateMapper;
|
||||||
|
import com.cpxt.biz.mapper.BizOrderMapper;
|
||||||
import com.cpxt.biz.service.BizDriverStateService;
|
import com.cpxt.biz.service.BizDriverStateService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -22,19 +26,38 @@ public class BizDriverStateServiceImpl extends ServiceImpl<BizDriverStateMapper,
|
||||||
@Autowired
|
@Autowired
|
||||||
private BizDriverStateMapper bizDriverStateMapper;
|
private BizDriverStateMapper bizDriverStateMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BizOrderMapper bizOrderMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int insertDriveDriveState(BizDriverState bizDriverState) {
|
public int insertDriveDriveState(BizDriverState bizDriverState) {
|
||||||
return bizDriverStateMapper.insertBizDriverState(bizDriverState);
|
return bizDriverStateMapper.insertBizDriverState(bizDriverState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map selectDriverTrack(String startTime, String endTime, String tableName) {
|
public List<Map> selectDriverTrack(String startTime, String endTime, String tableName) {
|
||||||
return bizDriverStateMapper.selectDriverTrack(startTime,endTime,tableName);
|
return bizDriverStateMapper.selectDriverTrack(startTime,endTime,tableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BizDriverState> selectDriverLocation() {
|
public List<BizDriverState> selectDriverLocation() {
|
||||||
return bizDriverStateMapper.selectDriverLocation();
|
List<BizDriverState> bizDriverStateList = bizDriverStateMapper.selectDriverLocation();
|
||||||
|
for (BizDriverState bizDriverState : bizDriverStateList) {
|
||||||
|
Integer driverId = bizDriverState.getDriverId();
|
||||||
|
Date gpsTime = bizDriverState.getGpsTime();
|
||||||
|
LambdaQueryWrapper<BizOrder> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper1.eq(BizOrder::getDriverId,driverId);
|
||||||
|
queryWrapper1.in(BizOrder::getOrderStatus,"1","2");
|
||||||
|
queryWrapper1.le(BizOrder::getUpdateTime,gpsTime);
|
||||||
|
queryWrapper1.orderByDesc(BizOrder::getUpdateTime);
|
||||||
|
queryWrapper1.last("limit 1");
|
||||||
|
BizOrder bizOrder = bizOrderMapper.selectOne(queryWrapper1);
|
||||||
|
if (bizOrder != null){
|
||||||
|
bizDriverState.setOrderSn(bizOrder.getOrderSn());
|
||||||
|
bizDriverState.setCarNo(bizOrder.getCarNo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bizDriverStateList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -185,10 +185,10 @@ public class BizOrderServiceImpl implements IBizOrderService {
|
||||||
queryWrapper.like(BizOrder::getCopilotName, bizOrder.getCopilotName());
|
queryWrapper.like(BizOrder::getCopilotName, bizOrder.getCopilotName());
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(bizOrder.getSenderName())) {
|
if (ObjectUtil.isNotEmpty(bizOrder.getSenderName())) {
|
||||||
queryWrapper.and(wq -> wq.like(BizOrder::getSenderName, bizOrder.getSenderName()).or().like(BizOrder::getSenderPhone,bizOrder.getSenderName()).or().like(BizOrder::getSenderAddress,bizOrder.getSenderName()));
|
queryWrapper.and(wq -> wq.like(BizOrder::getSenderName, bizOrder.getSenderName()).or().like(BizOrder::getSenderPhone,bizOrder.getSenderName()).or().like(BizOrder::getSenderAddress,bizOrder.getSenderName()).or().like(BizOrder::getSenderLinkman,bizOrder.getSenderName()));
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(bizOrder.getReceiverName())) {
|
if (ObjectUtil.isNotEmpty(bizOrder.getReceiverName())) {
|
||||||
queryWrapper.and(wq -> wq.like(BizOrder::getReceiverName, bizOrder.getReceiverName()).or().like(BizOrder::getReceiverPhone,bizOrder.getReceiverName()).or().like(BizOrder::getReceiverAddress,bizOrder.getReceiverName()));
|
queryWrapper.and(wq -> wq.like(BizOrder::getReceiverName, bizOrder.getReceiverName()).or().like(BizOrder::getReceiverPhone,bizOrder.getReceiverName()).or().like(BizOrder::getReceiverAddress,bizOrder.getReceiverName()).or().like(BizOrder::getReceiverLinkman,bizOrder.getReceiverName()));
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLinkman())) {
|
if (ObjectUtil.isNotEmpty(bizOrder.getReceiverLinkman())) {
|
||||||
queryWrapper.like(BizOrder::getReceiverLinkman, bizOrder.getReceiverLinkman());
|
queryWrapper.like(BizOrder::getReceiverLinkman, bizOrder.getReceiverLinkman());
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,12 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService
|
||||||
{
|
{
|
||||||
String uuid = UUID.randomUUID().toString();
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
|
||||||
|
// 根据execTimes构建cron表达式
|
||||||
|
String execTimes = bizOrderTask.getExecTimes(); // 16:24:30
|
||||||
|
String[] split = execTimes.split(":");
|
||||||
|
String cron = split[2] + " " + split[1] + " " + split[0] + " * * ?";
|
||||||
|
bizOrderTask.setCronExpression(cron);
|
||||||
|
|
||||||
SysJob sysJob = new SysJob();
|
SysJob sysJob = new SysJob();
|
||||||
sysJob.setJobName(bizOrderTask.getName());
|
sysJob.setJobName(bizOrderTask.getName());
|
||||||
sysJob.setInvokeTarget("orderTask.generateOrder('" + uuid +"')");
|
sysJob.setInvokeTarget("orderTask.generateOrder('" + uuid +"')");
|
||||||
|
|
@ -87,6 +93,7 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService
|
||||||
|
|
||||||
bizOrderTask.setCode(uuid);
|
bizOrderTask.setCode(uuid);
|
||||||
bizOrderTask.setJobId(sysJob.getJobId());
|
bizOrderTask.setJobId(sysJob.getJobId());
|
||||||
|
|
||||||
return bizOrderTaskMapper.insert(bizOrderTask);
|
return bizOrderTaskMapper.insert(bizOrderTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -100,6 +107,12 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService
|
||||||
@Transactional
|
@Transactional
|
||||||
public int updateBizOrderTask(BizOrderTask bizOrderTask)
|
public int updateBizOrderTask(BizOrderTask bizOrderTask)
|
||||||
{
|
{
|
||||||
|
// 根据execTimes构建cron表达式
|
||||||
|
String execTimes = bizOrderTask.getExecTimes(); // 16:24:30
|
||||||
|
String[] split = execTimes.split(":");
|
||||||
|
String cron = split[2] + " " + split[1] + " " + split[0] + " * * ?";
|
||||||
|
bizOrderTask.setCronExpression(cron);
|
||||||
|
|
||||||
// 同步修改订单任务
|
// 同步修改订单任务
|
||||||
SysJob sysJob = sysJobMapper.selectJobById(bizOrderTask.getJobId());
|
SysJob sysJob = sysJobMapper.selectJobById(bizOrderTask.getJobId());
|
||||||
sysJob.setJobName(bizOrderTask.getName());
|
sysJob.setJobName(bizOrderTask.getName());
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<where>
|
<where>
|
||||||
1=1
|
1=1
|
||||||
<if test="null != startTime and startTime != ''">
|
<if test="null != startTime and startTime != ''">
|
||||||
and gps_time >= #{createTime}
|
and gps_time >= #{startTime}
|
||||||
</if>
|
</if>
|
||||||
<if test="null != endTime and endTime != ''">
|
<if test="null != endTime and endTime != ''">
|
||||||
and gps_time <= #{endTime}
|
and gps_time <= #{endTime}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue