提交 82aad5e0 authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'v14.4_vehicle_warn_20240425' into dev

package com.clx.performance.enums.vehiclewarn;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum VehicleWarnLogEnum {
;
@Getter
@AllArgsConstructor
public enum Type {
SUSPEND(1, "暂停预警"),
RESOLVE(2, "处理预警"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum WarnRang {
CHILD(1, "本运单不再提示该预警"),
ORDER(2, "相同货单不再提示该预警"),
NONE(3, "不再提示该预警"),
;
private final Integer code;
private final String msg;
public static Optional<WarnRang> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(WarnRang::getMsg).orElse(null);
}
}
}
package com.clx.performance.param.temp;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
import java.util.List;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class DriverTraceAddParam {
@ApiModelProperty(value = "车辆轨迹列表")
private List<DriverTraceItem> traceList;
@Setter
@Getter
@ToString
@NoArgsConstructor
public static class DriverTraceItem{
@ApiModelProperty(value = "用户编码", example = "10000")
private Long userNo;
@ApiModelProperty(value = "1-正常上传,2-离线上传", example = "1")
private Integer dataType;
@ApiModelProperty(value = "位置 [123.45, 12.34]")
private BigDecimal[] location;
@ApiModelProperty(value = "时间")
private String gpsTime;
}
}
......@@ -12,25 +12,13 @@ import java.math.BigDecimal;
@NoArgsConstructor
public class DriverTraceVO {
@ApiModelProperty(value = "车牌号", dataType = "String")
private String truckNo;
@ApiModelProperty(value = "正北方向夹角", example = "90", dataType = "String")
private BigDecimal angle;
@ApiModelProperty(value = "GPS 速度", example = "602", dataType = "String")
private BigDecimal speed;
@ApiModelProperty(value = "里程", example = "1500", dataType = "String")
private BigDecimal mileage;
@ApiModelProperty(value = "海拔", example = "3250", dataType = "String")
private BigDecimal height;
@ApiModelProperty(value = "经度", example = "31.1233", dataType = "BigDecimal")
@ApiModelProperty(value = "经度")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "161.342543", dataType = "BigDecimal")
@ApiModelProperty(value = "纬度")
private BigDecimal latitude;
@ApiModelProperty(value = "GPS 时间", example = "20140325/104954", dataType = "String")
@ApiModelProperty(value = "GPS 时间")
private String gpsTime;
@ApiModelProperty(value = "创建时间", dataType = "String")
private String createTime;
@ApiModelProperty(value = "更新时间", dataType = "String")
private String modifiedTime;
@ApiModelProperty(value = "停留时长(min)", example = "12.3")
private BigDecimal stayTime=BigDecimal.ZERO;
}
......@@ -12,8 +12,6 @@ import java.math.BigDecimal;
@NoArgsConstructor
public class DriverTruckTraceVO {
@ApiModelProperty(value = "车牌号", example = "京A12345")
private String truckNo;
@ApiModelProperty(value = "正北方向夹角", example = "12.34")
private BigDecimal angle;
@ApiModelProperty(value = "GPS 速度", example = "12.34")
......@@ -28,7 +26,7 @@ public class DriverTruckTraceVO {
private BigDecimal latitude;
@ApiModelProperty(value = "GPS 时间")
private String gpsTime;
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "停留时长(min)", example = "12.3")
private BigDecimal stayTime=BigDecimal.ZERO;
}
package com.clx.performance.vo.pc.vehiclewarn;
import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 车辆轨迹
......@@ -15,6 +20,9 @@ import lombok.Setter;
@Setter
@NoArgsConstructor
public class VehicleTraceVO {
@ApiModelProperty(value = "车辆轨迹列表")
List<DriverTruckTraceVO> truckTraceList;
@ApiModelProperty(value = "司机轨迹列表")
List<DriverTraceVO> driverTraceList;
}
\ No newline at end of file
package com.clx.performance.vo.pc.vehiclewarn;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 预警日志
* @Date: 2024/04/26 11:21:25
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnLogVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "预警信息id", example = "1")
private Integer infoId;
@ApiModelProperty(value = "类型:1暂停预警 2处理预警", example = "1")
private Integer type;
@ApiModelProperty(value = "运单编号", example = "100000")
private String childNo;
@ApiModelProperty(value = "预警名称", example = "超时")
private String warnName;
@ApiModelProperty(value = "预警时间", example = "")
private String warnTime;
@ApiModelProperty(value = "预警屏蔽范围:1运单 2货单 3无预警", example = "1")
private Integer warnRang;
@ApiModelProperty(value = "预警屏蔽结束时间", example = "")
private LocalDateTime warnEndTime;
@ApiModelProperty(value = "内容", example = "预警处理")
private String content;
@ApiModelProperty(value = "创建人", example = "")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
@ApiModelProperty(value = "修改时间", example = "")
private String modifiedTime;
}
\ No newline at end of file
......@@ -3,7 +3,10 @@ package com.clx.performance.controller.pc.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoResolveUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoSuspendUpdateParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnInfoService;
import com.clx.performance.vo.pc.vehiclewarn.VehicleTraceVO;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
......@@ -27,6 +30,27 @@ public class VehicleWarnInfoController {
@Autowired
private VehicleWarnInfoService vehicleWarnInfoService;
@ApiOperation(value = "更新预警暂停", notes = "<br>By:艾庆国")
@PostMapping("/updateSuspend")
public Result<Void> updateSuspend(@RequestBody @Validated VehicleWarnInfoSuspendUpdateParam param) {
vehicleWarnInfoService.updateSuspend(param);
return Result.ok();
}
@ApiOperation(value = "更新处理", notes = "<br>By:艾庆国")
@PostMapping("/updateResolve")
public Result<Void> updateConfig(@RequestBody @Validated VehicleWarnInfoResolveUpdateParam param) {
vehicleWarnInfoService.updateResolve(param);
return Result.ok();
}
@ApiOperation(value = "获取轨迹",notes = "<br>By:艾庆国")
@GetMapping("/getTrace")
public Result<VehicleTraceVO> getTrace(@NotNull(message = "id不能为空") @Validated Integer id) {
return Result.ok(vehicleWarnInfoService.getTrace(id));
}
@ApiOperation(value = "获取预警信息",notes = "<br>By:艾庆国")
@GetMapping("/getInfo")
public Result<VehicleWarnInfoVO> getInfo(@NotNull(message = "id不能为空") @Validated Integer id) {
......
package com.clx.performance.controller.temp;
import com.clx.performance.param.temp.DriverTraceAddParam;
import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.service.trace.TruckTraceMqHandlerService;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
......@@ -27,26 +28,39 @@ import java.util.List;
@RequestMapping(value="/temp/trace")
public class TempTraceController {
@Autowired
private TruckTraceMqHandlerService truckTraceMqHandlerService;
@Autowired
private TruckTraceService truckTraceService;
@ApiOperation(value = "truckTraceSync", notes = "<br>By:艾庆国")
@ApiOperation(value = "车辆轨迹同步", notes = "<br>By:艾庆国")
@PostMapping("/truckTraceSync")
public Result truckTraceSync(@RequestBody TruckTraceAddParam param) {
truckTraceService.save(param);
truckTraceService.truckTraceSave(param);
return Result.ok();
}
@ApiOperation(value = "listTruckTraceByTime", notes = "<br>By:艾庆国")
@ApiOperation(value = "查询车辆轨迹", notes = "<br>By:艾庆国")
@PostMapping("/listTruckTraceByTime")
public Result<List<DriverTruckTraceVO>> listTruckTraceByTime(String truckNo, String beginTime, String endTime) {
return Result.ok(truckTraceService.listTruckTraceByTime(truckNo,beginTime,endTime));
}
@ApiOperation(value = "司机轨迹同步", notes = "<br>By:艾庆国")
@PostMapping("/driverTraceSync")
public Result driverTraceSync(@RequestBody DriverTraceAddParam param) {
truckTraceService.driverTraceSave(param);
return Result.ok();
}
@ApiOperation(value = "查询司机轨迹", notes = "<br>By:艾庆国")
@PostMapping("/listDriverTraceByTime")
public Result<List<DriverTraceVO>> listDriverTraceByTime(Long userNo, String beginTime, String endTime) {
return Result.ok(truckTraceService.listDriverTraceByTime(userNo,beginTime,endTime));
}
}
package com.clx.performance.dao.impl.vehiclewarn;
import com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnLog;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
@Repository
public class VehicleWarnLogDaoImpl extends BaseDaoImpl<VehicleWarnLogMapper, VehicleWarnLog, Integer> implements VehicleWarnLogDao {
@Override
public Optional<VehicleWarnLog> findById(Integer id) {
return null;
}
}
package com.clx.performance.dao.vehiclewarn;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnLogMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnLog;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
public interface VehicleWarnLogDao extends BaseDao<VehicleWarnLogMapper, VehicleWarnLog, Integer> {
Optional<VehicleWarnLog> findById(Integer id);
}
......@@ -2,17 +2,11 @@ package com.clx.performance.esplus.model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId;
import org.dromara.easyes.annotation.IndexName;
import org.dromara.easyes.annotation.rely.FieldType;
import org.dromara.easyes.annotation.rely.IdType;
import org.elasticsearch.common.geo.GeoPoint;
import org.springframework.data.annotation.Id;
import java.math.BigDecimal;
......@@ -20,7 +14,7 @@ import java.math.BigDecimal;
@IndexName("clx_trace_driver_trace_index1")
public class DriverTraceESPlus {
@IndexId(type= IdType.CUSTOMIZE)
@IndexId(type= IdType.UUID)
private String id;
@ApiModelProperty("用户编号")
......@@ -29,16 +23,16 @@ public class DriverTraceESPlus {
@ApiModelProperty("1-正常上传,2-离线上传")
private Integer dataType;
@ApiModelProperty("位置")
private GeoPoint location;
@IndexField(fieldType = FieldType.GEO_POINT)
private BigDecimal[] location; //位置
@ApiModelProperty("定位时间")
@IndexField(fieldType = FieldType.DATE)
private String positionTime;
@ApiModelProperty("添加时间")
@IndexField(fieldType = FieldType.DATE)
private String createTime;
@ApiModelProperty("修改时间")
@IndexField(fieldType = FieldType.DATE)
private String modifiedTime;
}
\ No newline at end of file
package com.clx.performance.mapper.vehiclewarn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.model.vehiclewarn.VehicleWarnLog;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface VehicleWarnLogMapper extends BaseMapper<VehicleWarnLog> {
String TABLE = "vehicle_warn_log";
}
\ No newline at end of file
package com.clx.performance.model.vehiclewarn;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
/**
* @Author: aiqinguo
* @Description: 预警日志
* @Date: 2024/04/26 10:32:01
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class VehicleWarnLog implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; //id
private Integer infoId; //预警信息id
private Integer type; //类型:1暂停预警 2处理预警
private String childNo; //运单编号
private String warnName; //预警名称
private LocalDateTime warnTime; //预警时间
private Integer warnRang; //预警屏蔽范围:1运单 2货单 3无预警
private LocalDateTime warnEndTime; //预警屏蔽结束时间
private String content; //内容
private String createBy; //创建人
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.service.impl.trace;
import com.clx.performance.esplus.mapper.DriverTraceESPlusMapper;
import com.clx.performance.esplus.mapper.TruckTraceESPlusMapper;
import com.clx.performance.esplus.model.DriverTraceESPlus;
import com.clx.performance.esplus.model.TruckTraceESPlus;
import com.clx.performance.param.temp.DriverTraceAddParam;
import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.struct.trace.DriverTraceStruct;
import com.clx.performance.struct.trace.TruckTraceStruct;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import lombok.extern.slf4j.Slf4j;
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
......@@ -21,9 +26,13 @@ public class TruckTraceServiceImpl implements TruckTraceService {
@Autowired
private TruckTraceESPlusMapper truckTraceESPlusMapper;
@Autowired
private DriverTraceESPlusMapper driverTraceESPlusMapper;
@Autowired
private TruckTraceStruct truckTraceStruct;
@Autowired
private DriverTraceStruct driverTraceStruct;
@Override
public List<DriverTruckTraceVO> listTruckTraceByTime(String truckNo, String beginTime, String endTime) {
......@@ -36,12 +45,29 @@ public class TruckTraceServiceImpl implements TruckTraceService {
List<DriverTruckTraceVO> truckTraceList = truckTraceStruct.convert(list);
// 停留时长计算
return truckTraceList;
}
@Override
public List<DriverTraceVO> listDriverTraceByTime(Long userNo, String beginTime, String endTime) {
List<DriverTraceESPlus> list = driverTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<DriverTraceESPlus>()
.eq(DriverTraceESPlus::getUserNo, userNo)
.ge(DriverTraceESPlus::getPositionTime, beginTime)
.le(DriverTraceESPlus::getPositionTime, endTime)
.orderByAsc("positionTime")
);
List<DriverTraceVO> truckTraceList = driverTraceStruct.convert(list);
// 停留时长计算
return truckTraceList;
}
@Override
public void save(TruckTraceAddParam param){
public void truckTraceSave(TruckTraceAddParam param){
List<TruckTraceESPlus> list = new ArrayList<>();
for (TruckTraceAddParam.TruckTraceItem item : param.getTraceList()) {
......@@ -60,5 +86,23 @@ public class TruckTraceServiceImpl implements TruckTraceService {
truckTraceESPlusMapper.insertBatch(list);
}
@Override
public void driverTraceSave(DriverTraceAddParam param){
List<DriverTraceESPlus> list = new ArrayList<>();
for (DriverTraceAddParam.DriverTraceItem item : param.getTraceList()) {
DriverTraceESPlus es = new DriverTraceESPlus();
es.setUserNo(item.getUserNo());
es.setDataType(item.getDataType());
es.setLocation(item.getLocation());
es.setPositionTime(item.getGpsTime());
es.setCreateTime(LocalDateTimeUtils.formatTime());
es.setModifiedTime(es.getCreateTime());
list.add(es);
}
driverTraceESPlusMapper.insertBatch(list);
}
}
package com.clx.performance.service.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnLogDao;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnLogEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.model.vehiclewarn.VehicleWarnLog;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoResolveUpdateParam;
import com.clx.performance.param.pc.vehiclewarn.VehicleWarnInfoSuspendUpdateParam;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.service.vehiclewarn.VehicleWarnInfoService;
import com.clx.performance.struct.vehiclewarn.VehicleWarnInfoStruct;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import com.clx.performance.vo.pc.vehiclewarn.VehicleTraceVO;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
@Service
......@@ -16,10 +37,85 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
@Autowired
private VehicleWarnInfoDao vehicleWarnInfoDao;
@Autowired
private VehicleWarnLogDao vehicleWarnLogDao;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private VehicleWarnInfoStruct vehicleWarnInfoStruct;
@Autowired
private TruckTraceService truckTraceService;
@Transactional(rollbackFor = Exception.class)
@Override
public void updateSuspend(VehicleWarnInfoSuspendUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.SUSPEND.getCode());
vehicleWarnInfoDao.updateStatus(vehicleWarnInfo);
VehicleWarnLog vehicleWarnLog = new VehicleWarnLog();
vehicleWarnLog.setInfoId(vehicleWarnInfo.getId());
vehicleWarnLog.setType(VehicleWarnLogEnum.Type.SUSPEND.getCode());
vehicleWarnLog.setContent(VehicleWarnLogEnum.Type.SUSPEND.getMsg());
vehicleWarnLog.setChildNo(vehicleWarnInfo.getChildNo());
vehicleWarnLog.setWarnName(vehicleWarnInfo.getWarnName());
vehicleWarnLog.setWarnRang(param.getWarnRang());
vehicleWarnLog.setWarnEndTime(param.getWarnEndTime());
vehicleWarnLog.setCreateBy(loginUserInfo.getUserName());
vehicleWarnLogDao.saveEntity(vehicleWarnLog);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateResolve(VehicleWarnInfoResolveUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.RESOLVE.getCode());
vehicleWarnInfoDao.updateStatus(vehicleWarnInfo);
VehicleWarnLog vehicleWarnLog = new VehicleWarnLog();
vehicleWarnLog.setInfoId(vehicleWarnInfo.getId());
vehicleWarnLog.setType(VehicleWarnLogEnum.Type.RESOLVE.getCode());
vehicleWarnLog.setContent(VehicleWarnLogEnum.Type.RESOLVE.getMsg());
vehicleWarnLog.setChildNo(vehicleWarnInfo.getChildNo());
vehicleWarnLog.setWarnName(vehicleWarnInfo.getWarnName());
vehicleWarnLog.setCreateBy(loginUserInfo.getUserName());
vehicleWarnLogDao.saveEntity(vehicleWarnLog);
}
@Override
public VehicleTraceVO getTrace(Integer id) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(id).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderChild orderChild = orderChildDao.getByChildNo(vehicleWarnInfo.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
LocalDateTime beginTime = vehicleWarnInfo.getTakeTime();
LocalDateTime endTime = vehicleWarnInfo.getTakeTime();
if (orderChild.getArriveSendTime() != null) {endTime = orderChild.getArriveSendTime();}
if (orderChild.getLoadTime() != null) {endTime = orderChild.getLoadTime();}
if (orderChild.getArriveReceiveTime() != null) {endTime = orderChild.getArriveReceiveTime();}
if (orderChild.getUnloadTime() != null) {endTime = orderChild.getUnloadTime();}
if (orderChild.getConfirmTime() != null) {endTime = orderChild.getConfirmTime();}
if (orderChild.getSettleTime() != null) {endTime = orderChild.getSettleTime();}
if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();}
if (endTime.isAfter(beginTime.plusDays(3))) {endTime = beginTime.plusDays(3);} //最多查询3天
List<DriverTruckTraceVO> truckTraceList = truckTraceService.listTruckTraceByTime(orderChild.getTruckNo(), LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime));
List<DriverTraceVO> driverTraceList = truckTraceService.listDriverTraceByTime(orderChild.getDriverUserNo(), LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime));
VehicleTraceVO result = new VehicleTraceVO();
result.setDriverTraceList(driverTraceList);
result.setTruckTraceList(truckTraceList);
return result;
}
@Override
public VehicleWarnInfoVO getInfo(Integer id) {
return vehicleWarnInfoStruct.convert(vehicleWarnInfoDao.findById(id).orNull());
......
package com.clx.performance.service.trace;
import com.clx.performance.param.temp.DriverTraceAddParam;
import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import java.util.List;
......@@ -8,6 +10,9 @@ import java.util.List;
public interface TruckTraceService {
List<DriverTruckTraceVO> listTruckTraceByTime(String truckNo, String beginTime, String endTime);
List<DriverTraceVO> listDriverTraceByTime(Long userNo, String beginTime, String endTime);
void save(TruckTraceAddParam param);
void truckTraceSave(TruckTraceAddParam param);
void driverTraceSave(DriverTraceAddParam param);
}
......@@ -7,6 +7,12 @@ import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
public interface VehicleWarnInfoService {
void updateSuspend(VehicleWarnInfoSuspendUpdateParam param);
void updateResolve(VehicleWarnInfoResolveUpdateParam param);
VehicleTraceVO getTrace(Integer id);
VehicleWarnInfoVO getInfo(Integer id);
IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param);
......
......@@ -2,17 +2,24 @@ package com.clx.performance.struct.trace;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
import com.clx.performance.esplus.model.DriverTraceESPlus;
import com.clx.performance.vo.pc.trace.DriverTraceVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface DriverTraceStruct {
import java.math.BigDecimal;
import java.util.List;
VehicleWarnConfigVO convert(VehicleWarnConfig item);
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class, BigDecimal.class})
public interface DriverTraceStruct {
Page<VehicleWarnConfigVO> convertPage(IPage<VehicleWarnConfig> page);
@Mapping(target = "longitude", expression = "java(item.getLocation()[0])")
@Mapping(target = "latitude", expression = "java(item.getLocation()[1])")
@Mapping(target = "gpsTime", source = "positionTime")
DriverTraceVO convert(DriverTraceESPlus item);
List<DriverTraceVO> convert(List<DriverTraceESPlus> list);
Page<DriverTraceVO> convertPage(IPage<DriverTraceESPlus> page);
}
......@@ -17,7 +17,7 @@ public interface TruckTraceStruct {
@Mapping(target = "longitude", expression = "java(item.getLocation()[0])")
@Mapping(target = "latitude", expression = "java(item.getLocation()[1])")
DriverTruckTraceVO convert(TruckTraceESPlus item);
List<DriverTruckTraceVO> convert(List<TruckTraceESPlus> page);
List<DriverTruckTraceVO> convert(List<TruckTraceESPlus> list);
Page<DriverTruckTraceVO> convertPage(IPage<TruckTraceESPlus> page);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论