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

车辆轨迹同步

上级 2e3ce983
package com.clx.performance.enums.vehiclewarn;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum VehicleWarnInfoEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
INIT(1, "待处理"),
RESOLVE(2, "已处理"),
SUSPEND(3, "暂停预警"),
;
private final Integer code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Status::getMsg).orElse(null);
}
}
}
package com.clx.performance.param.pc.vehiclewarn;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class PageVehicleWarnInfoParam extends PageParam {
@ApiModelProperty(value = "预警名称", example = "超时")
private String warnName;
@ApiModelProperty(value = "预警类型: 1到达货源地延误 2前往货源地超时 3到达目的地延误 4前往目的地超时 5停留超时 6敏感区停留 7装车超时 8卸车超时 9运单延误", example = "1")
private Integer warnType;
@ApiModelProperty(value = "预警级别", example = "1")
private Integer warnLevel;
@ApiModelProperty(value = "运单编号", example = "1000")
private String childNo;
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "1")
private Integer status;
@ApiModelProperty(value = "开始时间", example = "")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "")
private String endTime;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnInfoResolveUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotBlank(message = "id不能为空")
private Integer id;
}
package com.clx.performance.param.pc.vehiclewarn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnInfoSuspendUpdateParam {
@ApiModelProperty(value = "id", example = "1")
@NotBlank(message = "id不能为空")
private Integer id;
@ApiModelProperty(value = "预警屏蔽范围:1运单 2货单 3无预警", example = "1")
private Integer warnRang;
@ApiModelProperty(value = "预警屏蔽结束时间", example = "")
private LocalDateTime warnEndTime;
}
package com.clx.performance.vo.pc.vehiclewarn;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @Author: aiqinguo
* @Description: 车辆轨迹
* @Date: 2024/04/25 17:09:33
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class VehicleTraceVO {
}
\ No newline at end of file
package com.clx.performance.vo.pc.vehiclewarn;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum;
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/25 17:09:33
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class VehicleWarnInfoVO {
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "预警id", example = "1")
private Integer warnId;
@ApiModelProperty(value = "预警名称", example = "超时")
private String warnName;
@ApiModelProperty(value = "预警类型: 1到达货源地延误 2前往货源地超时 3到达目的地延误 4前往目的地超时 5停留超时 6敏感区停留 7装车超时 8卸车超时 9运单延误", example = "1")
private Integer warnType;
@ApiModelProperty(value = "预警类型", example = "1")
private String warnTypeMsg;
public String getWarnTypeMsg() {
return VehicleWarnConfigEnum.WarnType.getMsgByCode(warnType);
}
@ApiModelProperty(value = "预警级别", example = "1")
private Integer warnLevel;
@ApiModelProperty(value = "预警级别", example = "一级")
private String warnLevelMsg;
public String getWarnLevelMsg() {
if (warnLevel == 1) {return "一级";}
if (warnLevel == 2) {return "二级";}
if (warnLevel == 3) {return "三级";}
return null;
}
@ApiModelProperty(value = "运单编号", example = "1000")
private String childNo;
@ApiModelProperty(value = "发货地址id", example = "1")
private Integer sendAddressId;
@ApiModelProperty(value = "发货地址", example = "北京")
private String sendAddress;
@ApiModelProperty(value = "收货地址id", example = "2")
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "山西")
private String receiveAddress;
@ApiModelProperty(value = "运单状态", example = "1")
private Integer childStatus;
@ApiModelProperty(value = "运单状态", example = "1")
private String childStatusMsg;
public String getChildStatusMsg() {
return OrderChildEnum.Status.getMsgByCode(childStatus);
}
@ApiModelProperty(value = "车辆ID", example = "1")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "京A12345")
private String truckNo;
@ApiModelProperty(value = "司机用户编号", example = "100000")
private Long driverUserNo;
@ApiModelProperty(value = "司机姓名", example = "张三")
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "13000000000")
private String driverMobile;
@ApiModelProperty(value = "接单时间", example = "")
private String takeTime;
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "1")
private Integer status;
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "待处理")
private String statusMsg;
public String getStatusMsg() {
return VehicleWarnInfoEnum.Status.getMsgByCode(status);
}
@ApiModelProperty(value = "创建人", example = "")
private String createBy;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
@ApiModelProperty(value = "修改时间", example = "")
private String modifiedTime;
}
\ No newline at end of file
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.service.vehiclewarn.VehicleWarnInfoService;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@Validated
@Api(tags = "车辆预警-预警信息")
@RequestMapping(value="/pc/owner/vehicleWarnInfo")
public class VehicleWarnInfoController {
@Autowired
private VehicleWarnInfoService vehicleWarnInfoService;
@ApiOperation(value = "获取预警信息",notes = "<br>By:艾庆国")
@GetMapping("/getInfo")
public Result<VehicleWarnInfoVO> getInfo(@NotNull(message = "id不能为空") @Validated Integer id) {
return Result.ok(vehicleWarnInfoService.getInfo(id));
}
@ApiOperation(value = "分页搜索预警信息列表",notes = "<br>By:艾庆国")
@PostMapping("/pageInfo")
public Result<PageData<VehicleWarnInfoVO>> pageInfo(@RequestBody @Validated PageVehicleWarnInfoParam param) {
IPage<VehicleWarnInfoVO> page = vehicleWarnInfoService.pageInfo(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.dao.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnInfoMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
@Repository
public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, VehicleWarnInfo, Integer> implements VehicleWarnInfoDao {
@Override
public boolean updateStatus(VehicleWarnInfo item) {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getId, item.getId())
.set(VehicleWarnInfo::getStatus, item.getStatus())
);
}
@Override
public Optional<VehicleWarnInfo> findById(Integer id) {
return Optional.of(id)
.map(item -> lQrWrapper()
.eq(VehicleWarnInfo::getId, id)
.last("limit 1")
)
.map(super::getOne);
}
@Override
public IPage<VehicleWarnInfo> pageByParam(PageVehicleWarnInfoParam param) {
Page<VehicleWarnInfo> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnInfoMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
public interface VehicleWarnInfoDao extends BaseDao<VehicleWarnInfoMapper, VehicleWarnInfo, Integer> {
boolean updateStatus(VehicleWarnInfo item);
Optional<VehicleWarnInfo> findById(Integer id);
IPage<VehicleWarnInfo> pageByParam(PageVehicleWarnInfoParam param);
}
package com.clx.performance.mapper.vehiclewarn;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.clx.performance.sqlProvider.vehiclewarn.VehicleWarnInfoSqlProvider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
@Mapper
public interface VehicleWarnInfoMapper extends BaseMapper<VehicleWarnInfo> {
String TABLE = "vehicle_warn_info";
/**
* @see VehicleWarnInfoSqlProvider#pageByParam(Page, PageVehicleWarnInfoParam)
*/
@SelectProvider(type = VehicleWarnInfoSqlProvider.class, method = "pageByParam")
IPage<VehicleWarnInfo> pageByParam(@Param("page") Page page, @Param("param") PageVehicleWarnInfoParam param);
}
\ No newline at end of file
package com.clx.performance.service.impl.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.clx.performance.service.vehiclewarn.VehicleWarnInfoService;
import com.clx.performance.struct.vehiclewarn.VehicleWarnInfoStruct;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
@Autowired
private VehicleWarnInfoDao vehicleWarnInfoDao;
@Autowired
private VehicleWarnInfoStruct vehicleWarnInfoStruct;
@Override
public VehicleWarnInfoVO getInfo(Integer id) {
return vehicleWarnInfoStruct.convert(vehicleWarnInfoDao.findById(id).orNull());
}
@Override
public IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param) {
return vehicleWarnInfoStruct.convertPage(vehicleWarnInfoDao.pageByParam(param));
}
}
package com.clx.performance.service.vehiclewarn;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.vehiclewarn.*;
import com.clx.performance.vo.pc.vehiclewarn.VehicleTraceVO;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
public interface VehicleWarnInfoService {
VehicleWarnInfoVO getInfo(Integer id);
IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param);
}
package com.clx.performance.sqlProvider.vehiclewarn;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnConfigParam;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class VehicleWarnInfoSqlProvider {
private static final String TABLE = "vehicle_warn_info";
public String pageByParam(@Param("page") Page page, @Param("param") PageVehicleWarnInfoParam param) {
return new SQL(){{
SELECT("*");
FROM(TABLE);
if (StringUtils.isNotBlank(param.getWarnName())) {WHERE("warn_name = #{param.warnName}");}
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (Objects.nonNull(param.getWarnType())) {WHERE("warn_type = #{param.warnType}");}
if (Objects.nonNull(param.getWarnLevel())) {WHERE("warn_level = #{param.warnLevel}");}
if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
ORDER_BY("id desc");
}}.toString();
}
}
package com.clx.performance.struct.vehiclewarn;
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.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnInfoVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface VehicleWarnInfoStruct {
VehicleWarnInfoVO convert(VehicleWarnInfo item);
Page<VehicleWarnInfoVO> convertPage(IPage<VehicleWarnInfo> page);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论