@Override
  public Map<String, Object> getDefaultFormData(String businessFormTemplateId) {
    Map<String, Object> formData = new HashMap<String, Object>();
    List<BusinessBaseTemplate> list =
        businessBaseTemplateDao.queryBybusinessBaseTemplate(businessFormTemplateId);
    for (BusinessBaseTemplate baseTemplate : list) {
      List<TemplateField> fieldList = templateFieldDao.queryByTemplateFormId(baseTemplate.getId());
      String businessBaseId = baseTemplate.getBusinessBaseId();
      BusinessBase businessBase = businessBaseDao.getById(businessBaseId);
      String baseFormId = businessBase.getBaseFormId();
      BaseForm baseForm = baseFormDao.getById(baseFormId);
      // 主表单
      if (businessBase.getIsDetail() != null && businessBase.getIsDetail().intValue() == 0) {
        Map<String, Object> map = new HashMap<String, Object>();
        for (TemplateField templateField : fieldList) {
          FormField formField = formFieldDao.getById(templateField.getFieldId());
          String defaultValue = templateField.getDefaultValue();
          if (!StringUtil.isNullOrEmpty(defaultValue)) {
            if (formField.getViewType().intValue() == FormMetaValue.FORMFIELD_DATAFIELD) {
              try {
                Date v = DateUtils.parseDate(defaultValue, new String[] {"yyyy-MM-dd"});
                map.put(formField.getFieldCode().toLowerCase(), v);
              } catch (ParseException e) {
                log.error(
                    this.getClass().getSimpleName()
                        + " e==> getDefaultFormData  ,ParseException + businessFormTemplateId:["
                        + businessFormTemplateId
                        + "]",
                    e);
              }
            } else {
              map.put(formField.getFieldCode().toLowerCase(), defaultValue);
            }
            // 列表组件 需要设置rawText值
            if (formField.getViewType().intValue() == FormMetaValue.FORMFIELD_GRID
                || formField.getViewType().intValue() == FormMetaValue.FORMFIELD_TREE) {
              map.put(
                  formField.getFieldCode().toLowerCase() + "_rawtext",
                  formFieldService.getRawTextValue(defaultValue, formField));
            }
          }
        }
        formData.put(baseForm.getBaseFormCode().toLowerCase(), map);
      } else {

      }
    }
    return formData;
  }
  @Override
  public Map<String, Object> getFormData(String businessFormtemplateId, String flowRequestId) {
    Map<String, Object> resultMap = new HashMap<String, Object>();
    List<BusinessBaseTemplate> list =
        businessBaseTemplateDao.queryBybusinessBaseTemplate(businessFormtemplateId);
    for (BusinessBaseTemplate baseTemplate : list) {
      StringBuffer selectSql = new StringBuffer();
      Map<String, Object> selectParam = new HashMap<String, Object>();
      String businessBaseId = baseTemplate.getBusinessBaseId();
      String baseFormId = businessBaseDao.getById(businessBaseId).getBaseFormId();
      BaseForm baseForm = baseFormDao.getById(baseFormId);
      String baseFormCode = baseForm.getBaseFormCode().toLowerCase();
      selectSql.append("select id ").append("\"id\",");
      // 需要设置rawText值的字段
      List<FormField> needRawTextList = new ArrayList<FormField>();
      // 自定义组件list
      List<TemplateFieldDto> cusFomFieldList = new ArrayList<TemplateFieldDto>();

      List<TemplateField> fieldList = templateFieldDao.queryByTemplateFormId(baseTemplate.getId());
      for (TemplateField templateField : fieldList) {
        if (templateField != null
            && templateField.getIsShow() != null
            && templateField.getIsShow() == 1) {
          FormField formField = formFieldDao.getById(templateField.getFieldId());
          selectSql
              .append(formField.getFieldCode() + "  \"")
              .append(formField.getFieldCode().toLowerCase() + "\",");
          // 列表组件
          if (formField.getViewType().intValue() == FormMetaValue.FORMFIELD_GRID
              || formField.getViewType().intValue() == FormMetaValue.FORMFIELD_TREE) {
            needRawTextList.add(formField);
          }
          if (formField.getViewType().intValue() == FormMetaValue.FORMFIELD_CUS_FIELD) {
            TemplateFieldDto d = new TemplateFieldDto();
            d.setTemplateField(templateField);
            d.setFormField(formField);
            cusFomFieldList.add(d);
          }
        }
      }
      String sql =
          selectSql.substring(0, selectSql.length() - 1)
              + " from "
              + baseForm.getBaseFormCode().toLowerCase()
              + " where FLOW_REQUEST_ID = #{flowRequestId}";
      selectParam.put("flowRequestId", flowRequestId);

      BusinessBase businessBase = businessBaseDao.getById(baseTemplate.getBusinessBaseId());
      // 主表单
      if (businessBase.getIsDetail() != null && businessBase.getIsDetail() == 0) {
        // 从数据库查询表单值
        Map<String, Object> map = businessBaseTemplateDao.getMainDataBySql(sql, selectParam);
        // 设置需要rawText的值
        for (FormField formField : needRawTextList) {
          Object value = map.get(formField.getFieldCode().toLowerCase());
          if (!StringUtil.isNullOrEmpty(value)) {
            map.put(
                formField.getFieldCode().toLowerCase() + "_rawtext",
                formFieldService.getRawTextValue(value.toString(), formField));
          }
        }
        // 自定义组件设置值
        for (TemplateFieldDto dto : cusFomFieldList) {
          Object value = map.get(dto.getFormField().getFieldCode().toLowerCase());
          if (!StringUtil.isNullOrEmpty(value)) {
            sqlDatasourceService.setCusFieldValueToMap(dto, map, value);
          }
        }
        resultMap.put(baseFormCode, map);
      } else if (businessBase.getIsDetail() != null && businessBase.getIsDetail() == 1) {
        List<Map<String, Object>> resultList =
            businessBaseTemplateDao.getSubDataBySql(sql, selectParam);
        // 设置需要rawText的值
        for (Map<String, Object> subList : resultList) {
          for (FormField formField : needRawTextList) {
            Object value = subList.get(formField.getFieldCode().toLowerCase());
            if (!StringUtil.isNullOrEmpty(value)) {
              subList.put(
                  formField.getFieldCode().toLowerCase() + "_rawtext",
                  formFieldService.getRawTextValue(value.toString(), formField));
            }
          }
        }
        if (resultList != null) {
          resultMap.put(baseFormCode, resultList);
        } else {
          resultMap.put(baseFormCode, new ArrayList<Map<String, String>>());
        }
      } else {
        resultMap.put(baseFormCode, new HashMap<String, String>());
      }
    }
    return resultMap;
  }