@Override public Double processSoItem(Tuple input, JumpMQOrderVo order) { double orderAmt = 0.0D; logger.info("Message successfully received: " + order.baseInfo()); if (order.getChildOrderList() != null && !order.getChildOrderList().isEmpty()) { for (JumpMQOrderVo childOrder : order.getChildOrderList()) { logger.info("Order successfully received: " + childOrder.baseInfo()); List<JumpMQOrderItemVo> soItemList = childOrder.getSoItemList(); for (JumpMQOrderItemVo soItem : soItemList) { if (soItem.getSubSoItemList() != null && !soItem.getSubSoItemList().isEmpty()) { List<JumpMQOrderItemVo> subSoItemList = soItem.getSubSoItemList(); for (JumpMQOrderItemVo subSoItem : subSoItemList) { logger.info("SoItem successfully received: " + subSoItem.baseInfo()); orderAmt += handleSoItem(input, order, childOrder, subSoItem); logger.info("SoItem successfully processed: " + subSoItem.baseInfo()); } } else { logger.info("SoItem successfully received: " + soItem.baseInfo()); orderAmt += handleSoItem(input, order, childOrder, soItem); logger.info("SoItem successfully processed: " + soItem.baseInfo()); } } logger.info("Order successfully processed: " + childOrder.baseInfo()); } } else { logger.info("Order successfully received: " + order.baseInfo()); List<JumpMQOrderItemVo> soItemList = order.getSoItemList(); for (JumpMQOrderItemVo soItem : soItemList) { if (soItem.getSubSoItemList() != null && !soItem.getSubSoItemList().isEmpty()) { List<JumpMQOrderItemVo> subSoItemList = soItem.getSubSoItemList(); for (JumpMQOrderItemVo subSoItem : subSoItemList) { logger.info("SoItem successfully received: " + subSoItem.baseInfo()); orderAmt += handleSoItem(input, null, order, subSoItem); logger.info("SoItem successfully processed: " + subSoItem.baseInfo()); } } else { logger.info("SoItem successfully received: " + soItem.baseInfo()); orderAmt += handleSoItem(input, null, order, soItem); logger.info("SoItem successfully processed: " + soItem.baseInfo()); } } logger.info("Order successfully processed: " + order.baseInfo()); } return orderAmt; }
@Override public void execute(Tuple input) { try { jumpMQOrderVo = (JumpMQOrderVo) input.getValue(0); if (jumpMQOrderVo == null) { logger.info("===元数据空消息体==="); throw new Exception(); } // 入库父单 try { insertParentSo(con, jumpMQOrderVo); } catch (Exception e) { logger.info("===so insert failed ....==="); } // 入库子单 if (jumpMQOrderVo.getChildOrderList() != null && jumpMQOrderVo.getChildOrderList().size() > 0) { for (JumpMQOrderVo childOrder : jumpMQOrderVo.getChildOrderList()) { soItemList = childOrder.getSoItemList(); for (JumpMQOrderItemVo soItemVo : soItemList) { insertItemSo(con, soItemVo); } } } else { soItemList = jumpMQOrderVo.getSoItemList(); for (JumpMQOrderItemVo soItemVo : soItemList) { insertItemSo(con, soItemVo); } } _collector.ack(input); } catch (Exception e) { _collector.fail(input); e.printStackTrace(); } finally { } }