858 lines
31 KiB
Java
858 lines
31 KiB
Java
package com.cdzy.ebikemaintenance.controller;
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.cdzy.common.model.JsonResult;
|
|
import com.cdzy.common.model.ResGPSDto;
|
|
import com.cdzy.ebikemaintenance.model.dto.request.*;
|
|
import com.cdzy.ebikemaintenance.model.dto.response.*;
|
|
import com.cdzy.ebikemaintenance.model.pojo.*;
|
|
import com.cdzy.ebikemaintenance.service.*;
|
|
import com.cdzy.common.utils.ConvertUtil;
|
|
import com.cdzy.ebikemaintenance.utils.MinioUtil;
|
|
import com.cdzy.ebikemaintenance.utils.RedisUtil;
|
|
import com.ebike.feign.model.res.ReqEcuSnDto;
|
|
import com.ebike.feign.model.rsp.RspBikeInfo;
|
|
import com.mybatisflex.core.paginate.Page;
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
import jakarta.annotation.Resource;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import java.io.InputStream;
|
|
import java.time.LocalDateTime;
|
|
import java.util.*;
|
|
|
|
import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeBatteryInfoTableDef.EBIKE_BATTERY_INFO;
|
|
import static com.cdzy.ebikemaintenance.model.pojo.table.EbikeHelmetInfoTableDef.EBIKE_HELMET_INFO;
|
|
|
|
/**
|
|
* 车辆基本信息 控制层。
|
|
*
|
|
* @author zjd
|
|
* @since 2025-03-17
|
|
*/
|
|
@Slf4j
|
|
@RestController
|
|
@RequestMapping("/ebikeBikeInfo")
|
|
public class EbikeBikeInfoController {
|
|
|
|
@Autowired
|
|
private EbikeBikeInfoService ebikeBikeInfoService;
|
|
@Autowired
|
|
private EbikeEcuInfoService ebikeEcuInfoService;
|
|
@Autowired
|
|
private EbikeBatteryInfoService ebikeBatteryInfoService;
|
|
@Autowired
|
|
private EbikeHelmetInfoService ebikeHelmetInfoService;
|
|
@Autowired
|
|
private EbikeBikeCheckinService ebikeBikeCheckinService;
|
|
@Resource
|
|
private EbikeSystemInfoService ebikeSystemInfoService;
|
|
@Autowired
|
|
@Resource
|
|
private RedisUtil redisUtil;
|
|
@Autowired
|
|
private MinioUtil minioUtil;
|
|
|
|
|
|
/**
|
|
* 整车信息保存
|
|
*
|
|
* @param reqEbikeBikeInfoDto 车辆基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("saveEbikeInfo")
|
|
public JsonResult<?> saveEbikeInfo(@RequestBody ReqEbikeBikeInfoDto reqEbikeBikeInfoDto) {
|
|
|
|
Boolean b = ebikeBikeInfoService.saveEbikeInfo(reqEbikeBikeInfoDto);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("保存失败");
|
|
}
|
|
|
|
/**
|
|
* 根据车辆ID 获取整车信息详情
|
|
*
|
|
* @param ebikeId 车辆ID
|
|
* @return
|
|
*/
|
|
@RequestMapping("getEbikeInfoById")
|
|
public JsonResult<?> getEbikeInfoById(@RequestParam(name = "ebikeId") String ebikeId) {
|
|
try {
|
|
ReqEbikeBikeInfoDto reqEbikeBikeInfoDto = new ReqEbikeBikeInfoDto();
|
|
EbikeBikeInfo ebikeBikeInfo = ebikeBikeInfoService.getById(ebikeId);
|
|
BeanUtils.copyProperties(ebikeBikeInfo, reqEbikeBikeInfoDto);
|
|
EbikeBatteryInfo ebikeBatteryInfo = ebikeBatteryInfoService.getById(ebikeBikeInfo.getBatteryId());
|
|
EbikeHelmetInfo ebikeHelmetInfo = ebikeHelmetInfoService.getById(ebikeBikeInfo.getHelmetId());
|
|
EbikeEcuInfo ebikeEcuInfo = ebikeEcuInfoService.getById(ebikeBikeInfo.getEcuId());
|
|
reqEbikeBikeInfoDto.setEbikeBatteryInfo(ebikeBatteryInfo);
|
|
reqEbikeBikeInfoDto.setEbikeHelmetInfo(ebikeHelmetInfo);
|
|
reqEbikeBikeInfoDto.setEbikeEcuInfo(ebikeEcuInfo);
|
|
//汉化状态
|
|
String bike_state = ebikeBikeInfo.getState();
|
|
if (bike_state == null || bike_state.isEmpty()) {
|
|
bike_state = "0";
|
|
}
|
|
bike_state = ebikeSystemInfoService.getEbikeCarStatusName(Integer.valueOf(bike_state));
|
|
reqEbikeBikeInfoDto.setState(bike_state);
|
|
return JsonResult.success(reqEbikeBikeInfoDto);
|
|
} catch (Exception e) {
|
|
log.error("getEbikeInfoById===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* 根据车辆编号 获取整车信息详情
|
|
*
|
|
* @param ebikeCode 车辆编号
|
|
* @return
|
|
*/
|
|
@RequestMapping("getEbikeInfoByCode")
|
|
public JsonResult<?> getEbikeInfoByCode(@RequestParam(name = "ebikeCode") String ebikeCode) {
|
|
try {
|
|
ReqEbikeBikeInfoDto reqEbikeBikeInfoDto = new ReqEbikeBikeInfoDto();
|
|
EbikeBikeInfo ebikeBikeInfo = ebikeBikeInfoService.getByBikeCode(ebikeCode);
|
|
BeanUtils.copyProperties(ebikeBikeInfo, reqEbikeBikeInfoDto);
|
|
EbikeBatteryInfo ebikeBatteryInfo = ebikeBatteryInfoService.getById(ebikeBikeInfo.getBatteryId());
|
|
EbikeHelmetInfo ebikeHelmetInfo = ebikeHelmetInfoService.getById(ebikeBikeInfo.getHelmetId());
|
|
EbikeEcuInfo ebikeEcuInfo = ebikeEcuInfoService.getById(ebikeBikeInfo.getEcuId());
|
|
reqEbikeBikeInfoDto.setEbikeBatteryInfo(ebikeBatteryInfo);
|
|
reqEbikeBikeInfoDto.setEbikeHelmetInfo(ebikeHelmetInfo);
|
|
reqEbikeBikeInfoDto.setEbikeEcuInfo(ebikeEcuInfo);
|
|
//汉化状态
|
|
String bike_state = ebikeBikeInfo.getState();
|
|
if (bike_state == null || bike_state.isEmpty()) {
|
|
bike_state = "0";
|
|
}
|
|
bike_state = ebikeSystemInfoService.getEbikeCarStatusName(Integer.valueOf(bike_state));
|
|
reqEbikeBikeInfoDto.setState(bike_state);
|
|
return JsonResult.success(reqEbikeBikeInfoDto);
|
|
} catch (Exception e) {
|
|
log.error("getEbikeInfoByCode===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* 根据车辆编号获取ecuSn
|
|
*
|
|
* @param bikeCode 车辆编号
|
|
* @return
|
|
*/
|
|
@GetMapping("getEbikeEcuSnByCode")
|
|
public JsonResult<?> getEbikeEcuSnByID(@RequestParam(name = "bikeCode") String bikeCode) {
|
|
String ecuSn = ebikeBikeInfoService.getEcuSnByBikeCode(bikeCode);
|
|
if (ecuSn == null || ecuSn.isEmpty()) {
|
|
return JsonResult.failed("获取车辆ECU信息失败");
|
|
}
|
|
return JsonResult.success("获取车辆ECU信息成功", ecuSn);
|
|
}
|
|
|
|
/**
|
|
* 更换头盔
|
|
*
|
|
* @param ebikeBikeInfo 车辆基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("updateEbikeHelmet")
|
|
public JsonResult<?> updateEbikeHelmet(@RequestBody ReqUpdateHelmetDto ebikeBikeInfo) {
|
|
|
|
Boolean b = ebikeBikeInfoService.updateEbikeHelmet(ebikeBikeInfo);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("保存失败");
|
|
}
|
|
|
|
/**
|
|
* 根据头盔编号获取头盔信息
|
|
*
|
|
* @param helmetCode 头盔编号
|
|
* @return
|
|
*/
|
|
@RequestMapping("getHelmetInfo")
|
|
public JsonResult<?> getHelmetInfo(@RequestParam(value = "helmetCode") String helmetCode) {
|
|
|
|
try {
|
|
ResEbikeHelmetInfoDto resEbikeHelmetInfoDto = new ResEbikeHelmetInfoDto();
|
|
QueryWrapper queryWrapper = QueryWrapper.create();
|
|
queryWrapper.eq(EBIKE_HELMET_INFO.HELMET_CODE.getName(), helmetCode);
|
|
EbikeHelmetInfo one = ebikeHelmetInfoService.getOne(queryWrapper);
|
|
BeanUtils.copyProperties(one, resEbikeHelmetInfoDto);
|
|
return JsonResult.success(resEbikeHelmetInfoDto);
|
|
} catch (Exception e) {
|
|
log.error("getHelmetInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed(e.getMessage());
|
|
}
|
|
}
|
|
|
|
///**
|
|
// * 更换中控
|
|
// *
|
|
// * @param reqUpdateEcuDto 车辆基本信息
|
|
// * @return
|
|
// */
|
|
// @PostMapping("updateEbikeEcu")
|
|
// public JsonResult<?> updateEbikeEcu(@RequestBody ReqUpdateEcuDto reqUpdateEcuDto) {
|
|
// Boolean b = ebikeBikeInfoService.updateEbikeEcu(reqUpdateEcuDto);
|
|
// if (b) {
|
|
// return JsonResult.success(true);
|
|
// }
|
|
// return JsonResult.failed("保存失败");
|
|
// }
|
|
|
|
/**
|
|
* 分页查询车辆信息列表
|
|
*
|
|
* @param request 查询参数
|
|
* @return
|
|
*/
|
|
@PostMapping("pageQueryEbikeList")
|
|
public JsonResult<Object> pageQueryEbikeList(@RequestBody ReqEbikeCheckinDto request) {
|
|
//查询车辆信息列表
|
|
Page<ResInventoryBikeListDto> inventoryBikeListDtoPage = ebikeBikeInfoService.getInventoryBikeList(request);
|
|
//汉化状态 改为leftJoin查询
|
|
//inventoryBikeListDtoPage.getRecords().forEach(resInventoryBikeListDto -> {
|
|
// String bikeState = resInventoryBikeListDto.getState();
|
|
// if (bikeState == null || bikeState.isEmpty()) {
|
|
// bikeState = "0";
|
|
// }
|
|
// bikeState = ebikeSystemInfoService.getEbikeCarStatusName(Integer.valueOf(bikeState));
|
|
// resInventoryBikeListDto.setStateName(bikeState);
|
|
//});
|
|
return JsonResult.success(inventoryBikeListDtoPage);
|
|
}
|
|
|
|
/**
|
|
* 获取库存车辆详情信息
|
|
*
|
|
* @param bikeId 车辆ID
|
|
* @return
|
|
*/
|
|
@RequestMapping("getInventoryBikeDetails")
|
|
public JsonResult<?> getInventoryBikeDetails(@RequestParam(name = "bikeId") String bikeId) {
|
|
ResInventoryBikeDetailsDto details = ebikeBikeInfoService.getInventoryBikeDetails(bikeId);
|
|
if (details != null) {
|
|
//查询车辆入库时间
|
|
LocalDateTime bikeCheckinTime = ebikeBikeCheckinService.getBikeCheckinTime(details.getBikeId());
|
|
if (bikeCheckinTime != null) {
|
|
details.setEnterTime(bikeCheckinTime);
|
|
}
|
|
return JsonResult.success(details);
|
|
}
|
|
return JsonResult.failed("获取库存车辆详情信息失败");
|
|
}
|
|
|
|
/**
|
|
* 根据车辆编号获取车辆基本信息
|
|
*
|
|
* @param bikeCode 车辆编号
|
|
* @return
|
|
*/
|
|
@RequestMapping("getBikeINfoData")
|
|
public JsonResult<?> getBikeINfoData(@RequestParam(name = "bikeCode") String bikeCode) {
|
|
|
|
Boolean b = ebikeBikeInfoService.inspectBikeHaveOrNot(bikeCode);
|
|
if (!b) {
|
|
return JsonResult.failed("车辆信息不存在");
|
|
}
|
|
ResEbikeBikeAndEcuCodeDto bikeINfoData = ebikeBikeInfoService.getBikeINfoData(bikeCode);
|
|
if (bikeINfoData != null) {
|
|
return JsonResult.success(bikeINfoData);
|
|
}
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
|
|
|
|
/**
|
|
* 根据头盔编号、车辆编号获取车辆头盔信息
|
|
*
|
|
* @param helmetDto
|
|
* @return
|
|
*/
|
|
@RequestMapping("/getHelmetINfoData")
|
|
public JsonResult<?> getHelmetINfoData(@RequestBody ReqEbikeHelmetDto helmetDto) {
|
|
if ((helmetDto.getHelmetCode() == null || helmetDto.getHelmetCode().isEmpty()) && (helmetDto.getBikeCode() == null || helmetDto.getBikeCode().isEmpty())) {
|
|
return JsonResult.failed("参数不能为空");
|
|
}
|
|
ResEbikeHelmetInfoDto2 helmetINfoData = ebikeHelmetInfoService.getHelmetINfoData(helmetDto);
|
|
if (helmetINfoData != null) {
|
|
ResEbikeHelmetInfoDto helmetInfoDto = new ResEbikeHelmetInfoDto();
|
|
BeanUtils.copyProperties(helmetINfoData, helmetInfoDto);
|
|
if (helmetINfoData.getEcuSn() != null && !helmetINfoData.getEcuSn().isEmpty()) {
|
|
String jsonString = JSONObject.toJSONString(redisUtil.get(helmetINfoData.getEcuSn()));
|
|
ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class);
|
|
if (resGpsDto != null) {
|
|
helmetInfoDto.setUpdatedAt(ConvertUtil.timestampToDate(resGpsDto.getTimestamp().longValue()));
|
|
helmetInfoDto.setHelmetExit(resGpsDto.getHelmetExit() == '0' ? "不在位" : "在位");
|
|
}
|
|
}
|
|
return JsonResult.success(helmetInfoDto);
|
|
}
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
|
|
/**
|
|
* 解绑中控
|
|
*
|
|
* @param bikeId 车辆ID
|
|
* @return
|
|
*/
|
|
@PostMapping("untieEcu")
|
|
public JsonResult<?> untieEcu(@RequestBody List<String> bikeId) {
|
|
|
|
Boolean b = ebikeBikeInfoService.untieEcu(bikeId);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("解绑失败");
|
|
}
|
|
|
|
/**
|
|
* 更换二维码
|
|
*
|
|
* @param reqUpBikeCodeDto 更换二维码dto
|
|
* @return
|
|
*/
|
|
@PostMapping("updateBikeQRCode")
|
|
public JsonResult<?> updateBikeQRCode(@RequestBody ReqUpBikeCodeDto reqUpBikeCodeDto) {
|
|
|
|
Boolean b = ebikeBikeInfoService.updateBikeQRCode(reqUpBikeCodeDto);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("更换成功");
|
|
}
|
|
|
|
/**
|
|
* 车辆批量出库
|
|
*
|
|
* @param reqBulkDeliveryDto 车辆出库信息
|
|
* @return
|
|
*/
|
|
@PostMapping("vehicleLeaveWarehouse")
|
|
public JsonResult<?> vehicleLeaveWarehouse(@RequestBody ReqBulkDeliveryDto reqBulkDeliveryDto) {
|
|
|
|
Boolean b = ebikeBikeInfoService.vehicleLeaveWarehouse(reqBulkDeliveryDto);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("出库失败");
|
|
}
|
|
|
|
|
|
/**
|
|
* 文件上传
|
|
*
|
|
* @param multipartFile 文件对象
|
|
* @return
|
|
*/
|
|
@PostMapping(value = "fileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
|
|
public JsonResult<?> fileUpload(@RequestParam("multipartFile") MultipartFile multipartFile) {
|
|
|
|
try {
|
|
minioUtil.createBucket(MinioUtil.BUCKET_FAULT);
|
|
InputStream inputStream = multipartFile.getInputStream();
|
|
String fileName = multipartFile.getOriginalFilename();
|
|
String fileUniqueKey = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));
|
|
minioUtil.uploadFile(inputStream, MinioUtil.BUCKET_FAULT, fileUniqueKey);
|
|
String fileUrl = minioUtil.getFileUrl(MinioUtil.BUCKET_FAULT, fileUniqueKey);
|
|
ResEbikeFaultReportFileDto resEbikeFaultReportFileDto = new ResEbikeFaultReportFileDto();
|
|
resEbikeFaultReportFileDto.setUrl(fileUrl);
|
|
resEbikeFaultReportFileDto.setFileUniqueKey(fileUniqueKey);
|
|
//resEbikeFaultReportFileDto.setFileBucket(MinioUtil.BUCKET_FAULT);
|
|
resEbikeFaultReportFileDto.setFileName(fileName);
|
|
resEbikeFaultReportFileDto.setFileType(fileName.substring(fileName.lastIndexOf(".")));
|
|
resEbikeFaultReportFileDto.setFileSize(multipartFile.getSize());
|
|
return JsonResult.success(resEbikeFaultReportFileDto);
|
|
} catch (Exception e) {
|
|
log.error("fileUpload===>{}", e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("上传失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除附件
|
|
*
|
|
* @param fileUniqueKey 附件唯一标识
|
|
* @return
|
|
*/
|
|
@RequestMapping("deletedFile")
|
|
public JsonResult<?> deletedFile(@RequestParam(name = "fileUniqueKey") String fileUniqueKey) {
|
|
|
|
try {
|
|
minioUtil.deleteObject(MinioUtil.BUCKET_FAULT, fileUniqueKey);
|
|
return JsonResult.success("删除成功");
|
|
} catch (Exception e) {
|
|
log.error("deletedFile===>{}", e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("删除失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 故障上报提交
|
|
*
|
|
* @param reqEbikeBikeFaultReportDto 故障上报基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("faultReporting")
|
|
public JsonResult<?> faultReporting(@RequestBody ReqEbikeBikeFaultReportDto reqEbikeBikeFaultReportDto) {
|
|
|
|
Boolean b = ebikeBikeInfoService.faultReporting(reqEbikeBikeFaultReportDto);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("提交失败");
|
|
}
|
|
|
|
/**
|
|
* 获取当前车辆所有上报的故障列表
|
|
*
|
|
* @param bikeCode 车辆编号
|
|
* @return
|
|
*/
|
|
@RequestMapping("getFaultReportList")
|
|
public JsonResult<?> getFaultReportList(@RequestParam(name = "bikeCode") String bikeCode) {
|
|
return JsonResult.success(ebikeBikeInfoService.getFaultReportList(bikeCode));
|
|
}
|
|
|
|
/**
|
|
* 检查是否有工单
|
|
*
|
|
* @param reqEbikeWorkOrderDto 工单基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("inspectHaveOrNotWorkOrder")
|
|
public JsonResult<?> inspectHaveOrNotWorkOrder(@RequestBody ReqEbikeWorkOrderDto reqEbikeWorkOrderDto) {
|
|
|
|
EbikeBikeOrder ebikeBikeOrder = ebikeBikeInfoService.inspectHaveOrNotWorkOrder(reqEbikeWorkOrderDto);
|
|
if (ebikeBikeOrder != null) {
|
|
return JsonResult.success("", ebikeBikeOrder.getOrderId());
|
|
}
|
|
return JsonResult.failed("没有找到相关工单信息");
|
|
}
|
|
|
|
/**
|
|
* 故障领取创建工单
|
|
*
|
|
* @param reqEbikeBikeOrderDto 工单基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("createWorkOrder")
|
|
public JsonResult<?> createWorkOrder(@RequestBody ReqEbikeBikeOrderDto reqEbikeBikeOrderDto) {
|
|
|
|
String orderId = ebikeBikeInfoService.createWorkOrder(reqEbikeBikeOrderDto);
|
|
if (!StringUtils.isEmpty(orderId)) {
|
|
return JsonResult.success("", orderId);
|
|
}
|
|
return JsonResult.failed("领取失败");
|
|
}
|
|
|
|
/**
|
|
* 根据车辆编号获取故障信息详情
|
|
*
|
|
* @param orderId 工单ID
|
|
* @return
|
|
*/
|
|
@RequestMapping("getFaultInfo")
|
|
public JsonResult<?> getFaultInfo(@RequestParam(name = "orderId") String orderId) {
|
|
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getFaultInfo(orderId));
|
|
} catch (Exception e) {
|
|
log.error("getFaultInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 故障处理完成
|
|
*
|
|
* @param reqEbikeBikeFaultHandleDto 故障处理完成实体
|
|
* @return
|
|
*/
|
|
@PostMapping("faultHandelComplete")
|
|
public JsonResult<?> faultHandelComplete(@RequestBody ReqEbikeBikeFaultHandleDto reqEbikeBikeFaultHandleDto) {
|
|
|
|
Boolean b = ebikeBikeInfoService.faultHandelComplete(reqEbikeBikeFaultHandleDto);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("处理失败");
|
|
}
|
|
|
|
/**
|
|
* 根据车辆编号获取故障上报历史记录
|
|
*
|
|
* @param reqFaultHistoryListDto 查询参数
|
|
* @return
|
|
*/
|
|
@PostMapping("getFaultHistoryList")
|
|
public JsonResult<?> getFaultHistoryList(@RequestBody ReqFaultHistoryListDto reqFaultHistoryListDto) {
|
|
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getFaultHistoryList(reqFaultHistoryListDto));
|
|
} catch (Exception e) {
|
|
log.error("getFaultHistoryList===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取指令记录列表
|
|
*
|
|
* @param reqInstructionRecordListDto 查询参数
|
|
* @return
|
|
*/
|
|
@PostMapping("getInstructionRecordList")
|
|
public JsonResult<?> getInstructionRecordList(@RequestBody ReqInstructionRecordListDto reqInstructionRecordListDto) {
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getInstructionRecordList(reqInstructionRecordListDto));
|
|
} catch (Exception e) {
|
|
log.error("getFaultHistoryList===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取工单记录列表
|
|
*
|
|
* @param reqWorkOrderRecordListDto 查询参数
|
|
* @return
|
|
*/
|
|
@PostMapping("getWorkOrderRecordList")
|
|
public JsonResult<?> getWorkOrderRecordList(@RequestBody ReqWorkOrderRecordListDto reqWorkOrderRecordListDto) {
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getWorkOrderRecordList(reqWorkOrderRecordListDto));
|
|
} catch (Exception e) {
|
|
log.error("getFaultHistoryList===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 取消工单
|
|
*
|
|
* @param orderId 工单ID orderType 1 维修工单 2 换电工单 3 调度工单
|
|
*
|
|
* @return
|
|
*/
|
|
@RequestMapping("canCellWorkOrder")
|
|
public JsonResult<?> canCellWorkOrder(@RequestParam(name = "orderId") String orderId,@RequestParam(name = "orderType") String orderType) {
|
|
|
|
boolean b = ebikeBikeInfoService.canCellWorkOrder(orderId,orderType);
|
|
if (b) {
|
|
return JsonResult.success(true);
|
|
}
|
|
return JsonResult.failed("取消失败");
|
|
}
|
|
|
|
/**
|
|
* 获取车辆信息详情
|
|
*
|
|
* @param reqEbikeGetBikeDetailsDto 车辆基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("getBikeDetailsINfoData")
|
|
public JsonResult<?> getBikeDetailsINfoData(@RequestBody ReqEbikeGetBikeDetailsDto reqEbikeGetBikeDetailsDto) {
|
|
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getBikeDetailsINfoData(reqEbikeGetBikeDetailsDto));
|
|
} catch (Exception e) {
|
|
log.error("getBikeDetailsINfoData===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 根据EcuSn列表获取车辆信息
|
|
*
|
|
* @param ecuSnDto 中控SN码
|
|
* @return 车辆基本信息列表
|
|
*/
|
|
@PostMapping("getBikeByEcuSn")
|
|
public JsonResult<?> getBikeByEcuSn(@RequestBody ReqEcuSnDto ecuSnDto) {
|
|
List<RspBikeInfo> list = ebikeBikeInfoService.getBikeByEcuSn(ecuSnDto);
|
|
return JsonResult.success(list);
|
|
}
|
|
|
|
/**
|
|
* 获取定位基本信息
|
|
*
|
|
* @param reqEbikeGetBikeDetailsDto 车辆基本信息
|
|
* @return
|
|
*/
|
|
@PostMapping("getOrientationInfo")
|
|
public JsonResult<?> getOrientationInfo(@RequestBody ReqEbikeGetBikeDetailsDto reqEbikeGetBikeDetailsDto) {
|
|
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getOrientationInfo(reqEbikeGetBikeDetailsDto));
|
|
} catch (Exception e) {
|
|
log.error("getOrientationInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 保存头盔信息
|
|
*
|
|
* @param helmetCodes 头盔编号
|
|
* @return
|
|
*/
|
|
@PostMapping("saveHelmetInfo")
|
|
public JsonResult<?> saveHelmetInfo(@RequestBody List<String> helmetCodes) {
|
|
|
|
try {
|
|
List<EbikeHelmetInfo> ebikeHelmetInfos = new ArrayList<>();
|
|
for (String helmetCode : helmetCodes) {
|
|
QueryWrapper query = QueryWrapper.create();
|
|
query.eq(EBIKE_HELMET_INFO.HELMET_CODE.getName(), helmetCode);
|
|
EbikeHelmetInfo one = ebikeHelmetInfoService.getOne(query);
|
|
if (one == null) {
|
|
EbikeHelmetInfo ebikeHelmetInfo = new EbikeHelmetInfo();
|
|
ebikeHelmetInfo.setHelmetCode(helmetCode);
|
|
ebikeHelmetInfos.add(ebikeHelmetInfo);
|
|
}
|
|
}
|
|
if (!ebikeHelmetInfos.isEmpty()) {
|
|
ebikeHelmetInfoService.saveBatch(ebikeHelmetInfos);
|
|
}
|
|
return JsonResult.success();
|
|
} catch (Exception e) {
|
|
log.error("saveHelmetInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("保存失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 保存电池信息
|
|
*
|
|
* @param batteryCodes 电池编号
|
|
* @return
|
|
*/
|
|
@PostMapping("saveBatteryInfo")
|
|
public JsonResult<?> saveBatteryInfo(@RequestBody List<String> batteryCodes) {
|
|
|
|
try {
|
|
List<EbikeBatteryInfo> ebikeBatteryInfos = new ArrayList<>();
|
|
for (String batteryCode : batteryCodes) {
|
|
QueryWrapper query = QueryWrapper.create();
|
|
query.eq(EBIKE_BATTERY_INFO.BATTERY_CODE.getName(), batteryCode);
|
|
EbikeBatteryInfo one = ebikeBatteryInfoService.getOne(query);
|
|
if (one == null) {
|
|
EbikeBatteryInfo ebikeBatteryInfo = new EbikeBatteryInfo();
|
|
ebikeBatteryInfo.setBatteryCode(batteryCode);
|
|
ebikeBatteryInfos.add(ebikeBatteryInfo);
|
|
}
|
|
}
|
|
if (!ebikeBatteryInfos.isEmpty()) {
|
|
ebikeBatteryInfoService.saveBatch(ebikeBatteryInfos);
|
|
}
|
|
return JsonResult.success();
|
|
} catch (Exception e) {
|
|
log.error("saveHelmetInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("保存失败");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取工单详情信息
|
|
*
|
|
* @param orderId 工单ID
|
|
* @return
|
|
*/
|
|
@RequestMapping("getWorkOrderInfo")
|
|
public JsonResult<?> getWorkOrderInfo(@RequestParam(value = "orderId") String orderId) {
|
|
try {
|
|
return JsonResult.success(ebikeBikeInfoService.getWorkOrderInfo(orderId));
|
|
} catch (Exception e) {
|
|
log.error("getWorkOrderInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("获取信息失败");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 删除头盔信息
|
|
*
|
|
* @param helmetCodes 头盔编号
|
|
* @return
|
|
*/
|
|
@PostMapping("deleteHelmetInfo")
|
|
public JsonResult<?> deleteHelmetInfo(@RequestBody List<String> helmetCodes) {
|
|
try {
|
|
List<String> ebikeHelmetIds = new ArrayList<>();
|
|
for (String helmetCode : helmetCodes) {
|
|
QueryWrapper query = QueryWrapper.create();
|
|
query.eq(EBIKE_HELMET_INFO.HELMET_CODE.getName(), helmetCode);
|
|
EbikeHelmetInfo one = ebikeHelmetInfoService.getOne(query);
|
|
if (one == null) {
|
|
ebikeHelmetIds.add(one.getHelmetId());
|
|
}
|
|
}
|
|
if (!ebikeHelmetIds.isEmpty()) {
|
|
ebikeHelmetInfoService.removeByIds(ebikeHelmetIds);
|
|
}
|
|
return JsonResult.success();
|
|
} catch (Exception e) {
|
|
log.error("deleteHelmetInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("删除失败");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 删除电池信息
|
|
*
|
|
* @param batteryCodes 电池编号
|
|
* @return
|
|
*/
|
|
@PostMapping("deleteBatteryInfo")
|
|
public JsonResult<?> deleteBatteryInfo(@RequestBody List<String> batteryCodes) {
|
|
|
|
try {
|
|
List<String> ebikeBatteryIds = new ArrayList<>();
|
|
for (String batteryCode : batteryCodes) {
|
|
QueryWrapper query = QueryWrapper.create();
|
|
query.eq(EBIKE_BATTERY_INFO.BATTERY_CODE.getName(), batteryCode);
|
|
EbikeBatteryInfo one = ebikeBatteryInfoService.getOne(query);
|
|
if (one == null) {
|
|
ebikeBatteryIds.add(one.getBatteryId());
|
|
}
|
|
}
|
|
if (!ebikeBatteryIds.isEmpty()) {
|
|
ebikeBatteryInfoService.removeByIds(ebikeBatteryIds);
|
|
}
|
|
return JsonResult.success();
|
|
} catch (Exception e) {
|
|
log.error("deleteBatteryInfo===>" + e.getMessage() + Arrays.toString(e.getStackTrace()));
|
|
return JsonResult.failed("删除失败");
|
|
}
|
|
}
|
|
/**
|
|
* 批量投放,创建车辆调度工单
|
|
*
|
|
* @param reqWorkOrderDispatchDto 车辆编号
|
|
* @return
|
|
*/
|
|
@PostMapping("createWorkOrderDispatch")
|
|
public JsonResult<?> createWorkOrderDispatch(@RequestBody ReqWorkOrderDispatchDto reqWorkOrderDispatchDto) {
|
|
|
|
String orderId = ebikeBikeInfoService.createWorkOrderDispatch(reqWorkOrderDispatchDto);
|
|
if (!StringUtils.isEmpty(orderId)) {
|
|
return JsonResult.success("", orderId);
|
|
}
|
|
return JsonResult.failed("创建调度工单失败");
|
|
}
|
|
/**
|
|
* 根据工单id 获取调度车辆数据接口
|
|
*
|
|
* @param orderId 工单Id
|
|
* @return
|
|
*/
|
|
@GetMapping("getDispatchVehicleByOrderId")
|
|
public JsonResult<?> getDispatchVehicleByOrderId(@RequestParam(name = "orderId") String orderId) {
|
|
ResDispatchVehicleDto resDispatchVehicleDto = ebikeBikeInfoService.getDispatchVehicleByOrderId(orderId);
|
|
if (!StringUtils.isEmpty(resDispatchVehicleDto)) {
|
|
return JsonResult.success("", resDispatchVehicleDto);
|
|
}
|
|
return JsonResult.failed("获取调度车辆数据失败!");
|
|
}
|
|
/**
|
|
* 有工单-根据工单ID 车辆编号 新增调度车车辆
|
|
* @param ebikeDispatchRecordDto
|
|
*/
|
|
|
|
@PostMapping("createDispatchRecord")
|
|
public JsonResult<?> createDispatchRecord(@RequestBody ReqEbikeDispatchRecordDto ebikeDispatchRecordDto) {
|
|
EbikeDispatchRecords dispatchRecord = ebikeBikeInfoService.createDispatchRecord(ebikeDispatchRecordDto);
|
|
if (!StringUtils.isEmpty(dispatchRecord)) {
|
|
return JsonResult.success("", dispatchRecord);
|
|
}else{
|
|
return JsonResult.failed("车辆已经在调度列表中!");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除调度记录接口
|
|
* @param recordId
|
|
* @return
|
|
*/
|
|
@GetMapping("deleteDispatchRecord")
|
|
public JsonResult<?> deleteDispatchRecord(@RequestParam(name = "recordId") String recordId) {
|
|
Boolean aBoolean = ebikeBikeInfoService.deleteDispatchRecord(recordId);
|
|
if (aBoolean) {
|
|
return JsonResult.success("删除成功", aBoolean);
|
|
}
|
|
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);
|
|
}
|
|
/**
|
|
* 完成投放
|
|
*
|
|
* @param request 完成投放请求参数 orderId
|
|
* @return
|
|
*/
|
|
@PostMapping("completeDeployment")
|
|
public JsonResult<?> completeDeployment(@RequestBody Map<String,Object> request) {
|
|
// 调用服务层方法,执行完成投放操作
|
|
return ebikeBikeInfoService.completeDeployment(request);
|
|
}
|
|
/**
|
|
* 获取工单列表
|
|
*
|
|
* @param request 获取工单列表请求参数,如分页信息、筛选条件等
|
|
* @return 返回工单列表数据
|
|
*/
|
|
@PostMapping("getWorkOrderList")
|
|
public JsonResult<?> getWorkOrderList(@RequestBody Map<String, Object> request) {
|
|
// 调用服务层方法,获取工单列表数据
|
|
return ebikeBikeInfoService.getWorkOrderList(request);
|
|
}
|
|
|
|
/**
|
|
*根据regin_id 获取车辆详情和EcuId
|
|
* @param regionId
|
|
* @return
|
|
*/
|
|
@GetMapping("getVehicleDetailsByRegionId")
|
|
public JsonResult<?> getVehicleDetailsByRegionId(@RequestParam(name = "regionId") String regionId) {
|
|
// 调用服务层方法,获取工单列表数据
|
|
return ebikeBikeInfoService.getVehicleDetailsByRegionId(regionId);
|
|
}
|
|
}
|