From cf0c66e3980cda07c1b6f58d80dc3295f264cf0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sat, 9 May 2026 11:41:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(incoming-inspection):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=96=B9=E5=BC=8F=E5=AD=97=E6=AE=B5=E5=8F=8A?= =?UTF-8?q?=E6=9D=A5=E6=96=99=E6=A3=80=E6=B5=8B=E5=B7=A5=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在QmsIncomingInspectionTask实体中新增检测方式字段testingMethodDictItemId - 在IncomingInspectionTaskControllerService新增addNewIncomingInspectionTask方法,支持生成新检测任务 - 在来料检测任务创建时设置检测方式字段 - 调整生成任务号时的序列号参数 - 重命名工单审核请求对象为QmsIncomingInspectionIssueTicketAuditQO - 新增来料检测工单审核接口IncomingInspectionAudit,替代原有审核接口 - 审核通过时触发新任务生成,其他状态时调用异步处理逻辑 - 优化部分代码格式和导入,提升代码规范性 --- .../controller/QmsIssueTicketController.java | 9 ++-- ...comingInspectionTaskControllerService.java | 41 ++++++++++++++++++- .../QmsIssueTicketControllerService.java | 19 +++++---- ...IncomingInspectionIssueTicketAuditQO.java} | 3 +- .../entity/QmsIncomingInspectionTask.java | 5 +++ 5 files changed, 62 insertions(+), 15 deletions(-) rename nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/{QmsIssueTicketAuditQO.java => QmsIncomingInspectionIssueTicketAuditQO.java} (91%) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java index d94b7ed5..45860070 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java @@ -62,12 +62,11 @@ public class QmsIssueTicketController extends BaseController { } /** - * 审核质量问题工单 - * 更新审批状态、审批意见、审批人信息,并根据审批结果更新工单状态 + * 来料检测工单审核 */ - @PostMapping("audit") - public ApiResult audit(@Valid @RequestBody QmsIssueTicketAuditQO request) { - issueTicketControllerService.audit(request); + @PostMapping("audit/incoming-inspection") + public ApiResult IncomingInspectionAudit(@Valid @RequestBody QmsIncomingInspectionIssueTicketAuditQO request) { + issueTicketControllerService.incomingInspectionAudit(request); return ApiResult.success(); } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java index d0f3bde1..c4ba8f8d 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/IncomingInspectionTaskControllerService.java @@ -188,6 +188,7 @@ public class IncomingInspectionTaskControllerService { .setTaskNo(taskNo) .setMaterialId(material.getId()) .setInspectionStandardId(standard.getId()) + .setTestingMethodDictItemId(standard.getTestingMethodDictItemId()) .setSupplierCode(request.getSupplierCode()) .setSupplierName(request.getSupplierName()) .setDeliveryOrderNo(request.getDeliveryOrderNo()) @@ -301,7 +302,7 @@ public class IncomingInspectionTaskControllerService { } // 5. 生成检测单号 - String taskNo = basdeSerialNumberControllerService.generateSerialNumber(35); + String taskNo = basdeSerialNumberControllerService.generateSerialNumber(34); // 6. 计算要求完成时间:当前时间 + 检验周期(天) LocalDateTime now = LocalDateTime.now(); @@ -313,6 +314,7 @@ public class IncomingInspectionTaskControllerService { .setTaskNo(taskNo) .setMaterialId(material.getId()) .setInspectionStandardId(standard.getId()) + .setTestingMethodDictItemId(standard.getTestingMethodDictItemId()) .setFactory(request.getFactory()) .setInspectionType(1) .setInspectionQty(request.getInspectionQty()) @@ -356,6 +358,43 @@ public class IncomingInspectionTaskControllerService { .update(); } + public String addNewIncomingInspectionTask(Long taskId) { + QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(taskId); + String taskNo = basdeSerialNumberControllerService.generateSerialNumber(34); + Long testingMethodDictItemId = dictionaryItemService.getIdByCode("InspectionStandardTestingMethod","Full"); + QmsInspectionStandard standard = inspectionStandardService.getById(task.getInspectionStandardId()); + LocalDateTime now = LocalDateTime.now(); + LocalDateTime requiredFinishTime = now.plusDays(standard.getInspectionCycle()); + QmsIncomingInspectionTask newTask = new QmsIncomingInspectionTask() + .setRequestNo(task.getRequestNo()) + .setTaskNo(taskNo) + .setMaterialId(task.getId()) + .setInspectionStandardId(task.getId()) + .setTestingMethodDictItemId(testingMethodDictItemId) + .setSupplierCode(task.getSupplierCode()) + .setSupplierName(task.getSupplierName()) + .setDeliveryOrderNo(task.getDeliveryOrderNo()) + .setDeliveryOrderLine(task.getDeliveryOrderLine()) + .setPurchaseOrderNo(task.getPurchaseOrderNo()) + .setPurchaseOrderLine(task.getPurchaseOrderLine()) + .setPurchaseGroup(task.getPurchaseGroup()) + .setFactory(task.getFactory()) + .setWarehouse(task.getWarehouse()) + .setStorageLocation(task.getStorageLocation()) + .setStorageDays(task.getStorageDays()) + .setInspectionType(task.getInspectionType()) + .setDataType(task.getDataType()) + .setInspectionQty(task.getInspectionQty()) + .setInspectionStatus((short) 0) + .setInspectorId(task.getInspectorId()) + .setInspectorName(task.getInspectorName()) + .setSubmitTime(LocalDateTime.now()) + .setRequiredFinishTime(requiredFinishTime) + .setDetectionQty(task.getInspectionQty()); + incomingInspectionTaskService.save(newTask); + return taskNo; + } + private DictionaryItem getAql(Long id, List aqls) { return aqls.stream().filter(aql -> Objects.equals(aql.getId(), id)).findFirst().get(); } 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 c5fe4188..83ed1ff7 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 @@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO; -import com.nflg.wms.common.pojo.qo.QmsIssueTicketAuditQO; +import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionIssueTicketAuditQO; import com.nflg.wms.common.pojo.qo.QmsIssueTicketPdiAddQO; import com.nflg.wms.common.pojo.qo.QmsPdiCreateAndQueryTicketQO; import com.nflg.wms.common.pojo.vo.*; @@ -15,6 +15,7 @@ import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.*; import com.nflg.wms.repository.service.*; import jakarta.annotation.Resource; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; import jakarta.validation.Valid; import org.springframework.stereotype.Component; @@ -97,7 +98,7 @@ public class QmsIssueTicketControllerService { QmsIssueTicketPdiAddQO addQO = new QmsIssueTicketPdiAddQO(); addQO.setTaskRecordId(request.getTaskRecordId()); addQO.setIncidentType(request.getIncidentType()); - + List handlerItems = request.getHandlers().stream() .map(h -> { QmsIssueTicketPdiAddQO.HandlerItem item = new QmsIssueTicketPdiAddQO.HandlerItem(); @@ -107,7 +108,7 @@ public class QmsIssueTicketControllerService { }) .collect(Collectors.toList()); addQO.setHandlers(handlerItems); - + addPdiTicket(addQO); // 2. 查询该任务的不合格检测项 @@ -214,7 +215,7 @@ public class QmsIssueTicketControllerService { * 更新审批状态、审批意见、审批人信息、事故类型,并更新工单状态 */ @Transactional(rollbackFor = Exception.class) - public void audit(@Valid QmsIssueTicketAuditQO request) { + public void incomingInspectionAudit(@Valid QmsIncomingInspectionIssueTicketAuditQO request) { // 校验工单存在 QmsIssueTicket entity = issueTicketService.getById(request.getId()); VUtil.trueThrowBusinessError(Objects.isNull(entity)) @@ -238,10 +239,14 @@ public class QmsIssueTicketControllerService { .setApprovalUserId(userId) .setApprovalUserName(userName) .setApprovalTime(now); - + if (request.getApprovalStatus() == 5) { + entity.setAssociationTaskNo(incomingInspectionTaskControllerService.addNewIncomingInspectionTask(entity.getSourceId())); + } issueTicketService.updateById(entity); - wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus()); + if (request.getApprovalStatus() != 5) { + wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus()); + } } /** @@ -537,7 +542,7 @@ public class QmsIssueTicketControllerService { records.stream() .filter(record -> StrUtil.isNotBlank(record.getImageIds())) .forEach(record -> { - if(StrUtil.isNotBlank(record.getImageIds())) { + if (StrUtil.isNotBlank(record.getImageIds())) { record.setImages(fileUploadRecordService.lambdaQuery() .in(FileUploadRecord::getId, Arrays.stream(StrUtil.splitToLong(record.getImageIds(), ",")).boxed().toList()) .list() diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketAuditQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionIssueTicketAuditQO.java similarity index 91% rename from nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketAuditQO.java rename to nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionIssueTicketAuditQO.java index b2744f9f..54675dc0 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIssueTicketAuditQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsIncomingInspectionIssueTicketAuditQO.java @@ -1,7 +1,6 @@ package com.nflg.wms.common.pojo.qo; import jakarta.validation.constraints.Min; -import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.experimental.Accessors; @@ -11,7 +10,7 @@ import lombok.experimental.Accessors; */ @Data @Accessors(chain = true) -public class QmsIssueTicketAuditQO { +public class QmsIncomingInspectionIssueTicketAuditQO { /** * 工单ID diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java index 23e05aa2..93422930 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIncomingInspectionTask.java @@ -52,6 +52,11 @@ public class QmsIncomingInspectionTask implements Serializable { */ private Long inspectionStandardId; + /** + * 检测方式,关联字典项id(字典编码:InspectionStandardTestingMethod) + */ + private Long testingMethodDictItemId; + /** * 供应商编号 */