Commit 66c9f6bf authored by wujiang's avatar wujiang

提交

parent dfb04f22
...@@ -33,6 +33,6 @@ public interface IWlCarMileageService extends IService<WlCarMileage> { ...@@ -33,6 +33,6 @@ public interface IWlCarMileageService extends IService<WlCarMileage> {
//根据iot编码查询是否有未结束里程 //根据iot编码查询是否有未结束里程
Boolean getUncompleteMileagByIotCode(String iotCode); Boolean getUncompleteMileagByIotCode(String iotCode);
Double getTotalTravelByIotCodeAndDate(String date,String iotCode); Map<String,Double> getTotalTravelByIotCodeAndDate(String date);
Map<String,Double> getTotalTravelByIotCodeAndDateProd(String StartDate,String endDate); Map<String,Double> getTotalTravelByIotCodeAndDateProd(String StartDate,String endDate);
} }
...@@ -1648,14 +1648,15 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1648,14 +1648,15 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList()); list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
} }
if (list.size() > 0) { if (list.size() > 0) {
Map<String,Double> map = iWlCarMileageService.getTotalTravelByIotCodeAndDate(date);
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
MileageDto mileageDto = new MileageDto(); MileageDto mileageDto = new MileageDto();
Car car = list.get(i); Car car = list.get(i);
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDate(date, car.getIotCode());
mileageDto.setCarNum(car.getCarNum()); mileageDto.setCarNum(car.getCarNum());
mileageDto.setCarCode(car.getRemark()); mileageDto.setCarCode(car.getRemark());
mileageDto.setBizOrgName(car.getBizOrgName()); mileageDto.setBizOrgName(car.getBizOrgName());
mileageDto.setIotCode(date + "::" + car.getIotCode()); mileageDto.setIotCode(date + "::" + car.getIotCode());
Double totalTravel = map.get(car.getIotCode());
if (totalTravel != null) { if (totalTravel != null) {
// mileageDto.setTotalTravel((totalTravel / carMaxTravel) * 100); // mileageDto.setTotalTravel((totalTravel / carMaxTravel) * 100);
mileageDto.setTotalTravel(totalTravel); mileageDto.setTotalTravel(totalTravel);
...@@ -1687,10 +1688,10 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1687,10 +1688,10 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList()); list = list.stream().filter(car -> car.getBizOrgName().contains(keyWord)).collect(Collectors.toList());
} }
if (list.size() > 0) { if (list.size() > 0) {
Map<String,Double> map = iWlCarMileageService.getTotalTravelByIotCodeAndDate(date);
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
CarExportDto carExportDto = new CarExportDto(); CarExportDto carExportDto = new CarExportDto();
Car car = list.get(i); Car car = list.get(i);
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDate(date, car.getIotCode());
carExportDto.setCode(car.getRemark()); carExportDto.setCode(car.getRemark());
carExportDto.setCarNumber(car.getCarNum()); carExportDto.setCarNumber(car.getCarNum());
carExportDto.setDriver(car.getDriver()); carExportDto.setDriver(car.getDriver());
...@@ -1698,6 +1699,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1698,6 +1699,7 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
carExportDto.setOrgName(car.getBizOrgName()); carExportDto.setOrgName(car.getBizOrgName());
carExportDto.setStandard(car.getStandard()); carExportDto.setStandard(car.getStandard());
carExportDto.setDisplacement(car.getDisplacement()); carExportDto.setDisplacement(car.getDisplacement());
Double totalTravel=map.get(car.getIotCode());
if (totalTravel != null) { if (totalTravel != null) {
carExportDto.setTotalTravel(String.format("%.1f", totalTravel) + "KM"); carExportDto.setTotalTravel(String.format("%.1f", totalTravel) + "KM");
carExportDto.setTotalTravelValue(String.format("%.1f", totalTravel)); carExportDto.setTotalTravelValue(String.format("%.1f", totalTravel));
...@@ -1728,7 +1730,8 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1728,7 +1730,8 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
calendar.set(Calendar.MONTH, Integer.parseInt(dates[1])); calendar.set(Calendar.MONTH, Integer.parseInt(dates[1]));
for (int i = 0; i < calendar.getActualMaximum(Calendar.DATE); i++) { for (int i = 0; i < calendar.getActualMaximum(Calendar.DATE); i++) {
String dateStr = i < 9 ? dates[1] + "-0" + (i + 1) : dates[1] + "-" + (i + 1); String dateStr = i < 9 ? dates[1] + "-0" + (i + 1) : dates[1] + "-" + (i + 1);
Double totalTravel = iWlCarMileageService.getTotalTravelByIotCodeAndDate(dateStr, datas[1]); Map<String,Double> rmap = iWlCarMileageService.getTotalTravelByIotCodeAndDate(dateStr);
Double totalTravel = rmap.get(datas[1]);
if (totalTravel == null) { if (totalTravel == null) {
totalTravel = 0.0; totalTravel = 0.0;
} }
......
...@@ -535,25 +535,26 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -535,25 +535,26 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
} }
@Override @Override
public Double getTotalTravelByIotCodeAndDate(String date, String iotCode) { public Map<String,Double> getTotalTravelByIotCodeAndDate(String date) {
if (StringUtils.isEmpty(date)) { if (StringUtils.isEmpty(date)) {
date = DateUtil.format(new Date(), "yyyy-MM"); date = DateUtil.format(new Date(), "yyyy-MM");
} }
Double totalTravel = 0.0; Double totalTravel = 0.0;
LambdaQueryWrapper<WlCarMileage> wrapper = new LambdaQueryWrapper<WlCarMileage>(); QueryWrapper<WlCarMileage> wrapper = new QueryWrapper<WlCarMileage>();
wrapper.eq(WlCarMileage::getIotCode, iotCode); wrapper.select("sum(travel) AS travel","iot_code AS iotCode");
wrapper.ge(WlCarMileage::getTravel, 0.5); // wrapper.lambda().eq(WlCarMileage::getIotCode, iotCode);
wrapper.isNotNull(WlCarMileage::getEndTime); wrapper.lambda().ge(WlCarMileage::getTravel, 0.5);
wrapper.isNotNull(WlCarMileage::getStartTime); wrapper.lambda().isNotNull(WlCarMileage::getEndTime);
wrapper.like(WlCarMileage::getStartTime, date); wrapper.lambda().isNotNull(WlCarMileage::getStartTime);
List<WlCarMileage> list = this.list(wrapper); wrapper.lambda().like(WlCarMileage::getStartTime, date);
for (WlCarMileage wl : list) { wrapper.lambda().groupBy(WlCarMileage::getIotCode);
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回 List<Map<String,Object>> list = this.baseMapper.selectMaps(wrapper);
if (!org.springframework.util.ObjectUtils.isEmpty(wl.getTakeTime()) && !org.springframework.util.ObjectUtils.isEmpty(wl.getTravel()) && ((wl.getTravel() / (wl.getTakeTime() / 3600000.0)) < CAR_MAX_SPEED)) { Map<String,Double> rmap = new HashMap<>();
totalTravel += wl.getTravel(); for(Map<String,Object> map : list)
} {
rmap.put(String.valueOf(map.get("iotCode")),Double.valueOf(String.valueOf(map.get("travel"))));
} }
return totalTravel; return rmap;
} }
@Override @Override
......
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