From f2901111b3e09b1cc48855613c71fc993f2618da Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Thu, 7 May 2026 17:39:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms):=20=E4=BC=98=E5=8C=96=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E9=87=8D=E5=A4=8D=E6=A0=A1=E9=AA=8C=E5=8F=8A=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在工单创建时增加同一taskRecordId只能创建一次工单的校验逻辑 - 已存在工单时仅新增处理记录,避免重复创建工单 - 删除QmsPdiInspectionResultsControllerService中检测详情接口的任务状态返回 - 调整检测详情接口返回类型为检测项列表,精简接口响应数据 - 在任务概要中新增inspectionEnable字段表示质检状态 - QmsPdiTaskRecordDefectPageVO新增质检人和帮办人ID字段 - 增加工单编号和标题字段,完善工单信息展示 - 调整MyBatis映射文件,增加对应字段的查询映射 - 删除QmsPdiTaskRecordDetailVO中冗余的DetailWithStatusVO类 --- .../QmsPdiInspectionResultsController.java | 2 +- .../QmsIssueTicketControllerService.java | 17 ++++++++++++++++ ...PdiInspectionResultsControllerService.java | 17 ++++------------ .../pojo/vo/QmsPdiTaskRecordDefectPageVO.java | 20 +++++++++++++++++++ .../pojo/vo/QmsPdiTaskRecordDetailVO.java | 17 ---------------- .../pojo/vo/QmsPdiTaskRecordSummaryVO.java | 5 +++++ .../mapper/QmsPdiTaskRecordMapper.xml | 6 +++++- 7 files changed, 52 insertions(+), 32 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiInspectionResultsController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiInspectionResultsController.java index 9176b957..ce4bb0de 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiInspectionResultsController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPdiInspectionResultsController.java @@ -81,7 +81,7 @@ public class QmsPdiInspectionResultsController extends BaseController { * 根据任务ID + 检测项类型返回对应检测结果及图片URL */ @PostMapping("detail") - public ApiResult detail( + public ApiResult> detail( @Valid @RequestBody QmsPdiTaskRecordStatusItemDetailQO request) { return ApiResult.success(inspectionResultsControllerService.detail(request)); } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java index 32add78a..53001b0b 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java @@ -173,6 +173,23 @@ public class QmsIssueTicketControllerService { throw new NflgException(STATE.BusinessError, "PDI检测任务记录不存在"); } + // 校验是否已存在工单(同一taskRecordId只能创建一次工单) + QmsIssueTicket existingTicket = issueTicketService.lambdaQuery() + .eq(QmsIssueTicket::getSourceType, (short) 1) + .eq(QmsIssueTicket::getSourceId, request.getTaskRecordId()) + .one(); + + if (existingTicket != null) { + // 工单已存在,仅新增分配(工单处理记录) + issueTicketProcessControllerService.addAsync( + existingTicket.getId(), + request.getHandlerUserId(), + request.getInspectionResultIds(), + existingTicket.getTicketNo() + ); + return; + } + // 查询检测规则 QmsPdiDetectionRules rules = pdiDetectionRulesService.getById(taskRecord.getDetectionRulesId()); if (Objects.isNull(rules)) { diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java index 9d0f3e3b..f6583045 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java @@ -276,20 +276,10 @@ public class QmsPdiInspectionResultsControllerService { /** * 查询检测项详情(平板使用,不分页) - * 根据任务ID + 检测项类型返回对应结果及图片URL,同时返回任务状态 + * 根据任务ID + 检测项类型返回对应结果及图片URL */ - public QmsPdiTaskRecordDetailVO.DetailWithStatusVO detail(QmsPdiTaskRecordStatusItemDetailQO request) { - QmsPdiTaskRecordDetailVO.DetailWithStatusVO result = new QmsPdiTaskRecordDetailVO.DetailWithStatusVO(); - - // 查询任务状态 - QmsPdiTaskRecord taskRecord = taskRecordService.getById(request.getId()); - if (taskRecord != null) { - result.setInspectionEnable(taskRecord.getInspectionEnable()); - } - - // 查询检测项列表 - result.setItems(taskRecordControllerService.statusItemList(request.getId(), request.getInspectionItemType())); - return result; + public List detail(QmsPdiTaskRecordStatusItemDetailQO request) { + return taskRecordControllerService.statusItemList(request.getId(), request.getInspectionItemType()); } // ========================= 任务概要 ========================= @@ -308,6 +298,7 @@ public class QmsPdiInspectionResultsControllerService { vo.setDeviceNo(task.getDeviceNo()); vo.setOrderNo(task.getOrderNo()); vo.setRequiredCompletionTime(task.getRequiredCompletionTime()); + vo.setInspectionEnable(task.getInspectionEnable()); // 查询检测规则获取机型编号和检测版本 if (task.getDetectionRulesId() != null) { diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java index 64330088..d547a00f 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDefectPageVO.java @@ -70,11 +70,21 @@ public class QmsPdiTaskRecordDefectPageVO { */ private String inspectorName; + /** + * 质检人ID + */ + private Long inspectorId; + /** * 帮办人名字 */ private String assistantName; + /** + * 帮办人ID + */ + private Long assistantId; + /** * 质检时间(开始检测时间) */ @@ -104,4 +114,14 @@ public class QmsPdiTaskRecordDefectPageVO { * 工单流程状态(来自qms_issue_ticket.status):0=待流转,1=处理中,2=已完成;null=未创建工单 */ private Short status; + + /** + * 工单编号 + */ + private String ticketNo; + + /** + * 工单标题 + */ + private String ticketTitle; } 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 a482e1d5..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 @@ -132,21 +132,4 @@ public class QmsPdiTaskRecordDetailVO { */ private List inspectionItemImage; } - - /** - * 检测项详情(含任务状态) - */ - @Data - public static class DetailWithStatusVO { - - /** - * 质检状态:0=待检查,1=检验中,2=已完成 - */ - private Integer inspectionEnable; - - /** - * 检测项列表 - */ - private List items; - } } 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 index b575700c..606e6077 100644 --- 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 @@ -54,4 +54,9 @@ public class QmsPdiTaskRecordSummaryVO { * 特殊子项数量(inspection_item_type=3) */ private Integer specialItemCount; + + /** + * 质检状态:0=待检查,1=检验中,2=已完成 + */ + private Integer inspectionEnable; } diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml index b349cf26..b4a048e6 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsPdiTaskRecordMapper.xml @@ -84,13 +84,17 @@ t.inspection_enable AS inspectionEnable, t.inspection_inspection AS inspectionInspection, ui.user_name AS inspectorName, + r.inspector_id AS inspectorId, ua.user_name AS assistantName, + t.assistant_id AS assistantId, t.start_detection_time AS startDetectionTime, t.submission_time AS submissionTime, t.required_completion_time AS requiredCompletionTime, t.detection_completion_time AS detectionCompletionTime, t.overdue, - it.status AS status + it.status AS status, + it.ticket_no AS ticketNo, + it.ticket_title AS ticketTitle FROM qms_pdi_task_record t LEFT JOIN qms_pdi_detection_rules r ON r.id = t.detection_rules_id LEFT JOIN "user" ui ON ui.id = r.inspector_id