diff --git a/ebike-feign/pom.xml b/ebike-feign/pom.xml
index 8529eb9c..74252b05 100644
--- a/ebike-feign/pom.xml
+++ b/ebike-feign/pom.xml
@@ -8,9 +8,7 @@
0.0.1-SNAPSHOT
4.0.0
-
ebike-feign
-
diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeFaultreportReviewController.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeFaultreportReviewController.java
index ef51c19d..0d407307 100644
--- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeFaultreportReviewController.java
+++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/controller/EbikeFaultreportReviewController.java
@@ -1,9 +1,12 @@
package com.cdzy.ebikemaintenance.controller;
+import com.cdzy.common.model.EbikeOrderAttachmentFileDto;
import com.cdzy.common.model.EbikeUserFaultreportDto;
import com.cdzy.common.model.EbikeUserFaultreportQueryDto;
import com.cdzy.common.model.JsonResult;
import com.cdzy.ebikemaintenance.model.dto.response.EbikeFaultreportReviewDto;
+import com.cdzy.ebikemaintenance.model.dto.response.ResEbikeUserFaultreportDto;
+import com.cdzy.ebikemaintenance.model.pojo.EbikeBikeFaultReportFile;
import com.cdzy.ebikemaintenance.model.pojo.EbikeFaultreportReview;
import com.ebike.feign.clients.OrdersFeignClient;
import jakarta.annotation.Resource;
@@ -87,6 +90,10 @@ public class EbikeFaultreportReviewController {
*/
@PostMapping("userFaultreports")
public JsonResult> getUserFaultreports(@RequestBody EbikeUserFaultreportQueryDto queryParam) {
- return ebikeUserFaultreportService.getUserReportList(queryParam);
+ List faultReportDtos = ebikeFaultreportReviewService.getUserReportList(queryParam);
+ if (faultReportDtos == null) {
+ return JsonResult.failed("未查询到用户上报故障信息");
+ }
+ return JsonResult.success(faultReportDtos);
}
}
diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/EbikeFaultreportReviewDto.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/EbikeFaultreportReviewDto.java
index 63d50fda..8c57b1f5 100644
--- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/EbikeFaultreportReviewDto.java
+++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/EbikeFaultreportReviewDto.java
@@ -2,6 +2,7 @@ package com.cdzy.ebikemaintenance.model.dto.response;
import com.cdzy.common.model.EbikeOrderAttachmentFileDto;
import com.cdzy.common.model.EbikeUserFaultreportDto;
+import com.cdzy.ebikemaintenance.model.pojo.EbikeBikeFaultReportFile;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -74,9 +75,9 @@ public class EbikeFaultreportReviewDto implements Serializable {
/**
* 附件文件列表
*/
- List attachmentFiles;
+ List attachmentFiles;
/**
* 故障上报列表
*/
- List faultReports;
+ List faultReports;
}
diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/ResEbikeUserFaultreportDto.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/ResEbikeUserFaultreportDto.java
new file mode 100644
index 00000000..13af4c07
--- /dev/null
+++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/model/dto/response/ResEbikeUserFaultreportDto.java
@@ -0,0 +1,112 @@
+package com.cdzy.ebikemaintenance.model.dto.response;
+
+import com.cdzy.ebikemaintenance.model.pojo.EbikeBikeFaultReportFile;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 用户上报故障信息 运维端类。
+ *
+ * @author dingchao
+ * @since 2025-04-17
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResEbikeUserFaultreportDto implements Serializable {
+
+ /**
+ * ID
+ */
+ private String faultReportId;
+
+ /**
+ * 车辆编号
+ */
+ private String bikeCode;
+
+ /**
+ * 当前位置
+ */
+ private String position;
+
+ /**
+ * 损坏部件
+ */
+ private String faultPart;
+
+ /**
+ * 故障说明
+ */
+ private String faultDescription;
+
+ /**
+ * 上报时间
+ */
+ private LocalDateTime reportAt;
+
+ /**
+ * 删除状态;1已删除
+ */
+ private String isDeleted;
+
+ /**
+ * 更新时间
+ */
+ private LocalDateTime updatedAt;
+
+ /**
+ * 删除时间
+ */
+ private LocalDateTime deletedAt;
+
+ /**
+ * 上报人
+ */
+ private String reportUser;
+
+ /**
+ * 上报人手机号
+ */
+ private String userMobile;
+
+ /**
+ * 上报来源
+ */
+ private String reportSource;
+
+ /**
+ * 处理状态
+ */
+ private String handleState;
+
+ /**
+ * 当前位置经度
+ */
+ private Double longitude;
+
+ /**
+ * 当前位置纬度
+ */
+ private Double latitude;
+
+ /**
+ * 订单编号
+ */
+ private String orderCode;
+
+ /**
+ * 工单ID
+ */
+ private String workorderId;
+
+ /**
+ * 附件文件列表
+ */
+ List reportAttachments;
+}
diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeFaultreportReviewService.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeFaultreportReviewService.java
index 2e4e3a13..091eb5da 100644
--- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeFaultreportReviewService.java
+++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/EbikeFaultreportReviewService.java
@@ -1,11 +1,15 @@
package com.cdzy.ebikemaintenance.service;
+import com.cdzy.common.model.EbikeUserFaultreportDto;
import com.cdzy.common.model.EbikeUserFaultreportQueryDto;
import com.cdzy.common.model.JsonResult;
import com.cdzy.ebikemaintenance.model.dto.response.EbikeFaultreportReviewDto;
+import com.cdzy.ebikemaintenance.model.dto.response.ResEbikeUserFaultreportDto;
import com.mybatisflex.core.service.IService;
import com.cdzy.ebikemaintenance.model.pojo.EbikeFaultreportReview;
+import java.util.List;
+
/**
* 用户上报故障审查 服务层。
*
@@ -35,4 +39,18 @@ public interface EbikeFaultreportReviewService extends IService getUserReportList(EbikeUserFaultreportQueryDto queryParam);
+ /**
+ * 转换订单附件格式为运维上报附件格式
+ *
+ * @param ebikeUserFaultreportDto
+ * @return
+ */
+ ResEbikeUserFaultreportDto fromEbikeUserFaultreportDto(EbikeUserFaultreportDto ebikeUserFaultreportDto);
}
diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeFaultreportReviewServiceImpl.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeFaultreportReviewServiceImpl.java
index ac48d3ad..bff54d42 100644
--- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeFaultreportReviewServiceImpl.java
+++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/service/impl/EbikeFaultreportReviewServiceImpl.java
@@ -1,6 +1,7 @@
package com.cdzy.ebikemaintenance.service.impl;
-import com.cdzy.common.model.EbikeOrderAttachmentFileDto;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
import com.cdzy.common.model.EbikeUserFaultreportDto;
import com.cdzy.common.model.EbikeUserFaultreportQueryDto;
import com.cdzy.common.model.JsonResult;
@@ -9,6 +10,8 @@ import com.cdzy.ebikemaintenance.mapper.EbikeFaultreportReviewMapper;
import com.cdzy.ebikemaintenance.model.dto.request.ReqEbikeBikeFaultReportDto;
import com.cdzy.ebikemaintenance.model.dto.request.ReqEbikeFaultReportFileDto;
import com.cdzy.ebikemaintenance.model.dto.response.EbikeFaultreportReviewDto;
+import com.cdzy.ebikemaintenance.model.dto.response.ResEbikeFaultReportFileDto;
+import com.cdzy.ebikemaintenance.model.dto.response.ResEbikeUserFaultreportDto;
import com.cdzy.ebikemaintenance.model.pojo.EbikeBikeFaultReportFile;
import com.cdzy.ebikemaintenance.model.pojo.EbikeFaultreportReview;
import com.cdzy.ebikemaintenance.service.EbikeBikeInfoService;
@@ -60,24 +63,24 @@ public class EbikeFaultreportReviewServiceImpl extends ServiceImpl attachmentFiles = ebikeFaultreportReview.getAttachmentFiles().stream().map(dto -> {
- EbikeBikeFaultReportFile attachment = new EbikeBikeFaultReportFile();
- attachment.setFileUniqueKey(dto.getFileKey());
- attachment.setFileBucket(dto.getFileBucket());
- attachment.setFileSize(dto.getFileSize());
- attachment.setFileType(dto.getFileType());
- attachment.setFileName(dto.getFileName());
- attachment.setCreatedAt(dto.getUploadTime());
- attachment.setReportId(entity.getReviewId());
- return attachment;
+ List attachmentFiles = ebikeFaultreportReview.getAttachmentFiles().stream().map(file -> {
+ EbikeBikeFaultReportFile attachmentFile = new EbikeBikeFaultReportFile();
+ BeanUtils.copyProperties(file, attachmentFile);
+ return attachmentFile;
}).toList();
if (!attachmentFiles.isEmpty()) {
+ for (EbikeBikeFaultReportFile file : attachmentFiles) {
+ file.setReportId(entity.getReviewId());
+ }
ebikeBikeFaultReportFileMapper.insertBatch(attachmentFiles);
}
// 保存上报管理信息
+ final EbikeFaultreportReview finalEntity = entity;
List userFaultreports = ebikeFaultreportReview.getFaultReports().stream().map(faultReportDto -> {
- faultReportDto.setWorkorderId(entity.getReviewId());
- return faultReportDto;
+ EbikeUserFaultreportDto userFaultreportDto = new EbikeUserFaultreportDto();
+ BeanUtils.copyProperties(faultReportDto, userFaultreportDto);
+ userFaultreportDto.setWorkorderId(finalEntity.getReviewId());
+ return userFaultreportDto;
}).toList();
if (!userFaultreports.isEmpty()) {
ebikeUserFaultreportService.updateUserFaultreports(userFaultreports);
@@ -138,20 +141,62 @@ public class EbikeFaultreportReviewServiceImpl extends ServiceImpl attachmentFiles = ebikeBikeFaultReportFileMapper.selectListByCondition(EBIKE_BIKE_FAULT_REPORT_FILE.REPORT_ID.eq(entity.getReviewId()));
dto.setAttachmentFiles(attachmentFiles.stream().map(file -> {
- EbikeOrderAttachmentFileDto attachmentFileDto = new EbikeOrderAttachmentFileDto();
- BeanUtils.copyProperties(file, attachmentFileDto);
- attachmentFileDto.setFileUrl(minioUtil.getFileUrl2(file.getFileBucket(), file.getFileUniqueKey()));
- return attachmentFileDto;
+ ResEbikeFaultReportFileDto attachmentFile = new ResEbikeFaultReportFileDto();
+ BeanUtils.copyProperties(file, attachmentFile);
+ attachmentFile.setUrl(minioUtil.getFileUrl2(file.getFileBucket(), file.getFileUniqueKey()));
+ return attachmentFile;
}).toList());
// 查询上报管理信息
EbikeUserFaultreportQueryDto req = new EbikeUserFaultreportQueryDto();
req.setBikeCode(bikeCode);
JsonResult> result = ebikeUserFaultreportService.getUserReportList(req);
if (result.getCode() == 200) {
- List userFaultreports = (List) result.getData();
- dto.setFaultReports(userFaultreports);
+ List userFaultreports = fromRestResult(result.getData());
+ List faultReports = userFaultreports.stream().map(this::fromEbikeUserFaultreportDto).toList();
+ dto.setFaultReports(faultReports);
}
return dto;
}
+ @Override
+ public List getUserReportList(EbikeUserFaultreportQueryDto queryParam) {
+ JsonResult> result = ebikeUserFaultreportService.getUserReportList(queryParam);
+ if (result.getCode() != 200) {
+ return null;
+ }
+ //附件结构转为运维的附件结构
+ List ebikeUserFaultreportDtos = fromRestResult(result.getData());
+ List faultReportDtos = ebikeUserFaultreportDtos.stream().map(this::fromEbikeUserFaultreportDto).toList();
+ return faultReportDtos;
+ }
+
+ @Override
+ public ResEbikeUserFaultreportDto fromEbikeUserFaultreportDto(EbikeUserFaultreportDto ebikeUserFaultreportDto) {
+ ResEbikeUserFaultreportDto faultReportDto = new ResEbikeUserFaultreportDto();
+ BeanUtils.copyProperties(ebikeUserFaultreportDto, faultReportDto);
+ List attachmentFiles = ebikeUserFaultreportDto.getAttachmentFiles().stream().map(fileDto -> {
+ ResEbikeFaultReportFileDto attachmentFile = new ResEbikeFaultReportFileDto();
+ attachmentFile.setFileUniqueKey(fileDto.getFileKey());
+ attachmentFile.setFileBucket(fileDto.getFileBucket());
+ attachmentFile.setFileSize(fileDto.getFileSize());
+ attachmentFile.setFileType(fileDto.getFileType());
+ attachmentFile.setFileName(fileDto.getFileName());
+ attachmentFile.setUrl(fileDto.getFileUrl());
+ return attachmentFile;
+ }).toList();
+ faultReportDto.setReportAttachments(attachmentFiles);
+ return faultReportDto;
+ }
+
+ /**
+ * 将rest接口返回结果转为list
+ * 因为rest接口返回结果是LinkedHashMap,所以需要转换为list
+ *
+ * @param result rest接口返回结果[{}]
+ * @return
+ */
+ private List fromRestResult(Object result){
+ List ebikeUserFaultreportDtos = JSON.parseArray(JSONObject.toJSONString(result), EbikeUserFaultreportDto.class);
+ return ebikeUserFaultreportDtos;
+ }
}
diff --git a/ebike-operate/pom.xml b/ebike-operate/pom.xml
index 097134f7..33b0f970 100644
--- a/ebike-operate/pom.xml
+++ b/ebike-operate/pom.xml
@@ -104,11 +104,7 @@
spring-boot-starter-validation
${boot.version}
-
- com.mybatis-flex
- mybatis-flex-codegen
- 1.10.8
-
+
com.zaxxer
HikariCP
diff --git a/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java b/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java
index 920f8250..c8a4aab8 100644
--- a/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java
+++ b/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java
@@ -1,5 +1,6 @@
package com.cdzy.orders.model.entity;
+import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
@@ -57,6 +58,7 @@ public class EbikeUserFaultreport implements Serializable {
/**
* 上报时间
*/
+ @Column(onInsertValue = "now()")
private LocalDateTime reportAt;
/**
@@ -67,6 +69,7 @@ public class EbikeUserFaultreport implements Serializable {
/**
* 更新时间
*/
+ @Column(onUpdateValue = "now()")
private LocalDateTime updatedAt;
/**
diff --git a/ebike-orders/src/main/resources/application-dev.yml b/ebike-orders/src/main/resources/application-dev.yml
index 6226473c..87f4b669 100644
--- a/ebike-orders/src/main/resources/application-dev.yml
+++ b/ebike-orders/src/main/resources/application-dev.yml
@@ -1,7 +1,7 @@
server:
port: 10016
- servlet:
- context-path: /order
+# servlet:
+# context-path: /order
spring:
application:
name: ebike-orders