From 43de593cb00e3a022bdd28674defa24742a9d71f Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Thu, 7 May 2026 09:53:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms-pdi-task-record):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=89=8D=E6=A3=80=E6=B5=8B=E9=A1=B9=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在QmsPdiTaskRecordController中新增deliveryDetail接口 - 实现QmsPdiTaskRecordControllerService的deliveryDetail方法 - 查询任务下所有inspectionItemType为2的检测项及其图片URL列表 - 批量获取发货检查项规则并返回对应的检查项目checklist - 定义DeliveryItemDetailVO用于返回发货前检测项明细结构 - 图片字段inspectionItemImage按逗号拆分为URL字符串列表返回 --- .../QmsPdiTaskRecordController.java | 9 +++ .../QmsPdiTaskRecordControllerService.java | 57 +++++++++++++++++++ .../pojo/vo/QmsPdiTaskRecordDetailVO.java | 22 +++++++ 3 files changed, 88 insertions(+) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiTaskRecordController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiTaskRecordController.java index b3523f6f..fe803158 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiTaskRecordController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiTaskRecordController.java @@ -91,4 +91,13 @@ public class QmsPdiTaskRecordController extends BaseController { @NotNull(message = "任务ID不能为空") @RequestParam Long id) { return ApiResult.success(taskRecordControllerService.summary(id)); } + + /** + * 发货前检测项详情(inspectionItemType=2),图片直接返回URL列表 + */ + @GetMapping("deliveryDetail") + public ApiResult> deliveryDetail( + @NotNull(message = "任务ID不能为空") @RequestParam Long id) { + return ApiResult.success(taskRecordControllerService.deliveryDetail(id)); + } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiTaskRecordControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiTaskRecordControllerService.java index e7e6ac77..cb6ec8f6 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiTaskRecordControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiTaskRecordControllerService.java @@ -323,6 +323,63 @@ public class QmsPdiTaskRecordControllerService { return convertImageIdsToVO(result.getInspectionItemImage()); } + // ========================= 发货前检测项详情 ========================= + + /** + * 查询发货前检测项(inspectionItemType=2),图片直接返回URL列表 + */ + public List deliveryDetail(Long taskId) { + // 查询该任务下所有 type=2 的记录 + List results = inspectionResultsService.lambdaQuery() + .eq(QmsPdiInspectionResults::getTaskId, taskId) + .eq(QmsPdiInspectionResults::getInspectionItemType, 2) + .list(); + + if (results.isEmpty()) { + return List.of(); + } + + // 批量查 delivery_item 获取 checklist + Set deliveryItemIds = results.stream() + .map(QmsPdiInspectionResults::getInspectionItemId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + Map deliveryItemMap = Map.of(); + if (!deliveryItemIds.isEmpty()) { + List deliveryItems = deliveryItemService.listByIds(deliveryItemIds); + deliveryItemMap = deliveryItems.stream() + .collect(Collectors.toMap(QmsPdiDetectionRulesDeliveryItem::getId, di -> di, (a, b) -> a)); + } + + // 构建返回列表 + Map finalMap = deliveryItemMap; + List detailList = new ArrayList<>(); + for (QmsPdiInspectionResults r : results) { + QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO vo = new QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO(); + vo.setDeliveryItemId(r.getInspectionItemId()); + + // checklist 从 delivery_item 获取 + QmsPdiDetectionRulesDeliveryItem di = finalMap.get(r.getInspectionItemId()); + if (di != null) { + vo.setChecklist(di.getChecklist()); + } + + // inspectionItemImage 按逗号拆分,直接返回URL列表 + String imageStr = r.getInspectionItemImage(); + if (imageStr != null && !imageStr.isEmpty()) { + vo.setInspectionItemImage(Arrays.stream(imageStr.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .collect(Collectors.toList())); + } else { + vo.setInspectionItemImage(List.of()); + } + + detailList.add(vo); + } + return detailList; + } + // ========================= 任务概要 ========================= /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java index 1bc537e8..0f93a154 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java @@ -110,4 +110,26 @@ public class QmsPdiTaskRecordDetailVO { */ private List inspectionItemImage; } + + /** + * 发货前检测项明细VO(图片直接返回URL列表) + */ + @Data + public static class DeliveryItemDetailVO { + + /** + * 发货检查项ID + */ + private Long deliveryItemId; + + /** + * 检查项目 + */ + private String checklist; + + /** + * 现场图片/视频URL列表 + */ + private List inspectionItemImage; + } }