From cf746ceb0021bef51da98f5873b633f784956831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 13 May 2026 08:51:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix(service):=20=E4=BF=AE=E6=AD=A3=E7=89=A9?= =?UTF-8?q?=E6=96=99=E5=88=86=E7=B1=BB=E6=8E=A5=E5=8F=A3=E5=92=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=BB=9F=E4=B8=80HTTP=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改物料分类API请求路径,去除多余/api前缀 - 在全局异常处理类中新增对HttpClientErrorException的捕获处理 - 记录HTTP请求错误的详细日志,返回统一错误状态和信息 - 在状态常量中新增HTTP错误状态码和描述 --- .../main/java/com/nflg/wms/common/constant/STATE.java | 3 ++- .../wms/starter/advice/GlobalRestControllerAdvice.java | 10 +++++++++- .../nflg/wms/starter/service/BomMaterialService.java | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/STATE.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/STATE.java index 4d5f6a28..8afd1b81 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/STATE.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/STATE.java @@ -27,7 +27,8 @@ public enum STATE { InconsistentDataError(117, "需要用户确认"), NoOrderData(118, "订单不存在"), SAPErr(119, "SAP错误"), - OutOfStock(120, "库存不足"); + OutOfStock(120, "库存不足"), + HttpError(121, "HTTP错误"); @Getter private final Integer state; diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java index e58bf4b0..94fc890f 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.servlet.resource.NoResourceFoundException; import java.util.ArrayList; @@ -86,10 +87,17 @@ public class GlobalRestControllerAdvice { @ExceptionHandler(DataAlertException.class) public ApiResult handleDataAlertException(DataAlertException ex) { - printLog("返回数据的错误", ex); + printLog("返回数据错误", ex); return ApiResult.errorWithExtras(ex.getState(), ex.getObj()); } + @ExceptionHandler(HttpClientErrorException.class) + public ApiResult handleHttpClientErrorException(HttpClientErrorException ex) { + Throwable rootCause = ex.getRootCause() != null ? ex.getRootCause() : ex; + printLog("HTTP请求错误", rootCause); + return ApiResult.error(STATE.HttpError, rootCause.getMessage()); + } + private void printLog(String msg, Throwable ex) { log.error("{}:{},{}", msg, ex.getMessage(), ExceptionUtil.stacktraceToString(ex)); } diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/BomMaterialService.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/BomMaterialService.java index 6dc28cb7..3fe65e4b 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/BomMaterialService.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/BomMaterialService.java @@ -68,7 +68,7 @@ public class BomMaterialService { headers.add("authorization", getToken()); HttpEntity requestEntity = new HttpEntity<>(qo, headers); ResponseEntity>> response = restTemplate.exchange( - baseUrl + "/api/material/category/getAlllist", + baseUrl + "/material/category/getAlllist", HttpMethod.POST, requestEntity, new ParameterizedTypeReference<>() { From af1a0f53aae9433cb27974120fa1e0ea84688d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 13 May 2026 16:55:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(controller):=20=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E7=AD=9B=E9=80=89=E5=8F=8A=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=BA=93=E4=BD=8D=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正库存筛选条件中物料编号匹配的错误,改用二维码主表的物料编码进行匹配 - 添加设置库存DTO中的库位字段,确保库位信息正确传递 - 优化库存数据处理逻辑,提升准确性和规范性 --- .../com/nflg/wms/admin/controller/NormalPGIController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java index ae0259be..4f0f3488 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java @@ -474,7 +474,7 @@ public class NormalPGIController extends BaseController { .forEach(qrCodeMaster -> { // 库存 InventoryInDTO inventoryDTO = inventories.stream() - .filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode()) + .filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(qrCodeMaster.getMaterialCode()) && inventoriesDTO.getBatchNo().equals(qrCodeMaster.getBatchNo()) && inventoriesDTO.getSerialNo().equals(qrCodeMaster.getSerialNo()) && inventoriesDTO.getFactoryNo().equals(qrCodeMaster.getFactoryCode()) @@ -489,6 +489,7 @@ public class NormalPGIController extends BaseController { .setWarehouseNo(qrCodeMaster.getStorageLocation()) .setBatchNo(qrCodeMaster.getBatchNo()) .setSerialNo(qrCodeMaster.getSerialNo()) + .setBinLocation(qrCodeMaster.getBinLocation()) .setNum(qrCodeMaster.getQuantity()); inventories.add(inventoryDTO); } else { From 03f2f88ad87ae6813b7e29393eff92cbb5483f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 13 May 2026 17:58:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(material):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=E6=97=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?Base64=E6=A0=BC=E5=BC=8F=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在批量保存物料时,判断并处理Base64格式的图片数据 - 实现Base64图片的上传功能并设置物料图片字段 - 保证图片上传与物料信息同步保存 --- .../com/nflg/wms/shipment/controller/MaterialController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialController.java index 6d3cf966..5395a166 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/MaterialController.java @@ -194,6 +194,9 @@ public class MaterialController extends BaseController { if (CollectionUtil.isNotEmpty(datas)) { shipmentMaterialService.saveBatch(datas.stream().map(data -> { WmsShipmentMaterial material = Convert.convert(WmsShipmentMaterial.class, data); + if (StrUtil.isNotBlank(data.getImageBase64())) { + material.setImage(uploadBase64(data.getImageBase64())); + } material.setCreateBy("同步"); material.setCreateTime(LocalDateTime.now()); return material;