From 771fc37fe4a5815996712406fb5f2b8a7eb81369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 28 Apr 2026 15:59:31 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat(service):=20=E5=90=91WMS=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E6=B7=BB=E5=8A=A0Authorization=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入StpUtil获取Token - 在请求头中添加Authorization字段 - 确保向WMS系统发送的POST请求携带用户认证信息 - 优化日志记录,保持业务描述和请求数据完整 --- .../main/java/com/nflg/qms/admin/service/WmsApiService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsApiService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsApiService.java index a2bb64d4..12c76349 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsApiService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/WmsApiService.java @@ -1,7 +1,9 @@ package com.nflg.qms.admin.service; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.json.JSONUtil; import com.nflg.wms.common.pojo.ApiResult; +import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -33,7 +35,6 @@ public class WmsApiService { /** * 向WMS系统发送POST请求 - * * @param path 接口路径 * @param body 请求体 * @param bizDesc 业务描述,用于日志和异常提示 @@ -45,6 +46,7 @@ public class WmsApiService { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); + headers.add("Authorization", StpUtil.getTokenValue()); HttpEntity requestEntity = new HttpEntity<>(body, headers); log.info("{},URL: {},数据: {}", bizDesc, fullUrl, JSONUtil.toJsonStr(body)); From de9799bcb46180fad5bccb409d413c9933c27172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 28 Apr 2026 16:39:10 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat(qms-incoming-inspection):=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=9D=A5=E6=96=99=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增来料检验任务实体类 QmsIncomingInspectionTask - 增加 MyBatis 映射文件 QmsIncomingInspectionTaskMapper.xml 支持多条件查询 - 添加 QmsIncomingInspectionTaskVO 用于查询结果封装 - 在控制器 QmsIncomingInspectionTaskController 中新增回调接口 - 实现 WmsIncomingInspectionTaskCallbackService 服务,支持来料和库存检验回调 - 回调接口添加异常捕获及回调结果状态更新 - 细化查询条件及返回字段,实现任务详情查询和待办任务查询功能 --- .../QmsIncomingInspectionTaskController.java | 13 +++- ...IncomingInspectionTaskCallbackService.java | 57 ++++++++++++--- .../pojo/vo/QmsIncomingInspectionTaskVO.java | 5 ++ .../entity/QmsIncomingInspectionTask.java | 5 ++ .../QmsIncomingInspectionTaskMapper.xml | 70 ++++++++++--------- 5 files changed, 107 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 51282c22..32c2ed3e 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 @@ -1,6 +1,7 @@ package com.nflg.qms.admin.controller; import com.nflg.qms.admin.service.IncomingInspectionTaskControllerService; +import com.nflg.qms.admin.service.WmsIncomingInspectionTaskCallbackService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.*; @@ -28,6 +29,9 @@ public class QmsIncomingInspectionTaskController extends BaseController { @Resource private IncomingInspectionTaskControllerService incomingInspectionTaskControllerService; + @Resource + private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService; + /** * 分页查询来料检测任务列表 */ @@ -131,5 +135,12 @@ public class QmsIncomingInspectionTaskController extends BaseController { return ApiResult.success(); } - + /** + * 回调 + */ + @PostMapping("callback") + public ApiResult callback(@RequestParam Long taskId){ + wmsIncomingInspectionTaskCallbackService.process(taskId); + return ApiResult.success(); + } } 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 6dabf254..56fd3600 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 @@ -1,8 +1,12 @@ package com.nflg.qms.admin.service; +import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.qo.WmsIncomingInspectionTaskCallbackQO; import com.nflg.wms.common.pojo.qo.WmsInventoryInspectionTaskCallbackQO; 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.service.IQmsIncomingInspectionTaskRecordService; import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskService; @@ -38,8 +42,7 @@ public class WmsIncomingInspectionTaskCallbackService { /** * 向WMS系统发送来料检验任务回调 */ - public void incoming(Long taskId) { - QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId); + private void incoming(QmsIncomingInspectionTaskVO taskVO) { WmsIncomingInspectionTaskCallbackQO qo = new WmsIncomingInspectionTaskCallbackQO() .setTaskNo(taskVO.getTaskNo()) .setInspectionType(taskVO.getInspectionType()) @@ -59,7 +62,7 @@ public class WmsIncomingInspectionTaskCallbackService { List records = incomingInspectionTaskRecordService.lambdaQuery() .select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified) - .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId) + .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId()) .list(); qo.setQualifiedMaterialUniqueNo(records.stream() .filter(QmsIncomingInspectionTaskRecord::getQualified) @@ -72,14 +75,25 @@ public class WmsIncomingInspectionTaskCallbackService { .toList() ); - wmsApiService.post(incomingUrl, qo, "来料检验任务回调WMS"); + boolean callbackResult = true; + try { + wmsApiService.post(incomingUrl, qo, "来料检验任务回调WMS"); + } catch (Exception e) { + callbackResult = false; + throw new NflgException(STATE.BusinessError, "调用WMS接口失败:" + e.getMessage()); + } finally { + incomingInspectionTaskService.lambdaUpdate() + .eq(QmsIncomingInspectionTask::getId, taskVO.getId()) + .ne(QmsIncomingInspectionTask::getCallbackResult, true) + .set(QmsIncomingInspectionTask::getCallbackResult, callbackResult) + .update(); + } } /** * 向WMS系统发送库存检验任务回调 */ - public void inventory(Long taskId) { - QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId); + private void inventory(QmsIncomingInspectionTaskVO taskVO) { WmsInventoryInspectionTaskCallbackQO qo = new WmsInventoryInspectionTaskCallbackQO() .setTaskNo(taskVO.getTaskNo()) .setMaterialNo(taskVO.getMaterialNo()) @@ -94,7 +108,7 @@ public class WmsIncomingInspectionTaskCallbackService { List records = incomingInspectionTaskRecordService.lambdaQuery() .select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified) - .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId) + .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId()) .list(); qo.setQualifiedMaterialUniqueNo(records.stream() .filter(QmsIncomingInspectionTaskRecord::getQualified) @@ -107,6 +121,33 @@ public class WmsIncomingInspectionTaskCallbackService { .toList() ); - wmsApiService.post(inventoryUrl, qo, "库存检验任务回调WMS"); + boolean callbackResult = true; + try { + wmsApiService.post(inventoryUrl, qo, "库存检验任务回调WMS"); + } catch (Exception e) { + callbackResult = false; + throw new NflgException(STATE.BusinessError, "调用WMS接口失败:" + e.getMessage()); + } finally { + incomingInspectionTaskService.lambdaUpdate() + .eq(QmsIncomingInspectionTask::getId, taskVO.getId()) + .ne(QmsIncomingInspectionTask::getCallbackResult, true) + .set(QmsIncomingInspectionTask::getCallbackResult, callbackResult) + .update(); + } + } + + public void process(Long taskId) { + QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId); + switch (taskVO.getInspectionType()) { + case 1: + incoming(taskVO); + break; + case 2: + inventory(taskVO); + break; + default: + VUtil.trueThrowBusinessError(true).throwMessage("无效的检验类型:" + taskVO.getInspectionType()); + break; + } } } 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 10d7b085..1a27ed8a 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 @@ -182,6 +182,11 @@ public class QmsIncomingInspectionTaskVO { */ private String purchaseGroup; + /** + * 回调结果 + */ + private Boolean callbackResult; + /** * 最近更新人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 30403472..178216c0 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 @@ -187,6 +187,11 @@ public class QmsIncomingInspectionTask implements Serializable { */ private String purchaseGroup; + /** + * 回调结果 + */ + private Boolean callbackResult; + /** * 最近更新人id */ diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml index 06b532d6..f127cedd 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMapper.xml @@ -4,40 +4,42 @@