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