完成巡检

This commit is contained in:
attiya 2025-12-11 10:26:07 +08:00
parent 1fc76e9fa1
commit 7a82af94c1

View File

@ -26,6 +26,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.postgresql.geometric.PGpoint;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@ -94,6 +95,8 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
@Resource
private EbikeBatteryInfoMapper ebikeBatteryInfoMapper;
@Autowired
private EbikeOrderFileMapper ebikeOrderFileMapper;
@Override
public void createBatterySwapOrder(String ecuSn) {
@ -390,9 +393,9 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
}
@Override
public EbikeOrderBikeInfoDto bikeInfo(String bikeCode,Integer orderType) throws IOException {
public EbikeOrderBikeInfoDto bikeInfo(String bikeCode, Integer orderType) throws IOException {
QueryWrapper queryWrapper = QueryWrapper.create()
.select(EBIKE_BIKE_INFO.BIKE_INFO_ID, EBIKE_BIKE_INFO.BATTERY_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.BATTERY_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));
if (orderType != null) {
@ -408,9 +411,9 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
queryWrapper.clear();
queryWrapper.where(EBIKE_ECU_INFO.ECU_SN.eq(bikeInfo.getEcuSn()));
EbikeEcuInfo ecuInfo = ebikeEcuInfoMapper.selectOneByQuery(queryWrapper);
if (ecuInfo.getBindBattery()){
if (ecuInfo.getBindBattery()) {
bikeInfo.setBatteryCode(ecuInfo.getEcuSn());
}else {
} else {
queryWrapper.clear();
queryWrapper.where(EBIKE_BATTERY_INFO.BATTERY_ID.eq(bikeInfo.getBatteryId()));
EbikeBatteryInfo batteryInfo = ebikeBatteryInfoMapper.selectOneByQuery(queryWrapper);
@ -541,7 +544,7 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
JsonNode jsonNode = clientsOnline.get(e.getEcuSn());
if (jsonNode != null) {
e.setOnline(Boolean.TRUE);
}else {
} else {
e.setOnline(Boolean.FALSE);
}
});
@ -555,21 +558,65 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
@Override
public void doInspection(DoneInspectionVo inspectionVo) {
String bikeCode = inspectionVo.getBikeCode();
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_BIKE_ORDER.BIKE_CODE.eq(bikeCode))
.where(EBIKE_BIKE_ORDER.HANDLE_STATE.eq(OrderHandleState.ACCEPTED).or(EBIKE_BIKE_ORDER.HANDLE_STATE.eq(OrderHandleState.UNPROCESSED)))
.where(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.INSPECTION));
EbikeBikeOrder bikeOrder = getOne(queryWrapper);
if (bikeOrder == null) {
throw new EbikeException("该工单不存在或已作废");
}
Long receiverId = bikeOrder.getReceiverId();
long loginId = StpUtil.getLoginIdAsLong();
if (receiverId != null) {
if (receiverId.equals(loginId)) {
throw new EbikeException("该工单已被他人接单");
}
} else {
bikeOrder.setReceiverId(loginId);
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
}
List<String> afterInspectionFileUrls = inspectionVo.getAfterInspectionFileUrls();
List<EbikeOrderFile> list = new ArrayList<>();
if (afterInspectionFileUrls != null && !afterInspectionFileUrls.isEmpty()) {
for (String afterInspectionFileUrl : afterInspectionFileUrls) {
EbikeOrderFile ebikeOrderFile = EbikeOrderFile.builder()
.orderId(bikeOrder.getOrderId())
.fileUrl(afterInspectionFileUrl)
.build();
list.add(ebikeOrderFile);
}
}
List<String> beforeInspectionFileUrls = inspectionVo.getBeforeInspectionFileUrls();
if (beforeInspectionFileUrls != null && !beforeInspectionFileUrls.isEmpty()) {
for (String beforeInspectionFileUrl : beforeInspectionFileUrls) {
EbikeOrderFile ebikeOrderFile = EbikeOrderFile.builder()
.orderId(bikeOrder.getOrderId())
.fileUrl(beforeInspectionFileUrl)
.build();
list.add(ebikeOrderFile);
}
}
ebikeOrderFileMapper.insertBatch(list);
updateById(bikeOrder);
}
@Override
public List<EbikeRegion> regionList(OrderRegionVo orderRegionVo) {
PGpoint point = orderRegionVo.getPoint();
if (point != null) {
return regionMapper.findAllRegionsOrderByDistance(point);
}else {
return regionMapper.selectAll();
}
if (point != null) {
return regionMapper.findAllRegionsOrderByDistance(point);
} else {
return regionMapper.selectAll();
}
}
@Override
public void doFault(DoneFaultOrderVo faultOrderVo) {
String bikeCode = faultOrderVo.getBikeCode();
}