Exemple #1
0
  @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 {
    }
  }