Commit af3fc8a6 authored by 刘林's avatar 刘林

Merge remote-tracking branch 'origin/develop_dl' into develop_dl

parents 5538a8ef c47d43d2
package com.yeejoin.equipmanage.common.entity; package com.yeejoin.equipmanage.common.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity; import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -20,6 +21,7 @@ import java.util.Date; ...@@ -20,6 +21,7 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("wl_car_mileage")
@ApiModel(value="WlCarMileage对象", description="车量里程表") @ApiModel(value="WlCarMileage对象", description="车量里程表")
public class WlCarMileage extends BaseEntity { public class WlCarMileage extends BaseEntity {
......
...@@ -11,6 +11,7 @@ import com.yeejoin.equipmanage.service.IWlCarMileageService; ...@@ -11,6 +11,7 @@ import com.yeejoin.equipmanage.service.IWlCarMileageService;
import com.yeejoin.equipmanage.utils.BeanUtil; import com.yeejoin.equipmanage.utils.BeanUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
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;
...@@ -36,234 +37,235 @@ import java.util.*; ...@@ -36,234 +37,235 @@ import java.util.*;
@Api(tags = "车量里程表Api") @Api(tags = "车量里程表Api")
@RequestMapping(value = "/wl-car-mileage", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @RequestMapping(value = "/wl-car-mileage", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class WlCarMileageController { public class WlCarMileageController {
@Value("${car.max.speed:100}") @Autowired
private Integer CAR_MAX_SPEED ; IWlCarMileageService iWlCarMileageService;
@Value("${car.max.speed:100}")
private Integer CAR_MAX_SPEED;
@Autowired /**
IWlCarMileageService iWlCarMileageService; * 新增车量里程表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增车量里程表", notes = "新增车量里程表")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public boolean saveWlCarMileage(HttpServletRequest request, @RequestBody WlCarMileage wlCarMileage) {
return iWlCarMileageService.save(wlCarMileage);
}
/** /**
* 新增车量里程表 * 根据id删除
* *
* @return * @param id
*/ * @return
@RequestMapping(value = "/save", method = RequestMethod.POST) */
@ApiOperation(httpMethod = "POST", value = "新增车量里程表", notes = "新增车量里程表") @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean saveWlCarMileage(HttpServletRequest request, @RequestBody WlCarMileage wlCarMileage) { @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
return iWlCarMileageService.save(wlCarMileage); public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
} return iWlCarMileageService.removeById(id);
}
/** /**
* 根据id删除 * 修改车量里程表
* *
* @param id * @return
* @return */
*/ @RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @ApiOperation(httpMethod = "PUT", value = "修改车量里程表", notes = "修改车量里程表")
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除") @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) public boolean updateByIdWlCarMileage(HttpServletRequest request, @RequestBody WlCarMileage wlCarMileage) {
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) { return iWlCarMileageService.updateById(wlCarMileage);
return iWlCarMileageService.removeById(id); }
}
/** /**
* 修改车量里程表 * 根据id查询
* *
* @return * @param id
*/ * @return
@RequestMapping(value = "/updateById", method = RequestMethod.PUT) */
@ApiOperation(httpMethod = "PUT", value = "修改车量里程表", notes = "修改车量里程表") @RequestMapping(value = "/{id}", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public boolean updateByIdWlCarMileage(HttpServletRequest request, @RequestBody WlCarMileage wlCarMileage) { @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
return iWlCarMileageService.updateById(wlCarMileage); public WlCarMileage selectById(HttpServletRequest request, @PathVariable Long id) {
} return iWlCarMileageService.getById(id);
}
/** /**
* 根据id查询 * 列表分页查询
* *
* @param id * @return
* @return */
*/ @RequestMapping(value = "/list", method = RequestMethod.GET)
@RequestMapping(value = "/{id}", method = RequestMethod.GET) @ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询") @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) public IPage<WlCarMileage> listPage(String pageNum, String pageSize, WlCarMileage wlCarMileage) {
public WlCarMileage selectById(HttpServletRequest request, @PathVariable Long id) { Page<WlCarMileage> pageBean;
return iWlCarMileageService.getById(id); QueryWrapper<WlCarMileage> wlCarMileageQueryWrapper = new QueryWrapper<>();
} Class<? extends WlCarMileage> aClass = wlCarMileage.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(wlCarMileage);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else if (type.equals(Date.class)) {
Date fileValue = (Date) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<WlCarMileage> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iWlCarMileageService.page(pageBean, wlCarMileageQueryWrapper);
return page;
}
/** /**
* 列表分页查询 * 列表分页查询
* *
* @return * @return
*/ */
@RequestMapping(value = "/list", method = RequestMethod.GET) @RequestMapping(value = "/page", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询") @ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public IPage<WlCarMileage> listPage(String pageNum, String pageSize, WlCarMileage wlCarMileage) { public CarTravelDto page(Integer pageNum, Integer pageSize, WlCarMileage wlCarMileage) {
Page<WlCarMileage> pageBean; Page<WlCarMileage> pageBean;
QueryWrapper<WlCarMileage> wlCarMileageQueryWrapper = new QueryWrapper<>(); if (pageNum == null || pageSize == null) {
Class<? extends WlCarMileage> aClass = wlCarMileage.getClass(); pageBean = new Page<>(0, Long.MAX_VALUE);
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> { } else {
try { pageBean = new Page<>(pageNum, pageSize);
field.setAccessible(true); }
Object o = field.get(wlCarMileage); //只查询已完成的轨迹
if (o != null) { wlCarMileage.setComplete(true);
Class<?> type = field.getType(); Page<WlCarMileage> page = iWlCarMileageService.page(pageBean, wlCarMileage);
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else if (type.equals(Date.class)) {
Date fileValue = (Date) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(wlCarMileage);
wlCarMileageQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<WlCarMileage> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iWlCarMileageService.page(pageBean, wlCarMileageQueryWrapper);
return page;
}
/** SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
* 列表分页查询 CarTravelDto carTravelDto = new CarTravelDto();
* carTravelDto.setTotal(page.getTotal());
* @return long totalTime = 0;
*/ double totalTravel = 0;
@RequestMapping(value = "/page", method = RequestMethod.GET) List<WlCarMileageDto> list = new ArrayList<WlCarMileageDto>();
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询") for (WlCarMileage wl : page.getRecords()) {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) WlCarMileageDto wlCarMileageDto = new WlCarMileageDto();
public CarTravelDto page(Integer pageNum, Integer pageSize, WlCarMileage wlCarMileage) { wl.setTime(millisToStringShort(wl.getTakeTime()));
Page<WlCarMileage> pageBean; totalTravel += wl.getTravel();
if (pageNum == null || pageSize == null) { totalTime += wl.getTakeTime();
pageBean = new Page<>(0, Long.MAX_VALUE); BeanUtil.copyPropertiesIgnoreNull(wl, wlCarMileageDto);
} else { wlCarMileageDto.setStartTime(sdf.format(wl.getStartTime()));
pageBean = new Page<>(pageNum, pageSize); wlCarMileageDto.setEndTime(sdf.format(wl.getEndTime()));
} //判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
//只查询已完成的轨迹 if ((!ObjectUtils.isEmpty(wl.getTakeTime()) && (!ObjectUtils.isEmpty(wl.getTravel()) && (wl.getTravel() / (wl.getTakeTime() / 3600000)) < CAR_MAX_SPEED)))
wlCarMileage.setComplete(true); {
Page<WlCarMileage> page = iWlCarMileageService.page(pageBean, wlCarMileage); list.add(wlCarMileageDto);
}
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); }
CarTravelDto carTravelDto = new CarTravelDto(); carTravelDto.setRecords(list);
carTravelDto.setTotal(page.getTotal()); carTravelDto.setTotal(Long.valueOf(list.size()));
long totalTime = 0;
double totalTravel = 0;
List<WlCarMileageDto> list = new ArrayList<WlCarMileageDto>();
for (WlCarMileage wl : page.getRecords()) {
WlCarMileageDto wlCarMileageDto = new WlCarMileageDto();
wl.setTime(millisToStringShort(wl.getTakeTime()));
totalTravel += wl.getTravel();
totalTime += wl.getTakeTime();
BeanUtil.copyPropertiesIgnoreNull(wl, wlCarMileageDto);
wlCarMileageDto.setStartTime(sdf.format(wl.getStartTime()));
wlCarMileageDto.setEndTime(sdf.format(wl.getEndTime()));
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
if((wlCarMileage.getTravel()/(wlCarMileage.getTakeTime()/3600000))<CAR_MAX_SPEED){
list.add(wlCarMileageDto);
}
}
carTravelDto.setRecords(list);
// // 初始化format格式 // // 初始化format格式
// SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); // SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
// // 设置时区,跳过此步骤会默认设置为"GMT+08:00" 得到的结果会多出来8个小时 // // 设置时区,跳过此步骤会默认设置为"GMT+08:00" 得到的结果会多出来8个小时
// dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+00:00")); // dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
// //
// String timeStr = dateFormat.format(totalTime); // String timeStr = dateFormat.format(totalTime);
carTravelDto.setTotalTime(millisToStringShort(totalTime)); carTravelDto.setTotalTime(millisToStringShort(totalTime));
BigDecimal two = BigDecimal.valueOf(totalTravel); BigDecimal two = BigDecimal.valueOf(totalTravel);
double result = two.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); double result = two.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
carTravelDto.setTotalTravel(result); carTravelDto.setTotalTravel(result);
return carTravelDto; return carTravelDto;
} }
public String millisToStringShort(long millis) { public String millisToStringShort(long millis) {
StringBuffer strBuilder = new StringBuffer(); StringBuffer strBuilder = new StringBuffer();
long temp = millis; long temp = millis;
long hper = 60 * 60 * 1000; long hper = 60 * 60 * 1000;
long mper = 60 * 1000; long mper = 60 * 1000;
long sper = 1000; long sper = 1000;
if (temp / hper > 0) { if (temp / hper > 0) {
if ((temp / hper) < 10) { if ((temp / hper) < 10) {
strBuilder.append(0); strBuilder.append(0);
} }
strBuilder.append(temp / hper).append(":"); strBuilder.append(temp / hper).append(":");
} else { } else {
strBuilder.append("00").append(":"); strBuilder.append("00").append(":");
} }
temp = temp % hper; temp = temp % hper;
if (temp / mper > 0) { if (temp / mper > 0) {
if ((temp / mper) < 10) { if ((temp / mper) < 10) {
strBuilder.append(0); strBuilder.append(0);
} }
strBuilder.append(temp / mper).append(":"); strBuilder.append(temp / mper).append(":");
} else { } else {
strBuilder.append("00").append(":"); strBuilder.append("00").append(":");
} }
temp = temp % mper; temp = temp % mper;
if (temp / sper > 0) { if (temp / sper > 0) {
if ((temp / sper) < 10) { if ((temp / sper) < 10) {
strBuilder.append(0); strBuilder.append(0);
} }
strBuilder.append(temp / sper); strBuilder.append(temp / sper);
} else { } else {
strBuilder.append("00"); strBuilder.append("00");
} }
return strBuilder.toString(); return strBuilder.toString();
} }
/** /**
* 获取轨迹 * 获取轨迹
* *
* @return * @return
*/ */
@RequestMapping(value = "/travel", method = RequestMethod.GET) @RequestMapping(value = "/travel", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取轨迹", notes = "获取轨迹") @ApiOperation(httpMethod = "GET", value = "获取轨迹", notes = "获取轨迹")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public List<Coordinate> travel(long id) { public List<Coordinate> travel(long id) {
return iWlCarMileageService.getCoordinateList(id); return iWlCarMileageService.getCoordinateList(id);
} }
/** /**
* 获取日历 * 获取日历
* *
* @return * @return
*/ */
@RequestMapping(value = "/calendar", method = RequestMethod.GET) @RequestMapping(value = "/calendar", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取日历", notes = "获取日历") @ApiOperation(httpMethod = "GET", value = "获取日历", notes = "获取日历")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public Map<String, Boolean> calendar(@RequestParam("id") long id, public Map<String, Boolean> calendar(@RequestParam("id") long id,
@DateTimeFormat(pattern = "yyyy-MM") @RequestParam("date") Date date) { @DateTimeFormat(pattern = "yyyy-MM") @RequestParam("date") Date date) {
return iWlCarMileageService.getCalender(id, date); return iWlCarMileageService.getCalender(id, date);
} }
/** /**
* 里程切分 * 里程切分
*/ */
@RequestMapping(value = "/mileageSegmentation", method = RequestMethod.GET) @RequestMapping(value = "/mileageSegmentation", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "里程切分", notes = "里程切分") @ApiOperation(httpMethod = "GET", value = "里程切分", notes = "里程切分")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public void mileageSegmentation() { public void mileageSegmentation() {
iWlCarMileageService.mileageSegmentation(); iWlCarMileageService.mileageSegmentation();
} }
} }
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.equipmanage.common.entity.Car; import com.yeejoin.equipmanage.common.entity.Car;
import com.yeejoin.equipmanage.common.entity.WlCarMileage; import com.yeejoin.equipmanage.common.entity.WlCarMileage;
import com.yeejoin.equipmanage.common.utils.CoordinateUtil; import com.yeejoin.equipmanage.common.utils.CoordinateUtil;
import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.common.utils.HttpUtil; import com.yeejoin.equipmanage.common.utils.HttpUtil;
import com.yeejoin.equipmanage.controller.Coordinate; import com.yeejoin.equipmanage.controller.Coordinate;
import com.yeejoin.equipmanage.fegin.IotFeign; import com.yeejoin.equipmanage.fegin.IotFeign;
...@@ -45,6 +46,7 @@ import java.text.ParseException; ...@@ -45,6 +46,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 车量里程表 服务实现类 * 车量里程表 服务实现类
...@@ -58,7 +60,8 @@ import java.util.*; ...@@ -58,7 +60,8 @@ import java.util.*;
@EnableAsync @EnableAsync
public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlCarMileage> public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlCarMileage>
implements IWlCarMileageService { implements IWlCarMileageService {
@Value("${car.max.speed:100}")
private Integer CAR_MAX_SPEED;
@Autowired @Autowired
IotFeign iotFeign; IotFeign iotFeign;
...@@ -241,19 +244,23 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -241,19 +244,23 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
c.setTime(date); c.setTime(date);
c.add(Calendar.MONTH, 1); c.add(Calendar.MONTH, 1);
daylist.addAll(getDayByMonth(c.getTime())); daylist.addAll(getDayByMonth(c.getTime()));
List<Map<String, Object>> hasList = this.listMaps(new QueryWrapper<WlCarMileage>() // List<Map<String, Object>> hasList = this.listMaps(new QueryWrapper<WlCarMileage>()
.select("COUNT(1) AS count,date").lambda().eq(WlCarMileage::getIotCode, car.getIotCode()) // .select("COUNT(1) AS count,date").lambda().eq(WlCarMileage::getIotCode, car.getIotCode())
.between(WlCarMileage::getDate, daylist.get(0), daylist.get(daylist.size() - 1)) // .between(WlCarMileage::getDate, daylist.get(0), daylist.get(daylist.size() - 1))
.isNotNull(WlCarMileage::getEndTime) // .isNotNull(WlCarMileage::getEndTime)
.ge(WlCarMileage::getTravel, 0.5) // .ge(WlCarMileage::getTravel, 0.5)
.groupBy(WlCarMileage::getDate)); // .groupBy(WlCarMileage::getDate));
Map<String, Object> hasMap = new HashMap<>(); Map<String, Object> hasMap = new HashMap<>();
for (Map<String, Object> mapOne : hasList) { List<WlCarMileage> wlCarMileageList = this.list(new QueryWrapper<WlCarMileage>().eq("iot_code", car.getIotCode())
hasMap.put(String.valueOf(mapOne.get("date")), mapOne.get("count")); .between("date", daylist.get(0), daylist.get(daylist.size() - 1))
} .isNotNull("end_time")
.ge("travel", 0.5)
.groupBy("date"));
List<WlCarMileage> wlCarMileageListActiveData = wlCarMileageList.stream().filter(wlCarMileage -> (!ObjectUtils.isEmpty(wlCarMileage.getTakeTime()) && (!ObjectUtils.isEmpty(wlCarMileage.getTravel()) && (wlCarMileage.getTravel() / (wlCarMileage.getTakeTime() / 3600000)) < CAR_MAX_SPEED))).collect(Collectors.toList());
List<String> activeDateList = wlCarMileageListActiveData.stream().map(wlCarMileage -> String.valueOf(DateUtils.convertDateToString(wlCarMileage.getDate(),DateUtils.DATE_PATTERN))).collect(Collectors.toList());
for (String day : daylist) { for (String day : daylist) {
boolean has = false; boolean has = false;
if (hasMap.containsKey(day)) { if (activeDateList.contains(day)) {
has = true; has = true;
} }
map.put(day, has); map.put(day, has);
......
...@@ -5971,8 +5971,8 @@ ...@@ -5971,8 +5971,8 @@
<select id="selectCarStats" resultType="java.util.Map"> <select id="selectCarStats" resultType="java.util.Map">
SELECT SELECT
COUNT(*) AS totalCount, COUNT(*) AS totalCount,
SUM(CASE WHEN wc.equip_status = 1 then 1 else 0 end ) AS yellowCodeCount, IFNULL(SUM(CASE WHEN wc.equip_status = 1 then 1 else 0 end ), 0) AS yellowCodeCount,
SUM(CASE WHEN wc.equip_status = 2 then 1 else 0 end ) AS redCodeCount IFNULL(SUM(CASE WHEN wc.equip_status = 2 then 1 else 0 end ), 0) AS redCodeCount
FROM FROM
wl_car wc wl_car wc
LEFT JOIN wl_equipment wle ON wle.id = wc.equipment_id LEFT JOIN wl_equipment wle ON wle.id = wc.equipment_id
......
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