From ad69c87ab24bcfea434c65a45146bd97607b87f7 Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Wed, 6 May 2026 16:38:20 +0800 Subject: [PATCH] =?UTF-8?q?ID=E6=9F=A5=E8=AF=A2=E4=BB=BB=E5=8A=A1=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=B9=B6=E5=85=B3=E8=81=94?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E8=A7=84=E5=88=99=E8=8E=B7=E5=8F=96=E6=9C=BA?= =?UTF-8?q?=E5=9E=8B=E5=8F=8A=E7=89=88=E6=9C=AC=20-=20=E7=BB=9F=E8=AE=A1in?= =?UTF-8?q?spectionResults=E4=B8=AD=E9=9D=99=E6=80=81=E3=80=81=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=92=8C=E7=89=B9=E6=AE=8A=E6=A3=80=E6=B5=8B=E9=A1=B9?= =?UTF-8?q?=E6=95=B0=E9=87=8F=20-=20=E6=9C=AA=E6=9F=A5=E8=AF=A2=E5=88=B0?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=97=B6=E6=8A=9B=E5=87=BA=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8F=90=E9=86=92=E4=BB=BB=E5=8A=A1=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8feat(summary):=20=E6=B7=BB=E5=8A=A0PDI?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A6=82=E8=A6=81=E6=8E=A5=E5=8F=A3=E5=8F=8A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增QmsPdiTaskRecordSummaryVO,封装任务概要信息与检测项统计 - 在QmsPdiTaskRecordController中添加summary接口,支持任务概要查询 - 在QmsPdiTaskRecordControllerService实现任务概要逻辑,包含任务基础信息及检测项类型数量统计 - 查询检测规则以获取机型编号和检测版本信息 - 按检测项类型分类统计静态、动态和特殊子项数量 - 任务概要接口返回任务编号、机型编号、机台编号、订单号、版本及完成时间等信息 --- .../QmsPdiTaskRecordController.java | 10 ++++ .../QmsPdiTaskRecordControllerService.java | 55 ++++++++++++++++++ .../pojo/vo/QmsPdiTaskRecordSummaryVO.java | 57 +++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java 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 209c0def..f89797e8 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 @@ -10,6 +10,7 @@ import com.nflg.wms.common.pojo.qo.QmsPdiTaskRecordTransferQO; import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordDefectPageVO; import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordDetailVO; import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordPageVO; +import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordSummaryVO; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.validation.Valid; @@ -81,4 +82,13 @@ public class QmsPdiTaskRecordController extends BaseController { @NotNull(message = "检测记录ID不能为空") @RequestParam Long id) { return ApiResult.success(taskRecordControllerService.getInspectionImages(id)); } + + /** + * 任务概要:基本信息 + 各类检测项数量统计 + */ + @GetMapping("summary") + public ApiResult summary( + @NotNull(message = "任务ID不能为空") @RequestParam Long taskId) { + return ApiResult.success(taskRecordControllerService.summary(taskId)); + } } 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 4d94e525..e7e6ac77 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 @@ -11,12 +11,15 @@ import com.nflg.wms.common.pojo.qo.QmsPdiTaskRecordTransferQO; import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordDetailVO; import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordDefectPageVO; import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordPageVO; +import com.nflg.wms.common.pojo.vo.QmsPdiTaskRecordSummaryVO; +import com.nflg.wms.repository.entity.QmsPdiDetectionRules; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem; import com.nflg.wms.repository.entity.QmsPdiInspectionResults; import com.nflg.wms.repository.entity.QmsPdiTaskRecord; import com.nflg.wms.repository.entity.FileUploadRecord; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService; +import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesStatusItemService; import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService; import com.nflg.wms.repository.service.IQmsPdiTaskRecordService; @@ -41,6 +44,9 @@ public class QmsPdiTaskRecordControllerService { @Resource private IQmsPdiTaskRecordService taskRecordService; + @Resource + private IQmsPdiDetectionRulesService detectionRulesService; + @Resource private IQmsPdiDetectionRulesStatusItemService statusItemService; @@ -316,4 +322,53 @@ public class QmsPdiTaskRecordControllerService { } return convertImageIdsToVO(result.getInspectionItemImage()); } + + // ========================= 任务概要 ========================= + + /** + * 查询任务概要信息:基本信息 + 各类检测项数量统计 + */ + public QmsPdiTaskRecordSummaryVO summary(Long taskId) { + QmsPdiTaskRecord task = taskRecordService.getById(taskId); + if (task == null) { + throw new NflgException(STATE.BusinessError, "任务记录不存在"); + } + + QmsPdiTaskRecordSummaryVO vo = new QmsPdiTaskRecordSummaryVO(); + vo.setTaskNo(task.getTaskNo()); + vo.setDeviceNo(task.getDeviceNo()); + vo.setOrderNo(task.getOrderNo()); + vo.setRequiredCompletionTime(task.getRequiredCompletionTime()); + + // 查询检测规则获取机型编号和检测版本 + if (task.getDetectionRulesId() != null) { + QmsPdiDetectionRules rules = detectionRulesService.getById(task.getDetectionRulesId()); + if (rules != null) { + vo.setMachineNo(rules.getMachineNo()); + vo.setInspectionVersion(rules.getInspectionVersion()); + } + } + + // 从 qms_pdi_inspection_results 按 inspection_item_type 分组统计 + List results = inspectionResultsService.lambdaQuery() + .eq(QmsPdiInspectionResults::getTaskId, taskId) + .list(); + + int staticCount = 0; + int dynamicCount = 0; + int specialCount = 0; + for (QmsPdiInspectionResults r : results) { + if (r.getInspectionItemType() == null) continue; + switch (r.getInspectionItemType()) { + case 0 -> staticCount++; + case 1 -> dynamicCount++; + case 3 -> specialCount++; + } + } + vo.setStaticItemCount(staticCount); + vo.setDynamicItemCount(dynamicCount); + vo.setSpecialItemCount(specialCount); + + return vo; + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java new file mode 100644 index 00000000..b575700c --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordSummaryVO.java @@ -0,0 +1,57 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * PDI任务概要信息VO + */ +@Data +public class QmsPdiTaskRecordSummaryVO { + + /** + * 检验单号 + */ + private String taskNo; + + /** + * 机型编号 + */ + private String machineNo; + + /** + * 机台编号 + */ + private String deviceNo; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 检测标准版本 + */ + private String inspectionVersion; + + /** + * 要求完成日期 + */ + private LocalDateTime requiredCompletionTime; + + /** + * 静态子项数量(inspection_item_type=0) + */ + private Integer staticItemCount; + + /** + * 动态子项数量(inspection_item_type=1) + */ + private Integer dynamicItemCount; + + /** + * 特殊子项数量(inspection_item_type=3) + */ + private Integer specialItemCount; +}