From 405032ec5c4fc494ce42efeee66e1ef808dba540 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Wed, 27 Aug 2025 19:36:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(frame):=20=E4=BC=98=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BD=AC=E6=8D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了 AdvancedJoltTransformerProcessor 中的数据转换逻辑 -从处理 List 类型改为处理 LinkedHashMap 类型 - 优化了 _id 字段的字符串转换逻辑- 调整了 GetJackyunOpenDataProcessorTest 中的测试数据 --- .../AdvancedJoltTransformerProcessor.java | 26 +++++++++++-------- .../GetJackyunOpenDataProcessorTest.java | 2 +- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/nifi-hzyadev-bundle/hzya-nifi-AdvancedJoltTransformer-processors/src/main/java/com/hzya/frame/AdvancedJoltTransformerProcessor.java b/nifi-hzyadev-bundle/hzya-nifi-AdvancedJoltTransformer-processors/src/main/java/com/hzya/frame/AdvancedJoltTransformerProcessor.java index 2622890..9033eff 100644 --- a/nifi-hzyadev-bundle/hzya-nifi-AdvancedJoltTransformer-processors/src/main/java/com/hzya/frame/AdvancedJoltTransformerProcessor.java +++ b/nifi-hzyadev-bundle/hzya-nifi-AdvancedJoltTransformer-processors/src/main/java/com/hzya/frame/AdvancedJoltTransformerProcessor.java @@ -16,13 +16,9 @@ import org.apache.nifi.expression.ExpressionLanguageScope; import org.apache.nifi.flowfile.FlowFile; import org.apache.nifi.processor.*; import org.apache.nifi.processor.exception.ProcessException; -import org.apache.nifi.processor.io.InputStreamCallback; -import org.apache.nifi.processor.io.OutputStreamCallback; import org.apache.nifi.processor.util.StandardValidators; import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; import java.util.*; import java.util.concurrent.atomic.AtomicReference; @@ -109,14 +105,22 @@ public class AdvancedJoltTransformerProcessor extends AbstractProcessor { Object result = chainr.transform(inputData); // --- [最终解决方案:在Java中手动转换_id类型] --- - if (result instanceof List) { + if (result instanceof LinkedHashMap) { try { - @SuppressWarnings("unchecked") List> resultList = (List>) result; - for (Map record : resultList) { - if (record.containsKey("_id")) { - Object idValue = record.get("_id"); - if (idValue != null && !(idValue instanceof String)) { - record.put("_id", String.valueOf(idValue)); + @SuppressWarnings("unchecked") LinkedHashMap stringLinkedHashMap = (LinkedHashMap) result; +// for (LinkedHashMap record : stringLinkedHashMap) { +// if (record.containsKey("_id")) { +// Object idValue = record.get("_id"); +// if (idValue != null && !(idValue instanceof String)) { +// record.put("_id", String.valueOf(idValue)); +// } +// } +// } + for (Map.Entry entry : stringLinkedHashMap.entrySet()) { + if (entry.getKey().equals("_id")) { + Object idValue = entry.getValue(); + if (idValue != null) { + stringLinkedHashMap.put("_id", String.valueOf(idValue)); } } } diff --git a/nifi-hzyadev-bundle/hzya-nifi-GetJackyunOpenData-processors/src/test/java/com/hzya/frame/GetJackyunOpenDataProcessorTest.java b/nifi-hzyadev-bundle/hzya-nifi-GetJackyunOpenData-processors/src/test/java/com/hzya/frame/GetJackyunOpenDataProcessorTest.java index 31c3cf4..c42f39b 100644 --- a/nifi-hzyadev-bundle/hzya-nifi-GetJackyunOpenData-processors/src/test/java/com/hzya/frame/GetJackyunOpenDataProcessorTest.java +++ b/nifi-hzyadev-bundle/hzya-nifi-GetJackyunOpenData-processors/src/test/java/com/hzya/frame/GetJackyunOpenDataProcessorTest.java @@ -81,7 +81,7 @@ public class GetJackyunOpenDataProcessorTest { " \"billDateEnd\": \"\",\n" + " \"gmtCreatedEnd\": \"\",\n" + " \"pageIndex\": \""+pageIndex+"\",\n" + - " \"auditTimeEnd\": \"2025-08-27 18:16:00\",\n" + + " \"auditTimeEnd\": \"2025-08-27 19:21:44\",\n" + " \"detailCols\": \"tradeSettleOrder.settleId, tradeSettleOrder.shopId, tradeSettleOrder.auditor, tradeSettleOrder.flagIds, tradeSettleOrder.payment, tradeSettleOrder.departId, tradeSettleOrder.settleNo, tradeSettleOrder.shopName, tradeSettleOrder.auditTime, tradeSettleOrder.auditorId, tradeSettleOrder.companyId, tradeSettleOrder.settleFee, tradeSettleOrder.settlerId, tradeSettleOrder.chargeType, tradeSettleOrder.departName, tradeSettleOrder.settleMemo, tradeSettleOrder.settleTime, tradeSettleOrder.sysFlagIds, tradeSettleOrder.accountName, tradeSettleOrder.companyName, tradeSettleOrder.settleStatus, tradeSettleOrder.chargeAccount, tradeSettleOrder.onlinePayTime, tradeSettleOrder.chargeCurrency, tradeSettleOrder.chargeCurrencyCode, tradeSettleOrder.chargeExchangeRate, tradeSettleOrder.settler, tradeSettleOrder.couponFee, tradeSettleOrder.differenceFee, tradeSettleOrder.settleTotalFee, tradeSettleOrder.settleDiscountFee, tradeSettleOrderDetailArr.subTradeId31177, tradeSettleOrderDetailArr.tradeFrom, tradeSettleOrderDetailArr.cost, tradeSettleOrderDetailArr.unit, tradeSettleOrderDetailArr.payNo, tradeSettleOrderDetailArr.cateId, tradeSettleOrderDetailArr.remark, tradeSettleOrderDetailArr.seller, tradeSettleOrderDetailArr.specId, tradeSettleOrderDetailArr.taxFee, tradeSettleOrderDetailArr.brandId, tradeSettleOrderDetailArr.goodsId, tradeSettleOrderDetailArr.goodsNo, tradeSettleOrderDetailArr.orderNo, tradeSettleOrderDetailArr.payTime, tradeSettleOrderDetailArr.payType, tradeSettleOrderDetailArr.taxRate, tradeSettleOrderDetailArr.cateName, tradeSettleOrderDetailArr.sellerId, tradeSettleOrderDetailArr.settleId, tradeSettleOrderDetailArr.specName, tradeSettleOrderDetailArr.auditTime, tradeSettleOrderDetailArr.brandName, tradeSettleOrderDetailArr.goodsName, tradeSettleOrderDetailArr.goodsTags, tradeSettleOrderDetailArr.sellCount, tradeSettleOrderDetailArr.sellPrice, tradeSettleOrderDetailArr.sellTotal, tradeSettleOrderDetailArr.tradeTime, tradeSettleOrderDetailArr.tradeType, tradeSettleOrderDetailArr.arriveTime, tradeSettleOrderDetailArr.chargeType, tradeSettleOrderDetailArr.goodsAlias, tradeSettleOrderDetailArr.logisticId, tradeSettleOrderDetailArr.mainPostid, tradeSettleOrderDetailArr.payAccount, tradeSettleOrderDetailArr.payDueDate, tradeSettleOrderDetailArr.stockoutNo, tradeSettleOrderDetailArr.accountName, tradeSettleOrderDetailArr.consignTime, tradeSettleOrderDetailArr.discountFee, tradeSettleOrderDetailArr.tradeStatus, tradeSettleOrderDetailArr.warehouseId, tradeSettleOrderDetailArr.lastShipTime, tradeSettleOrderDetailArr.logisticName, tradeSettleOrderDetailArr.logisticType, tradeSettleOrderDetailArr.chargeAccount, tradeSettleOrderDetailArr.sourceTradeNo, tradeSettleOrderDetailArr.warehouseName, tradeSettleOrderDetailArr.goodsAttribute, tradeSettleOrderDetailArr.shareFavourableAfterFee, tradeSettleOrderDetailArr.tradeNo, tradeSettleOrderDetailArr.innerSettleCost, tradeSettleOrderDetailArr.shareDiscountFee, tradeSettleOrderDetailArr.shareOtherPayment, tradeSettleOrderDetailArr.goodsReceiptAmount, tradeSettleOrderDetailArr.shareFairSellTotal, tradeSettleOrderDetailArr.shareFavourableFee, tradeSettleOrderDetailArr.otherShareFavourableFee, tradeSettleOrderDetailArr.customizeGoodsColumn1, tradeSettleOrderDetailArr.customizeGoodsColumn2, tradeSettleOrderDetailArr.customizeGoodsColumn3, tradeSettleOrderDetailArr.customizeGoodsColumn4, tradeSettleOrderDetailArr.customizeGoodsColumn5, tradeSettleOrderDetailArr.customizeGoodsColumn6, tradeSettleOrderDetailArr.customizeGoodsColumn7, tradeSettleOrderDetailArr.customizeGoodsColumn8, tradeSettleOrderDetailArr.customizeGoodsColumn9, tradeSettleOrderDetailArr.customizeGoodsColumn10, tradeSettleOrderCustomer.settleUnitId, tradeSettleOrderCustomer.qq, tradeSettleOrderCustomer.email, tradeSettleOrderCustomer.weiXin, tradeSettleOrderCustomer.wangWang, tradeSettleOrderCustomer.customerId, tradeSettleOrderCustomer.settleUnit, tradeSettleOrderCustomer.customerName, tradeSettleOrderCustomer.customerTags, tradeSettleOrderCustomer.customerType, tradeSettleOrderCustomer.customerGrade, tradeSettleOrderCustomer.customerAccount, tradeSettleOrderCustomer.customerTypeName, tradeSettleOrderCustomer.customerGradeName, tradeSettleOrderCustomer.endCustomerAccount, tradeSettleOrderColumnExt.customizeTradeColumn1, tradeSettleOrderColumnExt.customizeTradeColumn2, tradeSettleOrderColumnExt.customizeTradeColumn3, tradeSettleOrderColumnExt.customizeTradeColumn4, tradeSettleOrderColumnExt.customizeTradeColumn5, tradeSettleOrderColumnExt.customizeTradeColumn6, tradeSettleOrderColumnExt.customizeTradeColumn7, tradeSettleOrderColumnExt.customizeTradeColumn8, tradeSettleOrderColumnExt.customizeTradeColumn9, tradeSettleOrderColumnExt.customizeTradeColumn10\",\n" + " \"gmtModifiedBegin\": \"\",\n" + " \"hasQueryHistory\": \"\",\n" +