Commit 416120d0 authored by caotao's avatar caotao

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

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