Commit 3ed327f9 authored by 曹军's avatar 曹军

上传定时任务

parent 48b3bce3
......@@ -10,8 +10,6 @@ import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
@EnableScheduling
@Slf4j
......@@ -28,24 +26,24 @@ public class UploadDataNewTask {
/**
* 场内运输车辆信息-添加
*/
@Scheduled(cron = "0 0/2 * * * *")
// @Scheduled(cron = "0 0/2 * * * *")
public void uploadInFactoryTransportVehicleInfo() {
try {
inFactoryTransportVehicleInfoService.getAndUploadInFactoryTransportVehicleInfo();
} catch (Exception e) {
log.error("上传场内车辆信息生异常: {}", e);
log.error("上传场内车辆信息生异常", e);
}
}
/**
* 车辆信息-添加
*/
// @Scheduled(cron = "0 8/5 * * * ?")
// @Scheduled(cron = "0 8/15 * * * ?")
public void uploadTransportVehicleInfo() {
try {
transportVehicleInfoService.getAndUploadTransportVehicleInfoList(Boolean.TRUE);
} catch (Exception e) {
log.error("上传车辆信息发生异常: {}", e);
log.error("上传车辆信息发生异常", e);
}
}
......@@ -55,9 +53,9 @@ public class UploadDataNewTask {
// @Scheduled(cron = "0 0/15 * * * *")
public void uploadNoneRoadMovementInfo() {
try {
noneRoadMovementInfoService.getAndUploadTransportVehicleDate();
noneRoadMovementInfoService.getNoWayDate();
} catch (Exception e) {
log.error("上传非道路电子台账生异常: {}", e);
log.error("上传非道路电子台账生异常", e);
}
}
......@@ -66,7 +64,7 @@ public class UploadDataNewTask {
try {
inAndOutDateService.uploadInAndOutDate();
} catch (Exception e) {
log.error("上传进出场记录异常: {}", e);
log.error("上传进出场记录异常", e);
}
}
}
package com.bme.access.upload.module.dao;
import com.bme.access.upload.module.module.NoneRoadMovementInfoUrl;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 车辆电子运行台账
*
* @author yutyi
* @date 2020/07/28
*/
@Mapper
public interface NoneRoadMovementInfoMapper {
List<NoneRoadMovementInfoUrl> selectNoneRoadMovementInfo(String uploadTime);
List<NoneRoadMovementInfoUrl> selectNoneRoadMovementInfo1();
Integer selectNoneRoadMovementInfoCount();
}
\ No newline at end of file
package com.bme.access.upload.module.dao;
import com.bme.access.upload.module.module.TransportVehicleInfoUrl;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 车辆电子运行台账
*
* @author yutyi
* @date 2020/07/28
*/
@Mapper
public interface TransportVehicleInfoMapper {
List<TransportVehicleInfoUrl> getUploadTransportVehicleInfo(String uploadTime);
}
\ No newline at end of file
package com.bme.access.upload.module.module;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NoneRoadMovementInfoUrl {
//环保登记编码
private String environmentCode;
//机械环保代码
private String mechanicalEnvironment;
//机械型号
private String mechanicalModel;
//生产日期
private String productionDate;
//发动机生产厂
private String engineVendor;
//发动机型号
private String engineModel;
//发动机铭牌照片
private String engineNameplate;
//机械铭牌照片
private String carNameplate;
//机械环保信息标签照片
private String vehicleLable;
//排放标准
private String vehicleEmissions;
private String dtime;
// 发动机铭牌(图片URL地址)
private String engineImage;
//设备铭牌(图片URL地址)
private String deviceImage;
//环保信息公开编码
private String environmentSN;
// 发动机型号
private String engineType;
//燃料类型
private String fuelType;
//机械分类
private String mechanicalType;
// 车辆所有(单位)
private String owener;
// 机械环保标签铭牌照片(图片URL地址)
private String environmentLabelImage;
//内部管理号牌
private String numberPlate;
}
\ No newline at end of file
package com.bme.access.upload.module.module;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 运输车辆电子台账信息表
*
* @author yutyi
* @date 2020/07/28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TransportVehicleInfoUrl {
private Long id;
//车辆识别代码
private String vin;
//车牌号
private String numberPlate;
//车辆类型
private String vehicleType;
//注册日期
private String registrationDate;
//车辆品牌型号
private String model;
//排放标准
private Integer vehicleEmissions;
//是否联网
private Integer isObd;
//使用性质
private String natureUse;
//发动机编码
private String engineNumber;
//行驶证
private String drivingLicenseImage;
//随车清单
private String onBoardList;
//车队名称
private String owner;
//最新年检日期
private String issueDate;
private String createTime;
//车队名称
private String address;
// 车头正面照片
private String vehicleHeadImg;
// 机动车环保网查询图片
private String vinVerificationImg;
// 重型柴油车排放阶段查询图片
private String vehicleLicenseVerificationImg;
// 燃料类型
private String fuelType;
// 车辆颜色
private Integer plateColor;
//发动机照片
private String engineImage;
// 联网状态
private String onlineStatus;
// 核定载重质量
private String approvedLoadMass;
// 最新年检日期
private String latestInspectionDate;
}
\ No newline at end of file
package com.bme.access.upload.module.module.upload;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NoneRoadMovementInfo {
/**
* 环保登记编码
*/
private String hbCarNo;
/**
* 排放标准:国一-1,国二-2,国三-3,国四-4,国五-5,国六a-6,国六b-7,新能源-D
*/
private String emissionStandard;
/**
* 发动机生产厂
*/
private String engineManufacturer;
/**
* 发动机型号
*/
private String engineModel;
/**
* 发动机铭牌(Base64编码图片)
*/
private String enginePlaque;
/**
* 发动机编号
*/
private String engineSerialNumber;
/**
* 机械环保信息标签(Base64编码图片)
*/
private String envIronMentalLabel;
/**
* 车辆型号
*/
private String equipmentModel;
/**
* 机械种类
*/
private String equipmentType;
/**
* 燃料类型
*/
private String fuelType;
/**
* 车牌号码
*/
private String carNo;
/**
* 机械生产日期(格式:YYYYMMDD)
*/
private String manufacturingDate;
/**
* 车辆所有人(单位)
*/
private String owner;
/**
* 机械环保代码/产品识别码
*/
private String pin;
/**
* 整车(机)铭牌(Base64编码图片)
*/
private String vehiclePlaque;
/**
* 机械制造厂
*/
private String machMfr;
/**
* 发动机额定净功率
*/
private String engNetPower;
/**
* 联网状态:0=未联网;1=已联网
*/
private Integer machNetStatus;
/**
* 网络数据状态:0=不正常;1=正常
*/
private Integer machNetData;
}
\ No newline at end of file
package com.bme.access.upload.module.module.upload;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 运输车辆电子台账信息表
*
* @author yutyi
* @date 2020/07/28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TransportVehicleResultInfo {
private String vin;
private String model;
private String issueDate;
private String natureUse;
private String engineNumber;
private String numberPlate;
private String owner;
private String address;
private String registrationDate;
private String vehicleType;
private Integer vehicleEmissions;
private String drivingLicenseImage;
private String onBoardList;
private String cpys;
private String qu;
private String rllx;
private Integer isObd;
private String createTime;
private String msg;
}
\ No newline at end of file
package com.bme.access.upload.module.module.upload;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UploadTransportVehicleInfo {
/**
* 车牌号
*/
private String carNo;
/**
* 排放标准 国一-1,国二-2,国三-3,国四-4,国五-5,国六a-6,国六b-7,新能源-D
*/
private String emissionStandard;
/**
* 车队名称
*/
private String fleetName;
/**
* 燃料类型(如汽油、柴油、电动等)
*/
private String fuelType;
/**
* 联网状态(如在线、离线等)
*/
private String internetStatus;
/**
* 车牌颜色 0-蓝牌,1-黄牌,2-白牌,3-黑牌,4-新能源绿牌,5-其他,6-新能源绿黄牌
*/
private String licensePlateColor;
/**
* 注册日期(格式通常为yyyy-MM-dd)
*/
private String registrationDate;
/**
* 美国通用特征(推测为特定场景下的车辆特征,根据实际业务调整含义)
*/
private String usaGenaTure;
/**
* 驾驶证图片(通常为图片的URL或Base64编码字符串)
*/
private String drivingLicenseImg;
/**
* 车辆清单图片(通常为图片的URL或Base64编码字符串)
*/
private String vehicleListImg;
/**
* 车辆型号(如凯美瑞2023款、特斯拉Model 3等)
*/
private String vehicleMode;
/**
* 车辆类型(如小型轿车、货车、客车等)
*/
private String vehicleType;
/**
* 车辆识别码(VIN,唯一标识车辆的17位编码)
*/
private String vin;
/**
* 0=不是 1=是
*/
private String isOwned;
/**
* 车载终端7日数据
* 0=不正常;1=正常
*/
private String netData;
/**
* 传感器催化转化器图片(通常为图片的URL或Base64编码字符串)
*/
private String sensorCatalyticConverterImg;
}
\ No newline at end of file
package com.bme.access.upload.module.service;
import com.alibaba.fastjson.JSONObject;
import com.bme.access.upload.common.HttpUtils;
import com.bme.access.upload.module.dao.NoneRoadMovementInfoMapper;
import com.bme.access.upload.module.module.NoneRoadMovementInfoUrl;
import com.bme.access.upload.module.module.upload.NoneRoadMovementInfo;
import com.bme.access.upload.module.utils.BeanConverter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.List;
@Slf4j
@Service
public class NoneRoadMovementInfoService {
public void getAndUploadTransportVehicleDate() {
@Resource
private NoneRoadMovementInfoMapper noneRoadMovementInfoMapper;
@Autowired
private BeanConverter beanConverter;
@Autowired
private LoginService loginService;
private final static String NON_WAY_URL = "https://dctapi.soszyzg.com/dct/new/nonWayMachineAdd";
public void getNoWayDate() throws Exception {
List<NoneRoadMovementInfoUrl> noneRoadMovementInfoUrls = noneRoadMovementInfoMapper.selectNoneRoadMovementInfo1();
log.info("查询非道路数据有: {} 条 ", noneRoadMovementInfoUrls.size());
List<NoneRoadMovementInfo> noneRoadMovementInfos = beanConverter.convertNoneRoadMovementInfo(noneRoadMovementInfoUrls);
log.info("数据转换完成");
if (!CollectionUtils.isEmpty(noneRoadMovementInfos)) {
try {
loginService.login();
} catch (Exception e) {
log.error("更新token失败:{}", e.getMessage());
}
}
for (NoneRoadMovementInfo noneRoadMovementInfo : noneRoadMovementInfos) {
String bodyJson = JSONObject.toJSONString(noneRoadMovementInfo);
HttpUtils.sendPost(NON_WAY_URL, null, null, bodyJson);
}
log.info("上传非道路电子台账共: {}条", noneRoadMovementInfoUrls.size());
}
}
package com.bme.access.upload.module.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bme.access.upload.common.DateUtils;
import com.bme.access.upload.common.HttpUtils;
import com.bme.access.upload.module.dao.DataUploadTimeMapper;
import com.bme.access.upload.module.dao.TransportVehicleInfoMapper;
import com.bme.access.upload.module.module.TransportVehicleInfoUrl;
import com.bme.access.upload.module.module.upload.TransportVehicleResultInfo;
import com.bme.access.upload.module.module.upload.UploadTransportVehicleInfo;
import com.bme.access.upload.module.utils.BeanConverter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Slf4j
@Service
public class TransportVehicleInfoService {
public void getAndUploadTransportVehicleInfoList(Boolean aTrue) {
@Autowired
private DataUploadTimeMapper dataUploadTimeMapper;
@Autowired
private TransportVehicleInfoMapper transportVehicleInfoMapper;
@Autowired
private LoginService loginService;
@Autowired
private BeanConverter beanConverter;
private final static String ADD_VEHICLE_URL = "https://dctapi.soszyzg.com/dct/new/addVehicleInfo";
public void getAndUploadTransportVehicleInfoList(Boolean flag) {
try {
String uploadTime = dataUploadTimeMapper.getUploadTime(102);
if (StringUtils.isBlank(uploadTime)) {
uploadTime = DateUtils.dateToStr(new Date(System.currentTimeMillis() - 60 * 60 * 1000), "yyyy-MM-dd HH:mm:ss");
dataUploadTimeMapper.insertUploadTime(uploadTime, 102);
}
getAndUploadTransportVehicleInfo(uploadTime, Boolean.TRUE);
} catch (Exception e) {
log.error("上传车辆信息发生异常", e);
}
}
private void getAndUploadTransportVehicleInfo(String uploadTime, Boolean flag) throws Exception {
log.info("执行车辆信息上传线程");
List<TransportVehicleInfoUrl> uploadTransportVehicleInfoList = transportVehicleInfoMapper.getUploadTransportVehicleInfo(uploadTime);
if (!CollectionUtils.isEmpty(uploadTransportVehicleInfoList)) {
loginService.login();
}
for (TransportVehicleInfoUrl transportVehicleInfoUrl : uploadTransportVehicleInfoList) {
if (StringUtils.isEmpty(transportVehicleInfoUrl.getNumberPlate()) || transportVehicleInfoUrl.getNumberPlate().length() >= 10) {
log.info("车辆上传车牌异常={}", JSON.toJSONString(transportVehicleInfoUrl));
continue;
}
if (StringUtils.isEmpty(transportVehicleInfoUrl.getRegistrationDate())) {
transportVehicleInfoUrl.setRegistrationDate(LocalDate.now().with(TemporalAdjusters.firstDayOfYear()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
UploadTransportVehicleInfo uploadVehicleInfo = beanConverter.convertTransportVehicleInfo(transportVehicleInfoUrl);
try {
String bodyJson = JSONObject.toJSONString(uploadVehicleInfo);
HttpResponse httpResponse = HttpUtils.sendPost(ADD_VEHICLE_URL, null, null, bodyJson);
Thread.sleep(50);
} catch (Exception e) {
log.info("发生连接失败,重传");
try {
loginService.login();
String bodyJson = JSONObject.toJSONString(uploadVehicleInfo);
HttpUtils.sendPost(ADD_VEHICLE_URL, null, null, bodyJson);
Thread.sleep(50);
} catch (Exception ex) {
log.info("再次失败,将此数据存于失败表");
}
}
}
log.info("上传车辆信息{}条", uploadTransportVehicleInfoList.size());
if (!CollectionUtils.isEmpty(uploadTransportVehicleInfoList) && flag) {
dataUploadTimeMapper.updateUploadTimeByType(uploadTransportVehicleInfoList.get(uploadTransportVehicleInfoList.size() - 1).getCreateTime(), 102);
}
}
}
......@@ -2,11 +2,16 @@ package com.bme.access.upload.module.utils;
import com.bme.access.upload.module.module.InFactoryTransportVehicleInfoUrl;
import com.bme.access.upload.module.module.NoneRoadMovementInfoUrl;
import com.bme.access.upload.module.module.TransportVehicleInfoUrl;
import com.bme.access.upload.module.module.upload.InFactoryTransportVehicleInfo;
import com.bme.access.upload.module.module.upload.NoneRoadMovementInfo;
import com.bme.access.upload.module.module.upload.UploadTransportVehicleInfo;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
......@@ -65,4 +70,121 @@ public class BeanConverter {
}
return list;
}
public UploadTransportVehicleInfo convertTransportVehicleInfo(TransportVehicleInfoUrl item) {
UploadTransportVehicleInfo info = new UploadTransportVehicleInfo();
info.setCarNo(item.getNumberPlate());
if (item.getVehicleEmissions() == null) {
info.setEmissionStandard("X");
} else {
if (item.getVehicleEmissions().equals(99)) {
info.setEmissionStandard("D");
} else {
info.setEmissionStandard(item.getVehicleEmissions().toString());
}
}
info.setFleetName(item.getAddress());
info.setFuelType(item.getFuelType());
if (Objects.isNull(item.getOnlineStatus())) {
info.setInternetStatus("1");
} else {
info.setInternetStatus(item.getOnlineStatus());
}
// 车牌颜色 0-蓝牌,1-黄牌,2-白牌,3-黑牌,4-新能源绿牌,5-其他,6-新能源绿黄牌
if (Objects.isNull(item.getPlateColor())) {
info.setLicensePlateColor("5");
} else {
String color = "5";
if (item.getPlateColor() == 1) {
color = "0";
}
if (item.getPlateColor() == 2) {
color = "1";
}
if (item.getPlateColor() == 3) {
color = "2";
}
if (item.getPlateColor() == 4) {
color = "3";
}
if (item.getPlateColor() == 5) {
color = "4";
}
if (item.getPlateColor() == 6) {
color = "6";
}
info.setLicensePlateColor(color);
}
info.setRegistrationDate(item.getRegistrationDate());
if (StringUtils.isBlank(item.getNatureUse())) {
info.setUsaGenaTure("货运");
} else {
info.setUsaGenaTure(item.getNatureUse());
}
if (StringUtils.isNotBlank(item.getDrivingLicenseImage())) {
info.setDrivingLicenseImg(Base64Utils.getBase64ByUrl(item.getDrivingLicenseImage()));
}
if (StringUtils.isNotBlank(item.getOnBoardList())) {
info.setVehicleListImg(Base64Utils.getBase64ByUrl(item.getOnBoardList()));
}
info.setVehicleMode(item.getModel());
info.setVehicleType(item.getVehicleType());
info.setVin(item.getVin());
if (StringUtils.isNotBlank(item.getOwner()) && item.getOwner().contains("成都锦宸")) {
info.setIsOwned("1");
} else {
info.setIsOwned("0");
}
info.setNetData("1");
info.setSensorCatalyticConverterImg(null);
return info;
}
public List<NoneRoadMovementInfo> convertNoneRoadMovementInfo(List<NoneRoadMovementInfoUrl> noneRoadMovementInfoUrls) {
if (CollectionUtils.isEmpty(noneRoadMovementInfoUrls)) {
return Lists.newArrayList();
}
List<NoneRoadMovementInfo> list = Lists.newArrayList();
for (NoneRoadMovementInfoUrl item : noneRoadMovementInfoUrls) {
NoneRoadMovementInfo info = new NoneRoadMovementInfo();
info.setHbCarNo(item.getEnvironmentCode());
if (item.getVehicleEmissions() == null) {
info.setEmissionStandard("X");
} else {
if (item.getVehicleEmissions().equals("99")) {
info.setEmissionStandard("D");
} else {
info.setEmissionStandard(item.getVehicleEmissions());
}
}
info.setEngineManufacturer(item.getEngineVendor());
info.setEngineModel(item.getEngineModel());
if (StringUtils.isNotBlank(item.getEngineImage())) {
info.setEnginePlaque(Base64Utils.getBase64ByUrl(item.getEngineImage()));
}
info.setEngineSerialNumber(item.getEnvironmentSN());
if (StringUtils.isNotBlank(item.getVehicleLable())) {
info.setEnvIronMentalLabel(Base64Utils.getBase64ByUrl(item.getVehicleLable()));
}
info.setEquipmentModel(item.getMechanicalModel());
info.setEquipmentType(item.getMechanicalType());
info.setFuelType(item.getFuelType());
info.setCarNo(item.getNumberPlate());
info.setManufacturingDate(item.getProductionDate());
info.setOwner(item.getOwener());
info.setPin(item.getMechanicalEnvironment());
if (StringUtils.isNotBlank(item.getDeviceImage())) {
info.setVehiclePlaque(Base64Utils.getBase64ByUrl(item.getDeviceImage()));
}
info.setMachMfr(null);
info.setEngNetPower(null);
info.setMachNetStatus(1);
info.setMachNetData(1);
list.add(info);
}
return list;
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bme.access.upload.module.dao.NoneRoadMovementInfoMapper">
<select id="selectNoneRoadMovementInfo"
resultType="com.bme.access.upload.module.module.NoneRoadMovementInfoUrl">
select
Environment_Code environmentCode,
Mechanical_Environment mechanicalEnvironment,
Mechanical_model mechanicalModel,
Production_date productionDate,
vehicle_type vehicleType,
engine_num engineNum,
engine_vendor engineVendor,
engine_model engineModel,
engine_nameplate engineNameplate,
car_nameplate carNameplate,
vehicle_lable vehicleLable,
Vehicle_Emissions vehicleEmissions,
cphm,
Engine_Image engineImage,
DTime dtime
from Non_Road_Movement_Info where DTime > #{uploadTime}
</select>
<select id="selectNoneRoadMovementInfo1"
resultType="com.bme.access.upload.module.module.NoneRoadMovementInfoUrl">
select
Environment_Code environmentCode,
Production_date productionDate,
Vehicle_Emissions vehicleEmissions,
Mechanical_Environment mechanicalEnvironment,
Engine_Image engineImage,
DTime dtime,
Device_Image deviceImage,
Environment_SN environmentSN,
Engine_Type engineType,
fuel_type fuelType,
Mechanical_Type mechanicalType,
Owener owener,
Environment_Label_Image environmentLabelImage,
Number_Plate numberPlate,
Mechanical_model mechanicalModel,
engine_vendor engineVendor,
engine_model engineModel,
engine_nameplate engineNameplate,
car_nameplate carNameplate,
vehicle_lable vehicleLable
from Non_Road_Movement_Info
</select>
<select id="selectNoneRoadMovementInfoCount" resultType="java.lang.Integer">
select count(1) from Non_Road_Movement_Info
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bme.access.upload.module.dao.TransportVehicleInfoMapper">
<select id="getUploadTransportVehicleInfo"
resultType="com.bme.access.upload.module.module.TransportVehicleInfoUrl">
SELECT
Number_plate numberPlate,
VIN vin,
Model model,
issue_date issueDate,
nature_use natureUse,
Engine_number engineNumber,
Owener owner,
Address address,
Registration_date registrationDate,
Vehicle_Type vehicleType,
Vehicle_Emissions vehicleEmissions,
Driving_license_Image drivingLicenseImage,
Vehilce_Head_Img vehicleHeadImg ,
VehicleLicense_Verification_Img vehicleLicenseVerificationImg,
VIN_Verification_Img vinVerificationImg,
On_board_list onBoardList,
DTime createTime
fuel_type fuelType,
plate_color plateColor,
OBD isObd,
registration_time registrationDate,
Engine_Image engineImage,
online_status onlineStatus,
latest_inspection_date latestInspectionDate
FROM
New_Transport_Vehicle_Info_Url
WHERE Vehicle_Emissions > 0
AND DTime>#{uploadTime} order by DTime asc
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment