Merge remote-tracking branch 'origin/main'

This commit is contained in:
863620989 2025-04-28 15:17:30 +08:00
commit b39179f385
6 changed files with 187 additions and 12 deletions

View File

@ -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);
}

View File

@ -0,0 +1,15 @@
package com.ebike.feign.model.res;
public class ReqVehicleStatusUpdateDto {
/**
* 状态
*/
private String state;
/**
* 车辆编号
*/
private String bikeCode;
}

View File

@ -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,33 @@ public class EbikeBikeInfoController {
}
return JsonResult.failed("删除失败!");
}
/**
* 获取运营车辆列表
*
* @param request 查询参数
* @return
*/
@PostMapping("getOperationalBikeList")
public JsonResult<Object> getOperationalBikeList(@RequestBody ReqEbikeCheckinDto request) {
//查询车辆信息列表
Page<ResInventoryBikeListDto> inventoryBikeListDtoPage = ebikeBikeInfoService.getOperationalBikeList(request);
return JsonResult.success(inventoryBikeListDtoPage);
}
/**
* 修改车辆状态
*
* @param request 车辆状态修改请求参数
* @return
*/
@PostMapping("updateVehicleStatus")
public JsonResult<?> updateVehicleStatus(@RequestBody ReqVehicleStatusUpdateDto request) {
// 调用服务层方法执行车辆状态修改操作
return ebikeBikeInfoService.updateVehicleStatus(request);
}
}

View File

@ -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;
}

View File

@ -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;
@ -190,10 +191,10 @@ public interface EbikeBikeInfoService extends IService<EbikeBikeInfo> {
/**
* 取消工单
*
* @param orderId 工单id
* @param orderId 工单id orderType 1 维修工单 2 换电工单 3 调度工单
* @return
*/
Boolean canCellWorkOrder(String orderId);
Boolean canCellWorkOrder(String orderId,String orderType);
/**
* 根据SN码批量获取车辆信息
@ -261,4 +262,20 @@ public interface EbikeBikeInfoService extends IService<EbikeBikeInfo> {
* @return
*/
Boolean deleteDispatchRecord(String recordId);
/**
* 获取运营车辆列表
*
* @param
* @return
*/
Page<ResInventoryBikeListDto> getOperationalBikeList(ReqEbikeCheckinDto queryParam);
/**
* 修改车辆状态
*
* @param queryParam 车辆状态修改请求参数
* @return
*/
JsonResult<?> updateVehicleStatus(ReqVehicleStatusUpdateDto queryParam);
}

View File

@ -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<EbikeBikeInfoMapper, E
/**
* 取消工单
*
* @param orderId 工单id
* @param orderId 工单id orderType 1 维修工单 2 换电工单 3 调度工单
* @return
*/
@Override
public Boolean canCellWorkOrder(String orderId) {
public Boolean canCellWorkOrder(String orderId,String orderType) {
try {
EbikeBikeOrder ebikeBikeOrder = ebikeBikeOrderMapper.selectOneById(orderId);
ebikeBikeOrder.setHandleState("2");
int b = ebikeBikeOrderMapper.update(ebikeBikeOrder);
QueryWrapper query = QueryWrapper.create();
query.eq(EBIKE_BIKE_FAULT_REPAIR_RECORD.ORDER_ID.getName(), orderId);
List<EbikeBikeFaultRepairRecord> 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<EbikeBikeFaultRepairRecord> 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<EbikeBikeInfoMapper, E
QueryWrapper query = QueryWrapper.create();
query.eq("order_id", orderId);
query.eq("dispatch_state", "0"); //并且查询待处理的工单
List<EbikeDispatchRecords> ebikeDispatchRecords = ebikeDispatchRecordsMapper.selectListByQuery(query);
resDispatchVehicleDto.setOrderId(orderId);
resDispatchVehicleDto.setDispatchRecords(ebikeDispatchRecords);
resDispatchVehicleDto.setBikeOrder(ebikeBikeOrder);
@ -1251,4 +1264,76 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
}
return ebikeDispatchRecordsMapper.deleteById(recordId) > 0;
}
@Override
public Page<ResInventoryBikeListDto> 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<ResInventoryBikeListDto> 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("车辆状态修改失败");
}
}
}