From e08aa1edc5f3e2737a51640081ed0183537be244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9C=B1?= <2671189764@qq.com> Date: Mon, 28 Apr 2025 14:06:36 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=20=E8=8E=B7=E5=8F=96=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeBikeInfoController.java | 23 +++++- .../service/EbikeBikeInfoService.java | 12 +++- .../impl/EbikeBikeInfoServiceImpl.java | 71 +++++++++++++++++-- 3 files changed, 94 insertions(+), 12 deletions(-) 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); + } } From 70e2416f130e3d7dbeddec47afe1dd8445987f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9C=B1?= <2671189764@qq.com> Date: Mon, 28 Apr 2025 14:44:54 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9A=B4=E9=9C=B2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=BD=A6=E8=BE=86=E7=BC=96=E5=8F=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=BD=A6=E8=BE=86=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/clients/MaintenanceFeignClient.java | 9 +++++++++ .../model/res/ReqVehicleStatusUpdateDto.java | 15 +++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 ebike-feign/src/main/java/com/ebike/feign/model/res/ReqVehicleStatusUpdateDto.java diff --git a/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java b/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java index ea315d58..db449481 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java +++ b/ebike-feign/src/main/java/com/ebike/feign/clients/MaintenanceFeignClient.java @@ -2,6 +2,7 @@ package com.ebike.feign.clients; import com.cdzy.common.model.JsonResult; import com.ebike.feign.model.res.ReqEcuSnDto; +import com.ebike.feign.model.res.ReqVehicleStatusUpdateDto; import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto; import com.ebike.feign.model.rsp.RspBikeInfo; import org.springframework.cloud.openfeign.FeignClient; @@ -90,4 +91,12 @@ public interface MaintenanceFeignClient { */ @GetMapping("ebikeOrder/changeBattery") JsonResult changeBattery(@RequestParam(name = "ecuSn") String ecuSn); + + /** + * 根据车辆编号修改车辆状态 + * + * @return 结果 + */ + @GetMapping("ebikeBikeInfo/updateVehicleStatus") + JsonResult updateVehicleStatus(@RequestBody ReqVehicleStatusUpdateDto request); } diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqVehicleStatusUpdateDto.java b/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqVehicleStatusUpdateDto.java new file mode 100644 index 00000000..531179f2 --- /dev/null +++ b/ebike-feign/src/main/java/com/ebike/feign/model/res/ReqVehicleStatusUpdateDto.java @@ -0,0 +1,15 @@ +package com.ebike.feign.model.res; + +public class ReqVehicleStatusUpdateDto { + /** + * 状态 + */ + private String state; + + /** + * 车辆编号 + */ + private String bikeCode; + + + } From 04526522737124e69751ec7b6713174e1b5982b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9C=B1?= <2671189764@qq.com> Date: Mon, 28 Apr 2025 14:45:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=BD=A6=E8=BE=86=E7=BC=96=E5=8F=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=BD=A6=E8=BE=86=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeBikeInfoController.java | 13 +++++++++ .../model/pojo/ReqVehicleStatusUpdateDto.java | 19 +++++++++++++ .../service/EbikeBikeInfoService.java | 9 ++++++ .../impl/EbikeBikeInfoServiceImpl.java | 28 +++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/ReqVehicleStatusUpdateDto.java 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 fcb0b5e7..0afec50d 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 @@ -813,5 +813,18 @@ public class EbikeBikeInfoController { return JsonResult.success(inventoryBikeListDtoPage); } + /** + * 修改车辆状态 + * + * @param request 车辆状态修改请求参数 + * @return + */ + @PostMapping("updateVehicleStatus") + public JsonResult updateVehicleStatus(@RequestBody ReqVehicleStatusUpdateDto request) { + // 调用服务层方法,执行车辆状态修改操作 + return ebikeBikeInfoService.updateVehicleStatus(request); + + + } } diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/ReqVehicleStatusUpdateDto.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/ReqVehicleStatusUpdateDto.java new file mode 100644 index 00000000..fc9e3fe5 --- /dev/null +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/pojo/ReqVehicleStatusUpdateDto.java @@ -0,0 +1,19 @@ +package com.cdzy.ebikemaintenance.model.pojo; + +import lombok.Data; + +import java.time.LocalDateTime; +@Data +public class ReqVehicleStatusUpdateDto { + /** + * 状态 + */ + private String state; + + /** + * 车辆编号 + */ + private String bikeCode; + + + } 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 68346d4e..41c75f08 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 @@ -1,5 +1,6 @@ package com.cdzy.ebikemaintenance.service; +import com.cdzy.common.model.JsonResult; import com.cdzy.ebikemaintenance.model.dto.request.*; import com.cdzy.ebikemaintenance.model.dto.response.*; import com.cdzy.ebikemaintenance.model.dto.response.ResEbikeBikeComDto; @@ -269,4 +270,12 @@ public interface EbikeBikeInfoService extends IService { * @return */ Page getOperationalBikeList(ReqEbikeCheckinDto queryParam); + + /** + * 修改车辆状态 + * + * @param queryParam 车辆状态修改请求参数 + * @return + */ + JsonResult updateVehicleStatus(ReqVehicleStatusUpdateDto 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 dc2766e1..05b614d0 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 @@ -1308,4 +1308,32 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl page = Page.of(queryParam.getPageParam().getPage().getPageNumber(), queryParam.getPageParam().getPageSize()); return ebikeBikeInfoMapper.paginateAs(page, query, ResInventoryBikeListDto.class); } + + public JsonResult updateVehicleStatus(ReqVehicleStatusUpdateDto queryParam) { + String bikeCode = queryParam.getBikeCode(); +// 根据 bikeCode 查找 bikeId + QueryWrapper query = QueryWrapper.create(); + query.eq("bike_code",bikeCode); + EbikeBikeInfo ebikeBikeInfo = ebikeBikeInfoMapper.selectOneByQuery(query); + + if (ebikeBikeInfo.getBikeId() == null) { + return JsonResult.failed("未找到该车辆的ID"); + } + + // 创建更新请求 DTO,设置 bikeId 和新的状态 + EbikeBikeInfo updateDto = new EbikeBikeInfo(); + updateDto.setBikeId(ebikeBikeInfo.getBikeId()); + updateDto.setState(queryParam.getState()); + updateDto.setUpdatedAt(LocalDateTime.now()); // 设置更新时间 + + // 调用服务层方法,执行车辆状态更新 + int update = ebikeBikeInfoMapper.update(updateDto); + + if(update>0){ + return JsonResult.success("车辆状态修改成功"); + } else { + return JsonResult.failed("车辆状态修改失败"); + } + + } }