Compare commits

...

2 Commits

Author SHA256 Message Date
e6d2977434 Merge remote-tracking branch 'origin/main' 2025-12-17 10:01:39 +08:00
0a3b28ae56 工单完成 2025-12-17 10:01:29 +08:00
3 changed files with 78 additions and 4 deletions

View File

@ -117,4 +117,8 @@ public class EbikeBikeOrder implements Serializable {
*/
private String remarks;
/**
* 是否故障误报
*/
private Boolean faultFalseAlarm;
}

View File

@ -554,7 +554,43 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
@Override
public void bikeDispatch(DoneDispatchOrderVo doneDispatchOrderVo) {
String bikeCode = doneDispatchOrderVo.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.DISPATCH));
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.setSiteId(doneDispatchOrderVo.getSiteId());
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
List<String> fileUrls = doneDispatchOrderVo.getFileUrls();
List<EbikeOrderFile> list = new ArrayList<>();
if (fileUrls != null && !fileUrls.isEmpty()) {
for (String fileUrl : fileUrls) {
EbikeOrderFile ebikeOrderFile = EbikeOrderFile.builder()
.orderId(bikeOrder.getOrderId())
.fileUrl(fileUrl)
.build();
list.add(ebikeOrderFile);
}
}
if (!list.isEmpty()){
ebikeOrderFileMapper.insertBatch(list);
}
updateById(bikeOrder);
}
@Override
@ -571,13 +607,13 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
Long receiverId = bikeOrder.getReceiverId();
long loginId = StpUtil.getLoginIdAsLong();
if (receiverId != null) {
if (receiverId.equals(loginId)) {
if (!receiverId.equals(loginId)) {
throw new EbikeException("该工单已被他人接单");
}
} else {
bikeOrder.setReceiverId(loginId);
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
}
bikeOrder.setHandleState(OrderHandleState.PROCESSED);
List<String> afterInspectionFileUrls = inspectionVo.getAfterInspectionFileUrls();
List<EbikeOrderFile> list = new ArrayList<>();
@ -601,7 +637,9 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
list.add(ebikeOrderFile);
}
}
if (!list.isEmpty()){
ebikeOrderFileMapper.insertBatch(list);
}
updateById(bikeOrder);
}
@ -618,7 +656,40 @@ public class EbikeBikeOrderServiceImpl extends ServiceImpl<EbikeBikeOrderMapper,
@Override
public void doFault(DoneFaultOrderVo faultOrderVo) {
String bikeCode = faultOrderVo.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.REPAIR));
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> fileUrls = faultOrderVo.getFileUrls();
List<EbikeOrderFile> list = new ArrayList<>();
if (fileUrls != null && !fileUrls.isEmpty()) {
for (String fileUrl : fileUrls) {
EbikeOrderFile ebikeOrderFile = EbikeOrderFile.builder()
.orderId(bikeOrder.getOrderId())
.fileUrl(fileUrl)
.build();
list.add(ebikeOrderFile);
}
}
if (!list.isEmpty()){
ebikeOrderFileMapper.insertBatch(list);
}
updateById(bikeOrder);
}
@Override

View File

@ -31,7 +31,6 @@
#{radius}
)
AND ebike_bike_info.status = 1
-- AND ebike_bike_info.usage_status = 1
ORDER BY distance ASC
</select>
</mapper>