diff --git a/src/main/java/neatlogic/framework/form/dto/FormVersionVo.java b/src/main/java/neatlogic/framework/form/dto/FormVersionVo.java index 26f3b9214ff6629da7d0ff2178f2280136fe7600..b4412e01e924475c0969adec6fbc656c55d98a3b 100644 --- a/src/main/java/neatlogic/framework/form/dto/FormVersionVo.java +++ b/src/main/java/neatlogic/framework/form/dto/FormVersionVo.java @@ -330,6 +330,8 @@ public class FormVersionVo extends BaseEditorVo { if (MapUtils.isNotEmpty(formCustomExtendConfig)) { JSONArray extendConfigList = formCustomExtendConfig.getJSONArray("extendConfigList"); if (CollectionUtils.isNotEmpty(extendConfigList)) { + String mainSceneUuid = this.formConfig.getString("uuid"); + formCustomExtendAttributeList = new ArrayList<>(); for (int i = 0; i < extendConfigList.size(); i++) { JSONObject extendConfigObj = extendConfigList.getJSONObject(i); if (MapUtils.isEmpty(extendConfigObj)) { @@ -337,8 +339,6 @@ public class FormVersionVo extends BaseEditorVo { } JSONArray attributeArray = extendConfigObj.getJSONArray("attributeList"); if (CollectionUtils.isNotEmpty(attributeArray)) { - String mainSceneUuid = this.formConfig.getString("uuid"); - formCustomExtendAttributeList = new ArrayList<>(); for (int j = 0; j < attributeArray.size(); j++) { JSONObject attributeObj = attributeArray.getJSONObject(j); if (MapUtils.isEmpty(attributeObj)) { diff --git a/src/main/java/neatlogic/framework/form/service/IFormCrossoverService.java b/src/main/java/neatlogic/framework/form/service/IFormCrossoverService.java index 89f8f37592acd280ad3a07c08390f6a4380908b7..e489dc10cecb7eb83bfb9807251bdfddadc5a146 100644 --- a/src/main/java/neatlogic/framework/form/service/IFormCrossoverService.java +++ b/src/main/java/neatlogic/framework/form/service/IFormCrossoverService.java @@ -37,4 +37,22 @@ public interface IFormCrossoverService extends ICrossoverService { * @return 组件列表 */ List getFormAttributeList(String formUuid, String formName, String tag); + + /** + * 获取表单组件列表 + * + * @param formUuid 表单UUID + * @param formName 表单名 + * @param tag 标签 + * @return 组件列表 + */ + List getFormAttributeListNew(String formUuid, String formName, String tag); + + /** + * 通过简单值获取标准值,例如下拉框的简单值为a或A,返回标准值为{"value":"a", "text":"A"} + * @param simpleValue + * @param configObj + * @return + */ + Object getSelectStandardValueBySimpleValue(Object simpleValue, JSONObject configObj); } diff --git a/src/main/java/neatlogic/module/framework/form/service/FormService.java b/src/main/java/neatlogic/module/framework/form/service/FormService.java index 71615c0874f345703a17551c5a02d6f2af126387..440d1f2bc00ef34073ba02f72cac5d89b5d509ac 100644 --- a/src/main/java/neatlogic/module/framework/form/service/FormService.java +++ b/src/main/java/neatlogic/module/framework/form/service/FormService.java @@ -49,6 +49,16 @@ public interface FormService { */ List getFormAttributeList(String formUuid, String formName, String tag); + /** + * 获取表单组件列表 + * + * @param formUuid 表单UUID + * @param formName 表单名 + * @param tag 标签 + * @return 组件列表 + */ + List getFormAttributeListNew(String formUuid, String formName, String tag); + /** * 通过简单值获取标准值,例如下拉框的简单值为a或A,返回标准值为{"value":"a", "text":"A"} * @param simpleValue diff --git a/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java b/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java index 58b735476ecc308d79698eb82441b01a487077b4..3d673615f303a80dc807a362180ed406d0e5be9a 100644 --- a/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java +++ b/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java @@ -527,7 +527,7 @@ public class FormServiceImpl implements FormService, IFormCrossoverService { List formExtendAttributeList = new ArrayList<>(); List list = formMapper.getFormExtendAttributeListByFormUuidAndFormVersionUuid(formUuid, formVersion.getUuid()); for (FormAttributeVo formAttributeVo : list) { - if (Objects.equals(formAttributeVo.getTag(), tag)) { + if (Objects.equals(formAttributeVo.getTag(), tag) && formAttributeVo.getParentUuid() != null) { formExtendAttributeList.add(formAttributeVo); parentUuidList.add(formAttributeVo.getParentUuid()); } @@ -542,6 +542,40 @@ public class FormServiceImpl implements FormService, IFormCrossoverService { return resultList; } + @Override + public List getFormAttributeListNew(String formUuid, String formName, String tag) { + FormVersionVo formVersion = formMapper.getActionFormVersionByFormUuid(formUuid); + if (formVersion == null) { + throw new FormActiveVersionNotFoundExcepiton(formName); + } + FormAttributeVo searchVo = new FormAttributeVo(); + searchVo.setFormUuid(formUuid); + searchVo.setFormVersionUuid(formVersion.getUuid()); + List formAttributeList = formMapper.getFormAttributeList(searchVo); + if (StringUtils.isBlank(tag)) { + return formAttributeList; + } + Set tagSet = new HashSet<>(); + List formCustomExtendAttributeList = formVersion.getFormCustomExtendAttributeList(); + if (CollectionUtils.isNotEmpty(formCustomExtendAttributeList)) { + for (FormAttributeVo formAttributeVo : formCustomExtendAttributeList) { + tagSet.add(formAttributeVo.getTag()); + } + } + if (tagSet.contains(tag)) { + List formExtendAttributeList = new ArrayList<>(); + List list = formMapper.getFormExtendAttributeListByFormUuidAndFormVersionUuid(formUuid, formVersion.getUuid()); + for (FormAttributeVo formAttributeVo : list) { + if (Objects.equals(formAttributeVo.getTag(), tag) && formAttributeVo.getParentUuid() == null) { + formExtendAttributeList.add(formAttributeVo); + } + } + return formExtendAttributeList; + } else { + return getFormAttributeList(formUuid, formName, tag); + } + } + @Override public Object getSelectStandardValueBySimpleValue(Object dataObj, JSONObject configObj) { JSONArray resultList = new JSONArray();