Browse Source

ifs 采购接收 ExpirationDate

master
han\hanst 18 hours ago
parent
commit
16a9126cf7
  1. 3
      src/main/java/com/gaotao/modules/api/service/impl/IfsApiServiceImpl.java
  2. 12
      src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java

3
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()),

12
src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java

@ -248,16 +248,24 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> 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());

Loading…
Cancel
Save