首页车辆列表
This commit is contained in:
parent
08d6256fd5
commit
26b08cb914
@ -59,4 +59,27 @@ public class EbikeOrderBikeListDto implements Serializable {
|
||||
* 外接电池电量(该值由控制器提供,若控制器不支持此值为0)
|
||||
*/
|
||||
private Integer soc;
|
||||
|
||||
|
||||
/**
|
||||
* 是否有巡检工单
|
||||
*/
|
||||
private Boolean hasInspectionOrder;
|
||||
|
||||
/**
|
||||
* 是否有换电工单
|
||||
*/
|
||||
private Boolean hasChangeBatteryOrder;
|
||||
|
||||
|
||||
/**
|
||||
* 是否有调度工单
|
||||
*/
|
||||
private Boolean hasDispatchOrder;
|
||||
|
||||
|
||||
/**
|
||||
* 是否有维修工单
|
||||
*/
|
||||
private Boolean hasRepairOrder;
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ import com.cdzy.operations.utils.GeoCodingUtil;
|
||||
import com.cdzy.operations.utils.MinioUtil;
|
||||
import com.cdzy.operations.utils.RedisUtil;
|
||||
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
|
||||
import com.mybatisflex.core.query.QueryMethods;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.core.update.UpdateChain;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
@ -112,6 +113,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
.operatorId(bikeInfo.getOperatorId())
|
||||
.build();
|
||||
this.mapper.insert(ebikeBikeOrder);
|
||||
//TODO:车辆状态
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@ -144,6 +146,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
List<EbikeOrderFile> list = fileUrls.stream().map(e -> EbikeOrderFile.builder().orderId(orderId).fileUrl(e).build()).toList();
|
||||
orderFileMapper.insertBatch(list);
|
||||
}
|
||||
//TODO:车辆状态
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@ -181,6 +184,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
.operatorId(bikeInfo.getOperatorId())
|
||||
.build();
|
||||
this.mapper.insert(ebikeBikeOrder);
|
||||
//TODO:车辆状态
|
||||
bikeInfo.setUsageStatus(BikeUsageStatus.DEPLOYED);
|
||||
bikeInfoMapper.update(bikeInfo);
|
||||
}
|
||||
@ -241,6 +245,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
List<EbikeOrderFile> list = fileUrls.stream().map(e -> EbikeOrderFile.builder().orderId(orderId).fileUrl(e).build()).toList();
|
||||
orderFileMapper.insertBatch(list);
|
||||
}
|
||||
//TODO:车辆状态
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@ -342,7 +347,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
if (bikeOrder.getReceiverId() != StpUtil.getLoginIdAsLong()) {
|
||||
if (bikeOrder.getReceiverId() != null) {
|
||||
throw new EbikeException("其他用户已接单为该车辆换电");
|
||||
}else {
|
||||
} else {
|
||||
throw new EbikeException("请接单后完成换电");
|
||||
}
|
||||
}
|
||||
@ -357,7 +362,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
bikeInfoMapper.update(bikeInfo);
|
||||
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
|
||||
ebikeBikeOrderMapper.update(bikeOrder);
|
||||
}else {
|
||||
} else {
|
||||
queryWrapper.clear();
|
||||
queryWrapper.where(EBIKE_ECU_INFO.ECU_SN.eq(bikeCode))
|
||||
.where(EBIKE_ECU_INFO.BIND_BATTERY.eq(Boolean.TRUE));
|
||||
@ -377,35 +382,35 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
@Override
|
||||
public EbikeOrderBikeInfoDto bikeInfo(String bikeCode) {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(EBIKE_BIKE_INFO.BIKE_INFO_ID,EBIKE_BIKE_INFO.LOCATION,EBIKE_BIKE_INFO.USAGE_STATUS,EBIKE_BIKE_INFO.LATEST_CYCLING_TIME,EBIKE_ECU_INFO.ECU_SN)
|
||||
.select(EBIKE_BIKE_INFO.BIKE_INFO_ID, EBIKE_BIKE_INFO.LOCATION, EBIKE_BIKE_INFO.USAGE_STATUS, EBIKE_BIKE_INFO.LATEST_CYCLING_TIME, EBIKE_ECU_INFO.ECU_SN)
|
||||
.where(EBIKE_BIKE_INFO.BIKE_CODE.eq(bikeCode))
|
||||
.leftJoin(EBIKE_ECU_INFO).on(EBIKE_ECU_INFO.ECU_ID.eq(EBIKE_BIKE_INFO.ECU_ID));
|
||||
EbikeOrderBikeInfoDto bikeInfo = bikeInfoMapper.selectOneByQueryAs(queryWrapper,EbikeOrderBikeInfoDto.class);
|
||||
EbikeOrderBikeInfoDto bikeInfo = bikeInfoMapper.selectOneByQueryAs(queryWrapper, EbikeOrderBikeInfoDto.class);
|
||||
if (bikeInfo == null) {
|
||||
throw new EbikeException("车辆编号错误");
|
||||
}
|
||||
ResGPSDto resGPSDto = (ResGPSDto)redisUtil.getEcu(bikeInfo.getEcuSn());
|
||||
ResGPSDto resGPSDto = (ResGPSDto) redisUtil.getEcu(bikeInfo.getEcuSn());
|
||||
bikeInfo.setSoc(resGPSDto.getSoc());
|
||||
BigDecimal result = new BigDecimal(resGPSDto.getVoltage())
|
||||
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
||||
bikeInfo.setVoltage(result);
|
||||
if (resGPSDto.getGsm()>20 && resGPSDto.getGsm()<31){
|
||||
if (resGPSDto.getGsm() > 20 && resGPSDto.getGsm() < 31) {
|
||||
bikeInfo.setGsm("信号强");
|
||||
}else if (resGPSDto.getGsm()<20 && resGPSDto.getGsm()>10){
|
||||
} else if (resGPSDto.getGsm() < 20 && resGPSDto.getGsm() > 10) {
|
||||
bikeInfo.setGsm("信号一般");
|
||||
}else if (resGPSDto.getGsm()<=10){
|
||||
} else if (resGPSDto.getGsm() <= 10) {
|
||||
bikeInfo.setGsm("信号弱");
|
||||
}
|
||||
bikeInfo.setHelmetExit(resGPSDto.getHelmetExit()==1?"头盔在位":"头盔不在位");
|
||||
bikeInfo.setIsHelmetLocked(resGPSDto.getIsHelmetLocked()==1?"头盔已上锁":"头盔未上锁");
|
||||
bikeInfo.setIsWheelSpin(resGPSDto.getIsWheelSpin()==1?"转动":"静止");
|
||||
bikeInfo.setIsMoving(resGPSDto.getIsMoving()==1?"运动":"静止");
|
||||
bikeInfo.setAccOn(resGPSDto.getAccOn()==1?"开":"关");
|
||||
bikeInfo.setWheelLocked(resGPSDto.getWheelLocked()==1?"上锁":"未上锁");
|
||||
bikeInfo.setSeatLocked(resGPSDto.getSeatLocked()==1?"关闭":"打开");
|
||||
bikeInfo.setHelmetExit(resGPSDto.getHelmetExit() == 1 ? "头盔在位" : "头盔不在位");
|
||||
bikeInfo.setIsHelmetLocked(resGPSDto.getIsHelmetLocked() == 1 ? "头盔已上锁" : "头盔未上锁");
|
||||
bikeInfo.setIsWheelSpin(resGPSDto.getIsWheelSpin() == 1 ? "转动" : "静止");
|
||||
bikeInfo.setIsMoving(resGPSDto.getIsMoving() == 1 ? "运动" : "静止");
|
||||
bikeInfo.setAccOn(resGPSDto.getAccOn() == 1 ? "开" : "关");
|
||||
bikeInfo.setWheelLocked(resGPSDto.getWheelLocked() == 1 ? "上锁" : "未上锁");
|
||||
bikeInfo.setSeatLocked(resGPSDto.getSeatLocked() == 1 ? "关闭" : "打开");
|
||||
bikeInfo.setSpeed(resGPSDto.getSpeed());
|
||||
bikeInfo.setLatestTime(resGPSDto.getLatestTime());
|
||||
String locationToAddress = geoCodingUtil.getLocationToAddress(resGPSDto.getLongitude(),resGPSDto.getLatitude());
|
||||
String locationToAddress = geoCodingUtil.getLocationToAddress(resGPSDto.getLongitude(), resGPSDto.getLatitude());
|
||||
bikeInfo.setChineseLocation(locationToAddress);
|
||||
return bikeInfo;
|
||||
}
|
||||
@ -413,18 +418,67 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
||||
@Override
|
||||
public List<EbikeOrderBikeListDto> bikeList(Long regionId) {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.select(EBIKE_BIKE_INFO.BIKE_CODE,EBIKE_BIKE_INFO.LOCATION,EBIKE_BIKE_INFO.USAGE_STATUS,EBIKE_ECU_INFO.ECU_SN)
|
||||
.select(
|
||||
EBIKE_BIKE_INFO.BIKE_CODE,
|
||||
EBIKE_BIKE_INFO.LOCATION,
|
||||
EBIKE_BIKE_INFO.USAGE_STATUS,
|
||||
EBIKE_ECU_INFO.ECU_SN,
|
||||
// 判断是否有巡检工单
|
||||
QueryMethods.case_()
|
||||
.when(QueryMethods.exists(
|
||||
QueryWrapper.create()
|
||||
.from(EBIKE_BIKE_ORDER)
|
||||
.where(EBIKE_BIKE_ORDER.BIKE_CODE.eq(EBIKE_BIKE_INFO.BIKE_CODE))
|
||||
.and(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.INSPECTION))
|
||||
))
|
||||
.then(true)
|
||||
.else_(false)
|
||||
.end().as(EbikeOrderBikeListDto::getHasInspectionOrder),
|
||||
// 判断是否有换电工单
|
||||
QueryMethods.case_()
|
||||
.when(QueryMethods.exists(
|
||||
QueryWrapper.create()
|
||||
.from(EBIKE_BIKE_ORDER)
|
||||
.where(EBIKE_BIKE_ORDER.BIKE_CODE.eq(EBIKE_BIKE_INFO.BIKE_CODE))
|
||||
.and(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.BATTERY_SWAP))
|
||||
))
|
||||
.then(true)
|
||||
.else_(false)
|
||||
.end().as(EbikeOrderBikeListDto::getHasChangeBatteryOrder),
|
||||
// 判断是否有调度工单
|
||||
QueryMethods.case_()
|
||||
.when(QueryMethods.exists(
|
||||
QueryWrapper.create()
|
||||
.from(EBIKE_BIKE_ORDER)
|
||||
.where(EBIKE_BIKE_ORDER.BIKE_CODE.eq(EBIKE_BIKE_INFO.BIKE_CODE))
|
||||
.and(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.DISPATCH))
|
||||
))
|
||||
.then(true)
|
||||
.else_(false)
|
||||
.end().as(EbikeOrderBikeListDto::getHasDispatchOrder),
|
||||
// 判断是否有换电工单
|
||||
QueryMethods.case_()
|
||||
.when(QueryMethods.exists(
|
||||
QueryWrapper.create()
|
||||
.from(EBIKE_BIKE_ORDER)
|
||||
.where(EBIKE_BIKE_ORDER.BIKE_CODE.eq(EBIKE_BIKE_INFO.BIKE_CODE))
|
||||
.and(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.REPAIR))
|
||||
))
|
||||
.then(true)
|
||||
.else_(false)
|
||||
.end().as(EbikeOrderBikeListDto::getHasRepairOrder)
|
||||
)
|
||||
.where(EBIKE_BIKE_INFO.REGION_ID.eq(regionId))
|
||||
.where(EBIKE_BIKE_INFO.STATUS.eq(BikeStatus.LAUNCH))
|
||||
.leftJoin(EBIKE_ECU_INFO).on(EBIKE_ECU_INFO.ECU_ID.eq(EBIKE_BIKE_INFO.ECU_ID));
|
||||
List<EbikeOrderBikeListDto> list = bikeInfoMapper.selectListByQueryAs(queryWrapper, EbikeOrderBikeListDto.class);
|
||||
List<String> snList = list.stream().map(EbikeOrderBikeListDto::getEcuSn).toList();
|
||||
Map<String, Object> objectMap = redisUtil.batchGetEcuWithMap(snList);
|
||||
list.forEach(e->{
|
||||
ResGPSDto resGPSDto = (ResGPSDto)objectMap.get(e.getEcuSn());
|
||||
if (resGPSDto != null){
|
||||
e.setSoc(resGPSDto.getSoc());
|
||||
}
|
||||
list.forEach(e -> {
|
||||
ResGPSDto resGPSDto = (ResGPSDto) objectMap.get(e.getEcuSn());
|
||||
if (resGPSDto != null) {
|
||||
e.setSoc(resGPSDto.getSoc());
|
||||
}
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user