diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java index e9de7c22..fcb0b5e7 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeBikeInfoController.java @@ -544,13 +544,14 @@ public class EbikeBikeInfoController { /** * 取消工单 * - * @param orderId 工单ID + * @param orderId 工单ID orderType 1 维修工单 2 换电工单 3 调度工单 + * * @return */ @RequestMapping("canCellWorkOrder") - public JsonResult canCellWorkOrder(@RequestParam(name = "orderId") String orderId) { + public JsonResult canCellWorkOrder(@RequestParam(name = "orderId") String orderId,@RequestParam(name = "orderType") String orderType) { - boolean b = ebikeBikeInfoService.canCellWorkOrder(orderId); + boolean b = ebikeBikeInfoService.canCellWorkOrder(orderId,orderType); if (b) { return JsonResult.success(true); } @@ -797,4 +798,20 @@ public class EbikeBikeInfoController { } return JsonResult.failed("删除失败!"); } + + + /** + * 获取运营车辆列表 + * + * @param request 查询参数 + * @return + */ + @PostMapping("getOperationalBikeList") + public JsonResult getOperationalBikeList(@RequestBody ReqEbikeCheckinDto request) { + //查询车辆信息列表 + Page inventoryBikeListDtoPage = ebikeBikeInfoService.getOperationalBikeList(request); + + return JsonResult.success(inventoryBikeListDtoPage); + } + } diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeBikeInfoService.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeBikeInfoService.java index 04224238..68346d4e 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeBikeInfoService.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeBikeInfoService.java @@ -190,10 +190,10 @@ public interface EbikeBikeInfoService extends IService { /** * 取消工单 * - * @param orderId 工单id + * @param orderId 工单id orderType 1 维修工单 2 换电工单 3 调度工单 * @return */ - Boolean canCellWorkOrder(String orderId); + Boolean canCellWorkOrder(String orderId,String orderType); /** * 根据SN码批量获取车辆信息 @@ -261,4 +261,12 @@ public interface EbikeBikeInfoService extends IService { * @return */ Boolean deleteDispatchRecord(String recordId); + + /** + * 获取运营车辆列表 + * + * @param + * @return + */ + Page getOperationalBikeList(ReqEbikeCheckinDto queryParam); } diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java index 6098e7bf..dc2766e1 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeBikeInfoServiceImpl.java @@ -58,6 +58,7 @@ import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBikeFaultReportTab import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBikeInfoTableDef.EBIKE_BIKE_INFO; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBikeOrderTableDef.EBIKE_BIKE_ORDER; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeCarStatusInfoTableDef.EBIKE_CAR_STATUS_INFO; +import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeDispatchRecordsTableDef.EBIKE_DISPATCH_RECORDS; import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO; import static com.mybatisflex.core.query.QueryMethods.*; @@ -842,21 +843,31 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl ebikeBikeFaultRepairRecords = ebikeBikeFaultRepairRecordMapper.selectListByQuery(query); - for (EbikeBikeFaultRepairRecord ebikeBikeFaultRepairRecord : ebikeBikeFaultRepairRecords) { - ebikeBikeFaultRepairRecord.setRepairState("2"); - ebikeBikeFaultRepairRecordMapper.update(ebikeBikeFaultRepairRecord); + switch (orderType){ + case "1": + break; + case "2": + query.eq(EBIKE_BIKE_FAULT_REPAIR_RECORD.ORDER_ID.getName(), orderId); + List ebikeBikeFaultRepairRecords = ebikeBikeFaultRepairRecordMapper.selectListByQuery(query); + for (EbikeBikeFaultRepairRecord ebikeBikeFaultRepairRecord : ebikeBikeFaultRepairRecords) { + ebikeBikeFaultRepairRecord.setRepairState("2"); + ebikeBikeFaultRepairRecordMapper.update(ebikeBikeFaultRepairRecord); + } + break; + case "3": + query.eq("order_id", orderId); + ebikeDispatchRecordsMapper.deleteByQuery(query); + break; } return true; } catch (Exception e) { @@ -1207,7 +1218,9 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl ebikeDispatchRecords = ebikeDispatchRecordsMapper.selectListByQuery(query); + resDispatchVehicleDto.setOrderId(orderId); resDispatchVehicleDto.setDispatchRecords(ebikeDispatchRecords); resDispatchVehicleDto.setBikeOrder(ebikeBikeOrder); @@ -1251,4 +1264,48 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl 0; } + + @Override + public Page getOperationalBikeList(ReqEbikeCheckinDto queryParam) { + QueryWrapper query = QueryWrapper.create(); + query.select(EBIKE_BIKE_INFO.BIKE_ID, EBIKE_BIKE_INFO.BIKE_NUMBER, EBIKE_BIKE_INFO.BIKE_MODEL); + query.select(EBIKE_BIKE_INFO.BIKE_CODE, EBIKE_BIKE_INFO.STATE, new QueryColumn("CHECKIN_TEMP", "enter_time")); + query.select( + QueryMethods.case_() + .when(EBIKE_DISPATCH_RECORDS.BIKE_CODE.isNotNull()) + .then("投放中") + .else_(QueryMethods.case_() + .when(EBIKE_CAR_STATUS_INFO.NAMEYW.isNull()).then(EBIKE_CAR_STATUS_INFO.NAMEYY) + .else_(EBIKE_CAR_STATUS_INFO.NAMEYY) + .end()) + .end().as("state_name") + ); + + query.leftJoin(select(EBIKE_BIKE_CHECKIN.BIKE_ID, max(EBIKE_BIKE_CHECKIN.OPERATE_TIME).as("enter_time")) + .from(EBIKE_BIKE_CHECKIN).groupBy(EBIKE_BIKE_CHECKIN.BIKE_ID)).as("CHECKIN_TEMP") + .on(EBIKE_BIKE_INFO.BIKE_ID.eq(new QueryColumn("CHECKIN_TEMP", "bike_id"))); + query.leftJoin(EBIKE_CAR_STATUS_INFO).on(EBIKE_BIKE_INFO.STATE.eq(EBIKE_CAR_STATUS_INFO.CODE)); + query.leftJoin(EBIKE_DISPATCH_RECORDS).on(EBIKE_BIKE_INFO.BIKE_CODE.eq(EBIKE_DISPATCH_RECORDS.BIKE_CODE).and( + EBIKE_DISPATCH_RECORDS.DISPATCH_STATE.eq(0) + )); + + if (queryParam.getBikeCode() != null && !queryParam.getBikeCode().isEmpty()) { + query.like(EBIKE_BIKE_INFO.BIKE_CODE.getName(), queryParam.getBikeCode()); + } + + if (queryParam.getState() != null && !queryParam.getState().isEmpty()) { + String[] stateList = queryParam.getState().split(","); + if (stateList.length == 1) { + query.eq(EBIKE_BIKE_INFO.STATE.getName(), queryParam.getState()); + } else { + query.in(EBIKE_BIKE_INFO.STATE.getName(), Arrays.stream(stateList).toList()); + } + } + + if (queryParam.getEnterTime() != null && !queryParam.getEnterTime().toString().isEmpty()) { + query.ge(new QueryColumn("CHECKIN_TEMP", "enter_time").getName(), queryParam.getEnterTime()); + } + Page page = Page.of(queryParam.getPageParam().getPage().getPageNumber(), queryParam.getPageParam().getPageSize()); + return ebikeBikeInfoMapper.paginateAs(page, query, ResInventoryBikeListDto.class); + } }