Commit 416120d0 authored by caotao's avatar caotao

1.车辆月度里程统计由原重复列表修改为基础表格。

parent 6a553bcb
......@@ -1450,8 +1450,8 @@ public class CarController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@RequestMapping(value = "/getCarMileageInfoByMoth", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "车辆统计-按照月份统计车辆里程", notes = "车辆统计-按照月份统计车辆里程")
public Page<MileageDto> getCarMileageInfoByMoth(@RequestParam String date) {
return iCarService.getCarMileageInfoByMoth(date);
public BasicTableDataDto getCarMileageInfoByMoth(@RequestParam String date,@RequestParam Integer current,@RequestParam Integer size) {
return iCarService.getCarMileageInfoByMoth(date,current,size);
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@RequestMapping(value = "/exportCarMileageInfoByMoth", method = RequestMethod.GET)
......
......@@ -86,7 +86,7 @@ public class BasicTableDataDto {
// }
// ]
// }
private MypageDto dataGridMock;
private DataGridMock dataGridMock;
private List<ColModel> colModel ;
}
......@@ -9,6 +9,10 @@ public class CarExportDto {
private String code;
@Excel(name="车牌号")
private String carNumber;
@Excel(name = "司机")
private String driver;
@Excel(name = "联系电话")
private String phone;
@Excel(name="所属单位")
private String orgName;
@Excel(name="车辆型号")
......@@ -17,4 +21,5 @@ public class CarExportDto {
private String displacement;
@Excel(name = "里程数(km)")
private String totalTravel;
}
package com.yeejoin.equipmanage.dto;
import io.swagger.models.auth.In;
import lombok.Data;
import java.util.List;
@Data
public class DataGridMock {
private int current;
private int total;
private boolean pagination;
private int totalPage;
private List dataList;
public DataGridMock(int current, int total, boolean pagination, int totalPage, List dataList) {
this.current = current;
this.total = total;
this.pagination = pagination;
this.totalPage = totalPage;
this.dataList = dataList;
}
}
......@@ -4,10 +4,16 @@ import lombok.Data;
@Data
public class MileageDto {
private String carCode;
private String carNum;
private Double totalTravel;
private String total;
//iotCode+date
private String iotCode;
//车辆编号
private String carCode;
//车牌号
private String carNum;
//百分比
private Double totalTravel;
//当月总里程
private String total;
//车辆排名
private String number;
//iotCode+date
private String iotCode;
}
package com.yeejoin.equipmanage.dto;
import io.swagger.models.auth.In;
import lombok.Data;
import java.util.List;
@Data
public class MypageDto {
private Integer current ;
private Integer total;
private Boolean pagination;
private Integer totalPage;
private List dataList;
private Integer pageSize;
}
......@@ -203,7 +203,7 @@ public interface ICarService extends IService<Car> {
Page<CarEquipAlarmInfoDto> getCarEquipAlarmInfoDto();
List<ChartIntegerDto>getCarBelongAreaInfo() ;
Page<CarAreaInfoDto> getCarAreaInfo(String areaName ) ;
Page<MileageDto> getCarMileageInfoByMoth(String date);
BasicTableDataDto getCarMileageInfoByMoth(String date,Integer current,Integer pageSize);
List<CarExportDto> exportCarMileageInfoByMoth(String date);
ZZChartsDto getCarMileageInfoByMothOFDay(String iotCode);
Page<CarExceptionDto> getCarExcepitonTrack(Integer type);
......
......@@ -1884,8 +1884,12 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
}
@Override
public Page<MileageDto> getCarMileageInfoByMoth(String date) {
Page<MileageDto> page = new Page<>();
public BasicTableDataDto getCarMileageInfoByMoth(String date,Integer current,Integer pageSize) {
BasicTableDataDto basicTableDataDto = new BasicTableDataDto();
List<ColModel> colModels = new ArrayList<>();
colModels.add(new ColModel("carNum","车牌号"));
colModels.add(new ColModel("carCode","编号"));
colModels.add(new ColModel("total","当月里程"));
List<MileageDto> mileageDtoList = new ArrayList<>();
List<Car> list = this.list();
if (list.size() > 0) {
......@@ -1896,21 +1900,21 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
mileageDto.setCarCode(list.get(i).getRemark());
mileageDto.setIotCode(date + "::" + list.get(i).getIotCode());
if (totalTravel != null) {
mileageDto.setTotalTravel((totalTravel / carMaxTravel) * 100);
// mileageDto.setTotalTravel((totalTravel / carMaxTravel) * 100);
mileageDto.setTotalTravel(totalTravel);
} else {
totalTravel= 0.0;
mileageDto.setTotalTravel(totalTravel);
}
mileageDto.setTotal(totalTravel+"KM");
mileageDto.setTotal(String.format("%.1f",totalTravel)+"KM");
mileageDtoList.add(mileageDto);
}
}
mileageDtoList = mileageDtoList.stream().sorted(Comparator.comparing(MileageDto::getTotalTravel).reversed()).collect(Collectors.toList());
page.setRecords(mileageDtoList);
page.setTotal(mileageDtoList.size());
page.setCurrent(1);
page.setSize(10);
return page;
DataGridMock mypageDto=new DataGridMock(current,mileageDtoList.size(),true,current,mileageDtoList.subList((current-1)*pageSize,current*pageSize));
basicTableDataDto.setDataGridMock(mypageDto);
basicTableDataDto.setColModel(colModels);
return basicTableDataDto;
}
@Override
......@@ -1924,6 +1928,8 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
Car car = list.get(i);
carExportDto.setCode(car.getCode());
carExportDto.setCarNumber(car.getCarNum());
carExportDto.setDriver(car.getDriver());
carExportDto.setPhone(car.getPhone());
carExportDto.setOrgName(car.getBizOrgName());
carExportDto.setStandard(car.getStandard());
carExportDto.setDisplacement(car.getDisplacement());
......
package com.yeejoin.equipmanage.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -24,11 +26,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -75,7 +79,9 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
private Double mileageParameter;
@Resource
private EmqKeeper emqKeeper;
@Autowired
@Lazy
private IWlCarMileageService iWlCarMileageService;
public static List<String> getDayByMonth(Date date) {
List<String> data = new ArrayList<>();
try {
......@@ -478,12 +484,44 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
@Override
public Double getTotalTravelByIotCodeAndDate(String date, String iotCode) {
return this.baseMapper.getTotalTravelByIotCodeAndDate(date, iotCode);
if(StringUtils.isEmpty(date)){
date = DateUtil.format(new Date(),"yyyy-MM");
}
Double totalTravel = 0.0;
LambdaQueryWrapper<WlCarMileage> wrapper = new LambdaQueryWrapper<WlCarMileage>();
wrapper.eq(WlCarMileage::getIotCode,iotCode);
wrapper.ge(WlCarMileage::getTravel, 0.5);
wrapper.isNotNull(WlCarMileage::getEndTime);
wrapper.isNotNull(WlCarMileage::getStartTime);
wrapper.like(WlCarMileage::getStartTime,date);
List<WlCarMileage> list = iWlCarMileageService.list(wrapper);
for (WlCarMileage wl : list) {
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
if (!org.springframework.util.ObjectUtils.isEmpty(wl.getTakeTime()) && !org.springframework.util.ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED)) {
totalTravel += wl.getTravel();
}
}
return totalTravel;
}
@Override
public Double getTotalTravelByIotCodeAndDateProd(String startDate, String endDate, String iotCode) {
return this.baseMapper.getTotalTravelByIotCodeAndDateProd(startDate, endDate, iotCode);
Double totalTravel = 0.0;
LambdaQueryWrapper<WlCarMileage> wrapper = new LambdaQueryWrapper<WlCarMileage>();
wrapper.eq(WlCarMileage::getIotCode,iotCode);
wrapper.ge(WlCarMileage::getTravel, 0.5);
wrapper.isNotNull(WlCarMileage::getEndTime);
wrapper.isNotNull(WlCarMileage::getStartTime);
wrapper.ge(WlCarMileage::getEndTime,endDate);
wrapper.le(WlCarMileage::getStartTime,startDate);
List<WlCarMileage> list = iWlCarMileageService.list(wrapper);
for (WlCarMileage wl : list) {
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
if (!org.springframework.util.ObjectUtils.isEmpty(wl.getTakeTime()) && !org.springframework.util.ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED)) {
totalTravel += wl.getTravel();
}
}
return totalTravel;
}
/**
......
......@@ -58,8 +58,7 @@
SELECT SUM(travel)
FROM wl_car_mileage
WHERE date LIKE concat('%',#{date},'%')
AND
iot_code = #{iotCode}
AND iot_code = #{iotCode}
</select>
<select id ="getTotalTravelByIotCodeAndDateProd" resultType="Double">
......
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