From 6d7193d6a24ec4d80e377714df2426620e8ec850 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 7 May 2025 18:59:46 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1-?= =?UTF-8?q?=E5=AE=9A=E5=88=B6=E8=A1=A8=E5=8D=95=E7=BB=84=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=B1=82=E5=B8=B8=E8=A7=84=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=A3=80=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1415960299274240]IT服务-定制表单组件的第一层常规字段支持检索 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1415960299274240 --- .../api/channel/ChannelFormGetApi.java | 57 +++++++++++++------ .../ProcessTaskFullTextIndexHandler.java | 2 + .../process/service/ProcessTaskService.java | 7 +++ .../service/ProcessTaskServiceImpl.java | 10 ++++ 4 files changed, 60 insertions(+), 16 deletions(-) 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 3dfb99b6e..22bbd6600 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 badf5e929..866a00495 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 fb7bbcb6a..8d89031a7 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 3469bea41..4c8260152 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); -- Gitee