From 16a9126cf7c34a50086982442382b779aa416cd4 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Wed, 11 Nov 2026 10:10:46 +0800 Subject: [PATCH] =?UTF-8?q?ifs=20=E9=87=87=E8=B4=AD=E6=8E=A5=E6=94=B6=20Ex?= =?UTF-8?q?pirationDate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/api/service/impl/IfsApiServiceImpl.java | 3 +++ .../modules/po/service/impl/PoServiceImpl.java | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gaotao/modules/api/service/impl/IfsApiServiceImpl.java b/src/main/java/com/gaotao/modules/api/service/impl/IfsApiServiceImpl.java index a95ebd48..dbd110d4 100644 --- a/src/main/java/com/gaotao/modules/api/service/impl/IfsApiServiceImpl.java +++ b/src/main/java/com/gaotao/modules/api/service/impl/IfsApiServiceImpl.java @@ -242,6 +242,9 @@ public class IfsApiServiceImpl implements IfsApiService { Map.entry("arrivalDate", inData.getArrivalDate() != null ? DateUtils.format(inData.getArrivalDate(), DateUtils.DATE_TIME_PATTERN) : DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN)), + // IFS 新增字段,传 HU 失效日期;日期为空时传空串,Map.of 不允许 null + Map.entry("expirationDate", inData.getExpiredDate() != null ? + DateUtils.format(inData.getExpiredDate(), DateUtils.DATE_PATTERN) : ""), Map.entry("receiptReference", StringUtils.isNotBlank(inData.getDeliveryNote()) ? inData.getDeliveryNote() : "1"), Map.entry("lotBatchNo", inData.getBatchNo()), diff --git a/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java b/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java index 00571093..3ed91ce3 100644 --- a/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java +++ b/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java @@ -248,16 +248,24 @@ public class PoServiceImpl extends ServiceImpl implemen }*/ // 处理料件属性(创建或更新) handlePartAttribute(inData); + // RegisterArrival 的 expirationDate 以本次生成 HU 的失效日期为准。 + // 同一批标签按同一基准日和有效期计算,取第一条非空日期即可,避免和标签不一致。 + for (HandlingUnit handlingUnit : currentHandlingUnits) { + if (handlingUnit.getExpiredDate() != null) { + inData.setExpiredDate(handlingUnit.getExpiredDate()); + break; + } + } // 同步到IFS ifsApiService.registerArrivalToIFS(inData); // 当用户选择供应商生产日期时,失效日期需要按供应商生产日期+有效期重新同步到IFS - if (inData.getSupplierManufactureDate() != null) { + /*if (inData.getSupplierManufactureDate() != null) { Date supplierExpiryDate = calculateExpiryDate(inData.getSupplierManufactureDate(), shelfLife); if (supplierExpiryDate != null) { inData.setExpiredDate(supplierExpiryDate); changeExpiryDate(currentHandlingUnits, inData); } - } + }*/ return receiptNo; } catch (Exception e) { log.error("采购入库失败,PO号: {}, 错误: {}", inData.getPoNo(), e.getMessage());