From 2dceac7fdd790e799d1e6ef20ebef9fe189b2b53 Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Wed, 29 Apr 2026 09:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E5=B7=A5=E5=8D=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QmsIssueTicketControllerService.java | 59 +++++++++++++++++++ .../pojo/qo/QmsIssueTicketPdiAddQO.java | 13 ++++ 2 files changed, 72 insertions(+) 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 1978d801..bbd86106 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 @@ -57,6 +57,15 @@ public class QmsIssueTicketControllerService { @Resource private QmsIssueTicketProcessControllerService issueTicketProcessControllerService; + @Resource + private IQmsPdiTaskRecordService pdiTaskRecordService; + + @Resource + private IQmsPdiDetectionRulesService pdiDetectionRulesService; + + @Resource + private IQmsPdiInspectionResultsService pdiInspectionResultsService; + @Resource private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService; @@ -146,6 +155,36 @@ public class QmsIssueTicketControllerService { String userName = UserUtil.getUserName(); LocalDateTime now = LocalDateTime.now(); + // 查询任务记录 + QmsPdiTaskRecord taskRecord = pdiTaskRecordService.getById(request.getTaskRecordId()); + if (Objects.isNull(taskRecord)) { + throw new NflgException(STATE.BusinessError, "PDI检测任务记录不存在"); + } + + // 查询检测规则 + QmsPdiDetectionRules rules = pdiDetectionRulesService.getById(taskRecord.getDetectionRulesId()); + if (Objects.isNull(rules)) { + throw new NflgException(STATE.BusinessError, "PDI检测规则不存在"); + } + + // 根据 inspectionType 生成工单标题 + String ticketTitle; + if (Objects.equals(rules.getInspectionType(), 0)) { + // 新品:机型编号-机台号-订单编号-出厂检验-检测版本号 + ticketTitle = StrUtil.join("-", rules.getMachineNo(), taskRecord.getDeviceNo(), + taskRecord.getOrderNo(), "出厂检验", rules.getInspectionVersion()); + } else { + // 库存:机型编号-订单编号-库存检验-检测版本号 + ticketTitle = StrUtil.join("-", rules.getMachineNo(), + taskRecord.getOrderNo(), "库存检验", rules.getInspectionVersion()); + } + + // 统计不合格检测项数量 + long unqualifiedCount = pdiInspectionResultsService.lambdaQuery() + .eq(QmsPdiInspectionResults::getTaskId, request.getTaskRecordId()) + .eq(QmsPdiInspectionResults::getInspectionItemResults, false) + .count(); + // 自动生成工单编号 String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(38); @@ -153,6 +192,12 @@ public class QmsIssueTicketControllerService { .setSourceType((short) 1) .setSourceId(request.getTaskRecordId()) .setTicketNo(ticketNo) + .setTicketTitle(ticketTitle) + .setProjectNo(taskRecord.getTaskNo()) + .setIncidentType(request.getIncidentType()) + .setIncidentDescription(request.getIncidentDescription()) + .setUnqualifiedQty((int) unqualifiedCount) + .setApprovalStatus((short) 0) .setStatus((short) 0) .setCreateUserId(userId) .setCreateUserName(userName) @@ -169,6 +214,20 @@ public class QmsIssueTicketControllerService { request.getHandlerUserId(), request.getInspectionResultIds() ); + + // 推送待办消息 + Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "PDIDefectiveProductHandling"); + VUtil.trueThrowBusinessError(Objects.isNull(sourceTypeId)).throwMessage("消息类型不存在"); + User handlerUser = userService.getById(request.getHandlerUserId()); + QmsTodoItem todoItem = new QmsTodoItem() + .setCode(ticketNo) + .setIsRead(false) + .setSourceTypeId(sourceTypeId) + .setSourceId(entity.getId()) + .setCreateUserId(request.getHandlerUserId()) + .setCreateUserName(handlerUser != null ? handlerUser.getUserName() : userName) + .setCreateTime(now); + todoItemService.save(todoItem); } /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketPdiAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketPdiAddQO.java index 456a42ae..c11d6fe4 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketPdiAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketPdiAddQO.java @@ -1,5 +1,6 @@ package com.nflg.wms.common.pojo.qo; +import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -29,4 +30,16 @@ public class QmsIssueTicketPdiAddQO { */ @NotEmpty(message = "检测结果ID列表不能为空") private List inspectionResultIds; + + /** + * 事故类型:0=一般,1=较严重,2=严重 + */ + @NotNull(message = "事故类型不能为空") + private Short incidentType; + + /** + * 事件描述(对不合格项的内容整合) + */ + @NotBlank(message = "事件描述不能为空") + private String incidentDescription; }