From 61fa7093455fc6077cc5f7e91f685b212adcb80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 29 Apr 2026 11:26:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(qms-admin):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9D=A5=E6=96=99=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将submit方法添加事务注解,确保操作原子性 - 移除控制器层多余的@Transactional注解,精简代码结构 - 修改回调调用方式,去除多余参数,简化接口调用 - 在WmsIncomingInspectionTaskCallbackService中增强回调处理逻辑 - 根据检验结果动态处理回调,避免重复回调 - 新增基于工单状态自动获取处理结果的处理路径 - 修正任务查询SQL,增加detection_qty字段数据支持 - 初始化QmsIncomingInspectionTaskVO已检数量字段防止空指针 --- .../QmsIncomingInspectionTaskController.java | 5 +- ...comingInspectionTaskControllerService.java | 3 +- ...IncomingInspectionTaskCallbackService.java | 43 +++++++++++- .../pojo/vo/QmsIncomingInspectionTaskVO.java | 2 +- .../QmsIncomingInspectionTaskMapper.xml | 69 ++++++++++--------- 5 files changed, 79 insertions(+), 43 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java index 7faa9a75..7fd4ab35 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIncomingInspectionTaskController.java @@ -108,7 +108,6 @@ public class QmsIncomingInspectionTaskController extends BaseController { /** * 提交检测项 */ - @Transactional @PostMapping("pad/add-check-item") public ApiResult addCheckItem(@Valid @RequestBody QmsIncomingInspectionTaskTodoCheckSubmitQO request){ incomingInspectionTaskControllerService.submitCheckItem(request); @@ -118,7 +117,6 @@ public class QmsIncomingInspectionTaskController extends BaseController { /** * 暂存检验结果 */ - @Transactional @PostMapping("pad/staging") public ApiResult staging(@Valid @RequestBody QmsIncomingInspectionTaskSubmitQO request){ incomingInspectionTaskControllerService.staging(request); @@ -128,7 +126,6 @@ public class QmsIncomingInspectionTaskController extends BaseController { /** * 提交检验结果 */ - @Transactional @PostMapping("pad/submit") public ApiResult submit(@Valid @RequestBody QmsIncomingInspectionTaskSubmitQO request){ incomingInspectionTaskControllerService.submit(request); @@ -140,7 +137,7 @@ public class QmsIncomingInspectionTaskController extends BaseController { */ @PostMapping("callback") public ApiResult callback(@RequestParam Long taskId){ - wmsIncomingInspectionTaskCallbackService.process(taskId, (short) 0); + wmsIncomingInspectionTaskCallbackService.process(taskId); 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 e97733df..7c91bb2a 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 @@ -943,6 +943,7 @@ public class IncomingInspectionTaskControllerService { updateWrapper.update(); } + @Transactional public void submit(@Valid QmsIncomingInspectionTaskSubmitQO request) { QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId()); VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); @@ -985,7 +986,7 @@ public class IncomingInspectionTaskControllerService { updateWrapper.update(); if (task.getInspectionResult()) { - wmsIncomingInspectionTaskCallbackService.process(task.getId(), (short) 0); + wmsIncomingInspectionTaskCallbackService.process(task.getId()); } else { issueTicketControllerService.initiate(task.getId()); } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsIncomingInspectionTaskCallbackService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsIncomingInspectionTaskCallbackService.java index dcae7505..ba4928ce 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsIncomingInspectionTaskCallbackService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsIncomingInspectionTaskCallbackService.java @@ -8,8 +8,10 @@ import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO; import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.QmsIncomingInspectionTask; import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord; +import com.nflg.wms.repository.entity.QmsIssueTicket; import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordService; import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskService; +import com.nflg.wms.repository.service.IQmsIssueTicketService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -17,6 +19,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; /** * Wms来料检验任务回调服务 @@ -40,6 +43,9 @@ public class WmsIncomingInspectionTaskCallbackService { @Resource private WmsApiService wmsApiService; + @Resource + private IQmsIssueTicketService issueTicketService; + /** * 向WMS系统发送来料检验任务回调 */ @@ -152,11 +158,31 @@ public class WmsIncomingInspectionTaskCallbackService { /** * WMS系统来料检验任务回调 * @param taskId 来料检验任务ID + */ + public void process(Long taskId) { + QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId); + VUtil.trueThrowBusinessError(Objects.equals(taskVO.getCallbackResult(), true)).throwMessage("请勿重复回调"); + VUtil.trueThrowBusinessError(taskVO.getInspectionStatus() != 2).throwMessage("来料检验任务状态不允许回调"); + if (taskVO.getInspectionResult()) { + process(taskVO, (short) 0); + } else { + QmsIssueTicket issueTicket = issueTicketService.lambdaQuery() + .eq(QmsIssueTicket::getSourceId, taskId) + .eq(QmsIssueTicket::getStatus, 2) + .orderByDesc(QmsIssueTicket::getId) + .last("limit 1") + .one(); + VUtil.trueThrowBusinessError(Objects.isNull(issueTicket)).throwMessage("未找到符合条件的工单"); + process(taskVO, issueTicket.getApprovalStatus()); + } + } + + /** + * WMS系统来料检验任务回调 + * @param taskVO 来料检验任务VO * @param processingResult 处理结果:0=通过,3=报废,4=维修,5=挑选使用,6=让渡使用 */ - public void process(Long taskId, Short processingResult) { - QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId); - VUtil.trueThrowBusinessError(taskVO.getCallbackResult()).throwMessage("请勿重复回调"); + private void process(QmsIncomingInspectionTaskVO taskVO, Short processingResult) { switch (taskVO.getInspectionType()) { case 1: incoming(taskVO,processingResult); @@ -169,4 +195,15 @@ public class WmsIncomingInspectionTaskCallbackService { break; } } + + /** + * WMS系统来料检验任务回调 + * @param taskId 来料检验任务ID + * @param processingResult 处理结果:0=通过,3=报废,4=维修,5=挑选使用,6=让渡使用 + */ + private void process(Long taskId, Short processingResult) { + QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId); + VUtil.trueThrowBusinessError(Objects.equals(taskVO.getCallbackResult(),true)).throwMessage("请勿重复回调"); + process(taskVO, processingResult); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskVO.java index f25eb69a..5062e71d 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsIncomingInspectionTaskVO.java @@ -125,7 +125,7 @@ public class QmsIncomingInspectionTaskVO { /** * 已检数量 */ - private Integer inspectedQty; + private Integer inspectedQty = 0; /** * 未检数量 diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml index 4de9005f..60ad19e1 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml @@ -105,40 +105,41 @@