diff --git a/src/main/java/neatlogic/module/process/api/channel/ChannelFormGetApi.java b/src/main/java/neatlogic/module/process/api/channel/ChannelFormGetApi.java index 3dfb99b6e1706e54cc5a673ce75e0999c60fae38..22bbd6600fe6235f307fb34f0c6f7798839dc290 100644 --- a/src/main/java/neatlogic/module/process/api/channel/ChannelFormGetApi.java +++ b/src/main/java/neatlogic/module/process/api/channel/ChannelFormGetApi.java @@ -113,26 +113,51 @@ public class ChannelFormGetApi extends PrivateApiComponentBase { if (formVo == null) { throw new FormNotFoundException(formUuid); } + String formVersionUuid = null; String conditionModel = jsonObj.getString("conditionModel"); - List formAttributeList = formMapper.getFormAttributeList(new FormAttributeVo(formUuid)); - ListIterator formIterator = formAttributeList.listIterator(); - while (formIterator.hasNext()) { - FormAttributeVo formAttributeVo = formIterator.next(); - //如果是radio 则改为 checkbox,前端解决多选,取消选择问题 - if (!Objects.equals("all", conditionModel) && Objects.equals(formAttributeVo.getHandler(), new RadioHandler().getHandler())) { - formAttributeVo.setHandler(new CheckboxHandler().getHandler()); + { + List formAttributeList = formMapper.getFormAttributeList(new FormAttributeVo(formUuid)); + ListIterator formIterator = formAttributeList.listIterator(); + while (formIterator.hasNext()) { + FormAttributeVo formAttributeVo = formIterator.next(); + //如果是radio 则改为 checkbox,前端解决多选,取消选择问题 + if (!Objects.equals("all", conditionModel) && Objects.equals(formAttributeVo.getHandler(), new RadioHandler().getHandler())) { + formAttributeVo.setHandler(new CheckboxHandler().getHandler()); + } + IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(formAttributeVo.getHandler()); + if (handler == null || (!Objects.equals("all", conditionModel) && !handler.isConditionable())) { + formIterator.remove(); + continue; + } + formAttributeVo.setConditionModel(FormConditionModel.getFormConditionModel(conditionModel)); + formAttributeVo.setType("form"); + formAttributeVo.setChannelUuid(channel.getUuid()); + formAttributeVo.setIsUseFormConfig(handler.isUseFormConfig()); + formVersionUuid = formAttributeVo.getFormVersionUuid(); } - IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(formAttributeVo.getHandler()); - if (handler == null || (!Objects.equals("all", conditionModel) && !handler.isConditionable())) { - formIterator.remove(); - continue; + allFormAttributeList.addAll(formAttributeList); + } + if (formVersionUuid != null) { + List formExtendAttributeList = formMapper.getFormExtendAttributeListByFormUuidAndFormVersionUuid(formUuid, formVersionUuid); + ListIterator formIterator = formExtendAttributeList.listIterator(); + while (formIterator.hasNext()) { + FormAttributeVo formAttributeVo = formIterator.next(); + //如果是radio 则改为 checkbox,前端解决多选,取消选择问题 + if (!Objects.equals("all", conditionModel) && Objects.equals(formAttributeVo.getHandler(), new RadioHandler().getHandler())) { + formAttributeVo.setHandler(new CheckboxHandler().getHandler()); + } + IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(formAttributeVo.getHandler()); + if (handler == null || (!Objects.equals("all", conditionModel) && !handler.isConditionable())) { + formIterator.remove(); + continue; + } + formAttributeVo.setConditionModel(FormConditionModel.getFormConditionModel(conditionModel)); + formAttributeVo.setType("form"); + formAttributeVo.setChannelUuid(channel.getUuid()); + formAttributeVo.setIsUseFormConfig(handler.isUseFormConfig()); } - formAttributeVo.setConditionModel(FormConditionModel.getFormConditionModel(conditionModel)); - formAttributeVo.setType("form"); - formAttributeVo.setChannelUuid(channel.getUuid()); - formAttributeVo.setIsUseFormConfig(handler.isUseFormConfig()); + allFormAttributeList.addAll(formExtendAttributeList); } - allFormAttributeList.addAll(formAttributeList); } return allFormAttributeList; } diff --git a/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java b/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java index badf5e9290f2c29ed663575f542b9ea384989d06..866a00495aecb040310a15e911234d1b231d5918 100644 --- a/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java +++ b/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java @@ -82,6 +82,8 @@ public class ProcessTaskFullTextIndexHandler extends FullTextIndexHandlerBase { //fullTextIndexVo.addFieldContent("id", new FullTextIndexVo.WordVo(processTaskVo.getId().toString())); //表单 List processTaskFormAttributeDataVoList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(fullTextIndexVo.getTargetId()); + List allProcessTaskFormExtendAttributeDataList = processTaskService.getAllProcessTaskFormExtendAttributeDataListByProcessTaskId(fullTextIndexVo.getTargetId()); + processTaskFormAttributeDataVoList.addAll(allProcessTaskFormExtendAttributeDataList); if (CollectionUtils.isNotEmpty(processTaskFormAttributeDataVoList)) { for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataVoList) { if (StringUtils.isNotBlank(attributeDataVo.getData())) { diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java index fb7bbcb6aa6b4d72cf0877913a51176f7ae3a640..8d89031a7c51e71199ebbfbd3b71b84aedf3210e 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java @@ -505,6 +505,13 @@ public interface ProcessTaskService { */ List getProcessTaskFormAttributeDataListByProcessTaskIdAndTagNew(Long processTaskId, String tag); + /** + * 根据工单id获取所有扩展表单属性数据列表 + * @param processTaskId 工单id + * @return + */ + List getAllProcessTaskFormExtendAttributeDataListByProcessTaskId(Long processTaskId); + /** * 根据工单id和表单属性uuid获取表单属性数据 * @param processTaskId 工单id diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index 3469bea41541f92dde576983faae3767dad0ec12..4c8260152b80ce73e89a0108aa0b2bc5fb107506 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -2333,6 +2333,16 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } } + @Override + public List getAllProcessTaskFormExtendAttributeDataListByProcessTaskId(Long processTaskId) { + List processTaskFormAttributeDataList = new ArrayList<>(); + List extendAttributeDataList = processTaskMapper.getProcessTaskExtendFormAttributeDataListByProcessTaskId(processTaskId, null); + for (AttributeDataVo attributeDataVo : extendAttributeDataList) { + processTaskFormAttributeDataList.add(new ProcessTaskFormAttributeDataVo(processTaskId, attributeDataVo)); + } + return processTaskFormAttributeDataList; + } + @Override public ProcessTaskFormAttributeDataVo getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(Long processTaskId, String attributeUuid) { List formAttributeDataIdList = processTaskMapper.getProcessTaskFormAttributeDataIdListByProcessTaskId(processTaskId);