/**
   * 功能:保存工单
   *
   * @param orders DTOSet
   * @return boolean
   */
  public boolean saveOrders(DTOSet orders) {
    boolean operateResult = false;
    boolean autoCommit = true;
    EamDhCheckBatchDTO dto = (EamDhCheckBatchDTO) dtoParameter;
    boolean isNewBatch = dto.getBatchId().equals("");
    String act = dto.getAct();
    try {
      autoCommit = conn.getAutoCommit();
      conn.setAutoCommit(false);
      if (isNewBatch) {
        SeqProducer seqPrd = new SeqProducer(conn);
        // TODO
        dto.setBatchId(seqPrd.getStrNextSeq("EAM_DH_CHECK_BATCH") + "");
        String companyCode = userAccount.getCompanyCode();
        String orderType = LvecDicts.CHECK_BATCH;
        OrderNumGenerator numPrd = new OrderNumGenerator(conn, companyCode, orderType);
        numPrd.setOrderLength(3);
        dto.setBatchNo(numPrd.getOrderNum());
        setDTOParameter(dto);
        createData();
      } else {
        updateData();
      }
      EamDhCheckLineDAO lineDAO = new EamDhCheckLineDAO(userAccount, null, conn);
      EamDhCheckLineDTO orderLine = new EamDhCheckLineDTO();
      if (!dto.getOrderType().equals(LvecDicts.ORD_TYPE1_DHBS)) {
        orderLine.setBatchId(dto.getBatchId());
        lineDAO.setDTOParameter(orderLine);
        lineDAO.DeleteByForeignKey("batchId");
      }
      EamDhCheckHeaderDTO orderHeader = new EamDhCheckHeaderDTO();
      orderHeader.setBatchId(dto.getBatchId());
      EamDhCheckHeaderDAO headerDAO = new EamDhCheckHeaderDAO(userAccount, orderHeader, conn);
      headerDAO.DeleteByForeignKey("batchId");

      int orderCount = orders.getSize();
      for (int i = 0; i < orderCount; i++) {
        orderHeader = (EamDhCheckHeaderDTO) orders.getDTO(i);

        if (orderHeader.getCheckLocation() == 0) {

          continue;
        }
        orderHeader.setBatchId(dto.getBatchId());
        orderHeader.setCheckTaskId(dto.getCheckTaskId());
        orderHeader.setAct(act);
        headerDAO.setDTOParameter(orderHeader);
        headerDAO.saveOrder();

        if (!orderHeader.getOrderType().equals(LvecDicts.ORD_TYPE1_DHBS)) { // 非补扫工单才需要创建行信息
          orderHeader = (EamDhCheckHeaderDTO) headerDAO.getDTOParameter();
          orderLine.setHeaderId(orderHeader.getHeaderId());
          orderLine.setOrderType(orderHeader.getOrderType());
          orderLine.setBatchId(dto.getBatchId());
          lineDAO.setDTOParameter(orderLine);
          lineDAO.createData();
        }
      }
      operateResult = true;
    } catch (Exception ex) {
      Logger.logError(ex);
    } finally {
      try {
        if (operateResult) {
          conn.commit();
          if (act.equals(DzyhActionConstant.SAVE_ACTION)) { // 暂存工单
            prodMessage(LvecMessageKeys.ORDER_SAVE_SUCCESS);
          } else if (act.equals(DzyhActionConstant.DISTRI_ORDER)) { // 下发工单
            prodMessage(LvecMessageKeys.ORDER_DISTRI_SUCCESS);
          }
        } else {
          conn.rollback();
          if (isNewBatch) {
            dto.setBatchId("");
            dto.setBatchNo(LvecWebAttributes.ORDER_NO_AUTO_PRODUCE);
          }
          if (act.equals(DzyhActionConstant.SAVE_ACTION)) { // 暂存工单
            prodMessage(LvecMessageKeys.ORDER_SAVE_FAILURE);
          } else if (act.equals(DzyhActionConstant.DISTRI_ORDER)) { // 下发工单
            prodMessage(LvecMessageKeys.ORDER_DISTRI_FAILURE);
          }
          message.setIsError(true);
        }
        conn.setAutoCommit(autoCommit);
        setDTOParameter(dto);
      } catch (SQLException ex) {
        Logger.logError(ex);
      }
    }
    return operateResult;
  }