故障上报生成巡检工单

This commit is contained in:
yanglei 2025-11-26 11:10:29 +08:00
parent 2b18099dc6
commit a3fda60ae3
2 changed files with 31 additions and 24 deletions

View File

@ -10,7 +10,8 @@ import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import static com.cdzy.user.model.entity.table.EbikeAttachmentFileTableDef.EBIKE_ATTACHMENT_FILE;
import static com.cdzy.user.model.entity.table.EbikeFaultFileTableDef.EBIKE_FAULT_FILE;
/**
* 用车相关附件文件记录 服务实现类
@ -24,16 +25,16 @@ public class EbikeFaultFileServiceImpl extends ServiceImpl<EbikeFaultFileMapper,
@Override
public List<EbikeFaultFile> queryFiles(Long reportId) {
QueryWrapper query = QueryWrapper.create()
.select(EBIKE_ATTACHMENT_FILE.ALL_COLUMNS)
.where(EBIKE_ATTACHMENT_FILE.REPORT_ID.eq(reportId));
.select(EBIKE_FAULT_FILE.ALL_COLUMNS)
.where(EBIKE_FAULT_FILE.REPORT_ID.eq(reportId));
return this.mapper.selectListByQuery(query);
}
@Override
public void deleteFileByReportId(Long reportId) {
QueryWrapper query = QueryWrapper.create()
.select(EBIKE_ATTACHMENT_FILE.ALL_COLUMNS)
.where(EBIKE_ATTACHMENT_FILE.REPORT_ID.eq(reportId));
.select(EBIKE_FAULT_FILE.ALL_COLUMNS)
.where(EBIKE_FAULT_FILE.REPORT_ID.eq(reportId));
this.mapper.deleteByQuery(query);
}
@ -43,7 +44,7 @@ public class EbikeFaultFileServiceImpl extends ServiceImpl<EbikeFaultFileMapper,
return Collections.emptyList();
}
QueryWrapper query = QueryWrapper.create()
.and(EBIKE_ATTACHMENT_FILE.REPORT_ID.in(reportIds));
.and(EBIKE_FAULT_FILE.REPORT_ID.in(reportIds));
return this.list(query);
}
}

View File

@ -38,7 +38,7 @@ import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
import static com.cdzy.user.model.entity.table.EbikeAttachmentFileTableDef.EBIKE_ATTACHMENT_FILE;
import static com.cdzy.user.model.entity.table.EbikeFaultFileTableDef.EBIKE_FAULT_FILE;
import static com.cdzy.user.model.entity.table.EbikeFaultPartTableDef.EBIKE_FAULT_PART;
import static com.cdzy.user.model.entity.table.EbikeFaultReportTableDef.EBIKE_FAULT_REPORT;
import static com.cdzy.user.model.entity.table.EbikeUserTableDef.EBIKE_USER;
@ -96,23 +96,28 @@ public class EbikeFaultReportServiceImpl extends ServiceImpl<EbikeFaultReportMap
.collect(Collectors.toList());
ebikeAttachmentFileService.saveBatch(fileEntities);
}
// 保存故障上报部位
List<Integer> faultPart = ebikeFaultReportDto.getFaultPart();
List<EbikeFaultPart> fileEntities = faultPart.stream().map(e -> EbikeFaultPart.builder()
List<Integer> faultPart = Optional.ofNullable(ebikeFaultReportDto.getFaultPart())
.orElse(Collections.emptyList());
if (!faultPart.isEmpty()) {
List<EbikeFaultPart> partEntities = faultPart.stream()
.map(part -> EbikeFaultPart.builder()
.reportId(reportId)
.faultPart(e)
.faultPart(part)
.createBy(ebikeFaultReportDto.getUserId())
.build())
.toList();
ebikeFaultPartService.saveBatch(fileEntities);
// 根据bikeCode生成巡检工单
List<String> fileUrls = null;
if (Objects.nonNull(attachmentFiles)) {
fileUrls = attachmentFiles.stream()
ebikeFaultPartService.saveBatch(partEntities);
}
// 获取附件 URL 列表
List<String> fileUrls = Optional.ofNullable(ebikeFaultReportDto.getAttachmentFiles())
.orElse(Collections.emptyList())
.stream()
.map(EbikeFaultFileDto::getFileUrl)
.filter(Objects::nonNull)
.toList();
}
// 生成巡检工单
FeignInspectionSwapOrderVo feignInspectionSwapOrderVo = FeignInspectionSwapOrderVo.builder()
.bikeCode(ebikeFaultReportDto.getBikeCode())
.parts(faultPart)
@ -122,6 +127,7 @@ public class EbikeFaultReportServiceImpl extends ServiceImpl<EbikeFaultReportMap
if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException("故障上报生成巡检工单失败!");
}
return reportId;
}
@ -389,8 +395,8 @@ public class EbikeFaultReportServiceImpl extends ServiceImpl<EbikeFaultReportMap
// 获取上传图片 按照reportId分组
QueryWrapper attachmentQuery = QueryWrapper.create()
.select(EBIKE_ATTACHMENT_FILE.ALL_COLUMNS)
.where(EBIKE_ATTACHMENT_FILE.REPORT_ID.in(reportIds));
.select(EBIKE_FAULT_FILE.ALL_COLUMNS)
.where(EBIKE_FAULT_FILE.REPORT_ID.in(reportIds));
List<EbikeFaultFile> allAttachments = ebikeAttachmentFileService.list(attachmentQuery);
Map<Long, List<EbikeFaultFile>> attachmentsByReportId = allAttachments.stream()
.collect(Collectors.groupingBy(EbikeFaultFile::getReportId));