Compare commits
2 Commits
c34d9e69cc
...
4f3c914bea
| Author | SHA256 | Date | |
|---|---|---|---|
| 4f3c914bea | |||
| 26b08cb914 |
@ -59,4 +59,27 @@ public class EbikeOrderBikeListDto implements Serializable {
|
|||||||
* 外接电池电量(该值由控制器提供,若控制器不支持此值为0)
|
* 外接电池电量(该值由控制器提供,若控制器不支持此值为0)
|
||||||
*/
|
*/
|
||||||
private Integer soc;
|
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.MinioUtil;
|
||||||
import com.cdzy.operations.utils.RedisUtil;
|
import com.cdzy.operations.utils.RedisUtil;
|
||||||
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
|
import com.mybatisflex.core.keygen.impl.SnowFlakeIDKeyGenerator;
|
||||||
|
import com.mybatisflex.core.query.QueryMethods;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.core.update.UpdateChain;
|
import com.mybatisflex.core.update.UpdateChain;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
@ -112,6 +113,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
|||||||
.operatorId(bikeInfo.getOperatorId())
|
.operatorId(bikeInfo.getOperatorId())
|
||||||
.build();
|
.build();
|
||||||
this.mapper.insert(ebikeBikeOrder);
|
this.mapper.insert(ebikeBikeOrder);
|
||||||
|
//TODO:车辆状态
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@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();
|
List<EbikeOrderFile> list = fileUrls.stream().map(e -> EbikeOrderFile.builder().orderId(orderId).fileUrl(e).build()).toList();
|
||||||
orderFileMapper.insertBatch(list);
|
orderFileMapper.insertBatch(list);
|
||||||
}
|
}
|
||||||
|
//TODO:车辆状态
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@ -181,6 +184,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
|||||||
.operatorId(bikeInfo.getOperatorId())
|
.operatorId(bikeInfo.getOperatorId())
|
||||||
.build();
|
.build();
|
||||||
this.mapper.insert(ebikeBikeOrder);
|
this.mapper.insert(ebikeBikeOrder);
|
||||||
|
//TODO:车辆状态
|
||||||
bikeInfo.setUsageStatus(BikeUsageStatus.DEPLOYED);
|
bikeInfo.setUsageStatus(BikeUsageStatus.DEPLOYED);
|
||||||
bikeInfoMapper.update(bikeInfo);
|
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();
|
List<EbikeOrderFile> list = fileUrls.stream().map(e -> EbikeOrderFile.builder().orderId(orderId).fileUrl(e).build()).toList();
|
||||||
orderFileMapper.insertBatch(list);
|
orderFileMapper.insertBatch(list);
|
||||||
}
|
}
|
||||||
|
//TODO:车辆状态
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@ -342,7 +347,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
|||||||
if (bikeOrder.getReceiverId() != StpUtil.getLoginIdAsLong()) {
|
if (bikeOrder.getReceiverId() != StpUtil.getLoginIdAsLong()) {
|
||||||
if (bikeOrder.getReceiverId() != null) {
|
if (bikeOrder.getReceiverId() != null) {
|
||||||
throw new EbikeException("其他用户已接单为该车辆换电");
|
throw new EbikeException("其他用户已接单为该车辆换电");
|
||||||
}else {
|
} else {
|
||||||
throw new EbikeException("请接单后完成换电");
|
throw new EbikeException("请接单后完成换电");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -357,7 +362,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
|||||||
bikeInfoMapper.update(bikeInfo);
|
bikeInfoMapper.update(bikeInfo);
|
||||||
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
|
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
|
||||||
ebikeBikeOrderMapper.update(bikeOrder);
|
ebikeBikeOrderMapper.update(bikeOrder);
|
||||||
}else {
|
} else {
|
||||||
queryWrapper.clear();
|
queryWrapper.clear();
|
||||||
queryWrapper.where(EBIKE_ECU_INFO.ECU_SN.eq(bikeCode))
|
queryWrapper.where(EBIKE_ECU_INFO.ECU_SN.eq(bikeCode))
|
||||||
.where(EBIKE_ECU_INFO.BIND_BATTERY.eq(Boolean.TRUE));
|
.where(EBIKE_ECU_INFO.BIND_BATTERY.eq(Boolean.TRUE));
|
||||||
@ -377,35 +382,35 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
|||||||
@Override
|
@Override
|
||||||
public EbikeOrderBikeInfoDto bikeInfo(String bikeCode) {
|
public EbikeOrderBikeInfoDto bikeInfo(String bikeCode) {
|
||||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
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))
|
.where(EBIKE_BIKE_INFO.BIKE_CODE.eq(bikeCode))
|
||||||
.leftJoin(EBIKE_ECU_INFO).on(EBIKE_ECU_INFO.ECU_ID.eq(EBIKE_BIKE_INFO.ECU_ID));
|
.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) {
|
if (bikeInfo == null) {
|
||||||
throw new EbikeException("车辆编号错误");
|
throw new EbikeException("车辆编号错误");
|
||||||
}
|
}
|
||||||
ResGPSDto resGPSDto = (ResGPSDto)redisUtil.getEcu(bikeInfo.getEcuSn());
|
ResGPSDto resGPSDto = (ResGPSDto) redisUtil.getEcu(bikeInfo.getEcuSn());
|
||||||
bikeInfo.setSoc(resGPSDto.getSoc());
|
bikeInfo.setSoc(resGPSDto.getSoc());
|
||||||
BigDecimal result = new BigDecimal(resGPSDto.getVoltage())
|
BigDecimal result = new BigDecimal(resGPSDto.getVoltage())
|
||||||
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
|
||||||
bikeInfo.setVoltage(result);
|
bikeInfo.setVoltage(result);
|
||||||
if (resGPSDto.getGsm()>20 && resGPSDto.getGsm()<31){
|
if (resGPSDto.getGsm() > 20 && resGPSDto.getGsm() < 31) {
|
||||||
bikeInfo.setGsm("信号强");
|
bikeInfo.setGsm("信号强");
|
||||||
}else if (resGPSDto.getGsm()<20 && resGPSDto.getGsm()>10){
|
} else if (resGPSDto.getGsm() < 20 && resGPSDto.getGsm() > 10) {
|
||||||
bikeInfo.setGsm("信号一般");
|
bikeInfo.setGsm("信号一般");
|
||||||
}else if (resGPSDto.getGsm()<=10){
|
} else if (resGPSDto.getGsm() <= 10) {
|
||||||
bikeInfo.setGsm("信号弱");
|
bikeInfo.setGsm("信号弱");
|
||||||
}
|
}
|
||||||
bikeInfo.setHelmetExit(resGPSDto.getHelmetExit()==1?"头盔在位":"头盔不在位");
|
bikeInfo.setHelmetExit(resGPSDto.getHelmetExit() == 1 ? "头盔在位" : "头盔不在位");
|
||||||
bikeInfo.setIsHelmetLocked(resGPSDto.getIsHelmetLocked()==1?"头盔已上锁":"头盔未上锁");
|
bikeInfo.setIsHelmetLocked(resGPSDto.getIsHelmetLocked() == 1 ? "头盔已上锁" : "头盔未上锁");
|
||||||
bikeInfo.setIsWheelSpin(resGPSDto.getIsWheelSpin()==1?"转动":"静止");
|
bikeInfo.setIsWheelSpin(resGPSDto.getIsWheelSpin() == 1 ? "转动" : "静止");
|
||||||
bikeInfo.setIsMoving(resGPSDto.getIsMoving()==1?"运动":"静止");
|
bikeInfo.setIsMoving(resGPSDto.getIsMoving() == 1 ? "运动" : "静止");
|
||||||
bikeInfo.setAccOn(resGPSDto.getAccOn()==1?"开":"关");
|
bikeInfo.setAccOn(resGPSDto.getAccOn() == 1 ? "开" : "关");
|
||||||
bikeInfo.setWheelLocked(resGPSDto.getWheelLocked()==1?"上锁":"未上锁");
|
bikeInfo.setWheelLocked(resGPSDto.getWheelLocked() == 1 ? "上锁" : "未上锁");
|
||||||
bikeInfo.setSeatLocked(resGPSDto.getSeatLocked()==1?"关闭":"打开");
|
bikeInfo.setSeatLocked(resGPSDto.getSeatLocked() == 1 ? "关闭" : "打开");
|
||||||
bikeInfo.setSpeed(resGPSDto.getSpeed());
|
bikeInfo.setSpeed(resGPSDto.getSpeed());
|
||||||
bikeInfo.setLatestTime(resGPSDto.getLatestTime());
|
bikeInfo.setLatestTime(resGPSDto.getLatestTime());
|
||||||
String locationToAddress = geoCodingUtil.getLocationToAddress(resGPSDto.getLongitude(),resGPSDto.getLatitude());
|
String locationToAddress = geoCodingUtil.getLocationToAddress(resGPSDto.getLongitude(), resGPSDto.getLatitude());
|
||||||
bikeInfo.setChineseLocation(locationToAddress);
|
bikeInfo.setChineseLocation(locationToAddress);
|
||||||
return bikeInfo;
|
return bikeInfo;
|
||||||
}
|
}
|
||||||
@ -413,18 +418,67 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
|
|||||||
@Override
|
@Override
|
||||||
public List<EbikeOrderBikeListDto> bikeList(Long regionId) {
|
public List<EbikeOrderBikeListDto> bikeList(Long regionId) {
|
||||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
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.REGION_ID.eq(regionId))
|
||||||
.where(EBIKE_BIKE_INFO.STATUS.eq(BikeStatus.LAUNCH))
|
.where(EBIKE_BIKE_INFO.STATUS.eq(BikeStatus.LAUNCH))
|
||||||
.leftJoin(EBIKE_ECU_INFO).on(EBIKE_ECU_INFO.ECU_ID.eq(EBIKE_BIKE_INFO.ECU_ID));
|
.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<EbikeOrderBikeListDto> list = bikeInfoMapper.selectListByQueryAs(queryWrapper, EbikeOrderBikeListDto.class);
|
||||||
List<String> snList = list.stream().map(EbikeOrderBikeListDto::getEcuSn).toList();
|
List<String> snList = list.stream().map(EbikeOrderBikeListDto::getEcuSn).toList();
|
||||||
Map<String, Object> objectMap = redisUtil.batchGetEcuWithMap(snList);
|
Map<String, Object> objectMap = redisUtil.batchGetEcuWithMap(snList);
|
||||||
list.forEach(e->{
|
list.forEach(e -> {
|
||||||
ResGPSDto resGPSDto = (ResGPSDto)objectMap.get(e.getEcuSn());
|
ResGPSDto resGPSDto = (ResGPSDto) objectMap.get(e.getEcuSn());
|
||||||
if (resGPSDto != null){
|
if (resGPSDto != null) {
|
||||||
e.setSoc(resGPSDto.getSoc());
|
e.setSoc(resGPSDto.getSoc());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user