        List<${returnEntityName}> result = new ArrayList<${returnEntityName}>();
        CAP4FormCacheManager cap4FormCacheManager = (CAP4FormCacheManager) AppContext.getBean(${doubleQuote}cap4FormCacheManager${doubleQuote});
        CAP4FormManager cap4FormManager = (CAP4FormManager) AppContext.getBean(${doubleQuote}cap4FormManager${doubleQuote});
        Long formId = MagicHandleFormUtils.getProviderFormId(${doubleQuote}${businessId}${doubleQuote}, ${doubleQuote}${versionId}${doubleQuote}, ${doubleQuote}${methodName}${doubleQuote});;
        FormBean fb = cap4FormCacheManager.getForm(formId);
        if (fb == null || dataId == null || dataId.isEmpty()) {
            return Collections.emptyList();
        }
        List<String> fieldBeans = new ArrayList<String>();
        ${resturnKeys};
        Map<String, List<FormFieldBean>> fieldMapper = new HashMap<String, List<FormFieldBean>>();
        for (String s : fieldBeans) {
            FormFieldBean ffb = fb.getFieldBeanByName(s);
            if (ffb != null) {
                List<FormFieldBean> tempFields = fieldMapper.get(ffb.getOwnerTableName());
                if (tempFields == null) {
                    tempFields = new ArrayList<FormFieldBean>();
                    fieldMapper.put(ffb.getOwnerTableName(), tempFields);
                }
                tempFields.add(ffb);
            }
        }
        try {
            MagicProviderDefaultConvertor convertor = MagicProviderDefaultConvertor.getConvertor(${doubleQuote}${businessId}${doubleQuote}, ${doubleQuote}${versionId}${doubleQuote}, ${doubleQuote}${methodName}${doubleQuote});
            String master = dataId.get(0);
            ${returnEntityName} datas = new ${returnEntityName}();
            long targetDataId = Long.parseLong(master);
            FormDataMasterBean toMasterBean = cap4FormManager.getDataMasterBeanById(targetDataId, fb, null);
            if (toMasterBean == null) {
                return result;
            } else {
                Map<String,${feedBackItemValue} >  data = new HashMap<String, ${feedBackItemValue}>();
                result.add(datas);
                List<FormFieldBean> masterBeans = fieldMapper.remove(fb.getMasterTableBean().getTableName());
                if(masterBeans != null) {
                    for (FormFieldBean f : masterBeans) {
                       ${masterDataCopyContent}
                    }
                }
                datas.setMasterData(data);
                Map<String, List<Map<String, ${feedBackItemValue}>>> subTableDataList = new HashMap<String, List<Map<String,${feedBackItemValue}>>>();
                // 设置重表
                for (Entry<String, List<FormFieldBean>> sub : fieldMapper.entrySet()) {
                    String subTableName = sub.getKey();
                    List<Map<String, ${feedBackItemValue}>> subTableDataRow = subTableDataList.get(subTableName);
                    if(subTableDataRow == null) {
                        subTableDataRow = new ArrayList<Map<String,${feedBackItemValue}>>();
                        subTableDataList.put(subTableName, subTableDataRow);
                    }
                    
                    
                    
                    List<FormDataSubBean> subDatas = toMasterBean.getSubData(subTableName);
                    List<FormFieldBean> subFields = sub.getValue();
                    if (subDatas == null || subDatas.isEmpty() || subFields == null || subFields.isEmpty()) {
                        continue;
                    }
                    for (FormDataSubBean s : subDatas) {
                        Map<String, ${feedBackItemValue}> item  = new HashMap<String, ${feedBackItemValue}>();
                        for (FormFieldBean t : subFields) {
                            ${feedBackItemValue}  subDataItem = new ${feedBackItemValue}();
                            subDataItem.setId(String.valueOf(s.getId()));
                            subDataItem.setFieldName(t.getOwnerTableName() +${doubleQuote}.${doubleQuote} + t.getName());
                            subDataItem.setValue(s.getFieldValue(t.getName()));
                            item.put(t.getName(), subDataItem);
                            
                        }
                        subTableDataRow.add(item);
                    }
                }
                datas.setSubTableDataList(subTableDataList );
                
            }
        } catch (Exception e) {
        }
        return result;
