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; +}