        CAP4FormCacheManager cap4FormCacheManager = (CAP4FormCacheManager) AppContext.getBean(${doubleQuote}cap4FormCacheManager${doubleQuote});
        long toFormId = MagicHandleFormUtils.getProviderFormId(${doubleQuote}${businessId}${doubleQuote}, ${doubleQuote}${versionId}${doubleQuote}, ${doubleQuote}${methodName}${doubleQuote});
        List<${returnEntityName}> result = new ArrayList<${returnEntityName}>();
        if (resultFields == null || resultFields.isEmpty()) {
            return result;
        }
        
        FormBean toFormBean = cap4FormCacheManager.getForm(toFormId);
       Map<FormDataMasterBean, List<Long>> queryResult = MagicHandleFormUtils.queryForUpdate(context, toFormBean,
                condition);
        for (Entry<FormDataMasterBean, List<Long>> item : queryResult.entrySet()) {
            ${returnEntityName} dataItem = new ${returnEntityName}();
            Map<String, ${fieldValueObj}> masterData = new HashMap<String, ${fieldValueObj}>();
            dataItem.setMasterData(masterData);
            dataItem.setTargetFormId(toFormId);
            Map<String, List<Map<String, ${fieldValueObj}>>> subTableDataList = new HashMap<String, List<Map<String, ${fieldValueObj}>>>();
            dataItem.setSubTableDataList(subTableDataList);
            dataItem.setDataId(item.getKey().getId());
            Map<String, List<FormFieldBean>> subTableFields = new HashMap<String, List<FormFieldBean>>();
            for (String field : resultFields) {
                FormFieldBean ffb = toFormBean.getFieldBeanByName(field);
                if (ffb == null) {
                    continue;
                }
                Object value = item.getKey().getFieldValue(field);
                if (FieldType.DECIMAL.getKey().equals(ffb.getFieldType())) {
                    value = new BigDecimal(value == null ? ${doubleQuote}0${doubleQuote} : value.toString());
                }
                if (ffb.isMasterField()) {
                    ${fieldValueObj} master = new ${fieldValueObj}();
                    master.setId(String.valueOf(item.getKey().getId()));
                    master.setValue(value);
                    master.setFieldName(ffb.getOwnerTableName() + ${doubleQuote}.${doubleQuote} + ffb.getName());

                    masterData.put(field, master);
                } else {
                    String owerTableName = ffb.getOwnerTableName();
                    List<FormFieldBean> subFields = subTableFields.get(owerTableName);
                    if (subFields == null) {
                        subFields = new ArrayList<FormFieldBean>();
                        subTableFields.put(owerTableName, subFields);
                    }
                    subFields.add(ffb);
                }
            }
            for (Entry<String, List<FormFieldBean>> subTemp : subTableFields.entrySet()) {
                String owerTableName = subTemp.getKey();
                FormTriggerUtil.deleteNullSubData(owerTableName, item.getKey(), false);

                List<FormDataSubBean> sub = item.getKey().getSubData(owerTableName);
                List<FormFieldBean> subResultFields = subTemp.getValue();
                if (sub == null || sub.isEmpty() || subResultFields == null || subResultFields.isEmpty()) {
                    continue;
                }
                List<Long> subDataId = item.getValue();
                if (subDataId != null && !subDataId.isEmpty()) {
                    for (Long sid : subDataId) {
                        FormDataSubBean fdsb = item.getKey().getFormDataSubBeanById(owerTableName, sid);

                        List<Map<String, ${fieldValueObj}>> subDataItem = subTableDataList
                                .get(owerTableName);
                        if (subDataItem == null) {
                            subDataItem = new ArrayList<Map<String, ${fieldValueObj}>>();
                            subTableDataList.put(owerTableName, subDataItem);
                        }
                        Map<String, ${fieldValueObj}> data = new HashMap<String, ${fieldValueObj}>();
                        for (FormFieldBean sf : subResultFields) {
                            ${fieldValueObj} subData = new ${fieldValueObj}();
                            subData.setId(String.valueOf(item.getKey().getId()));
                            subData.setFieldName(sf.getOwnerTableName() + ${doubleQuote}.${doubleQuote} + sf.getName());
                            subData.setValue(fdsb.getFieldValue(sf.getName()));
                            subData.setSubDataId(String.valueOf(sid));
                            data.put(sf.getName(), subData);
                        }
                        subDataItem.add(data);
                    }

                }

            }
            result.add(dataItem);
        }
        return result;