From db0e050fdcad6fc2d6bd7f70f6cfcdf214704fd5 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 17:47:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../form/ProcessTaskFormDataPublicApi.java | 7 +-- .../api/processtask/ProcessTaskDeleteApi.java | 6 ++- .../processtask/ProcessTaskDraftGetApi.java | 2 +- .../processtask/SearchProcessTaskFileApi.java | 20 ++++---- .../workcenter/WorkcenterDataExportApi.java | 6 ++- .../handler/FormAuditHandler.java | 6 +-- .../ProcessTaskFormAttributeCondition.java | 6 ++- .../ProcessTaskFullTextIndexHandler.java | 6 ++- .../handler/param/FormParamHandler.java | 6 ++- .../process/service/ProcessTaskService.java | 17 +++++++ .../service/ProcessTaskServiceImpl.java | 47 ++++++++++++++++++- .../component/TimerProcessComponent.java | 10 ++-- .../utilhandler/ProcessStepHandlerUtil.java | 27 ++++++++--- .../handler/FormWorkerPolicyHandler.java | 8 ++-- 14 files changed, 136 insertions(+), 38 deletions(-) diff --git a/src/main/java/neatlogic/module/process/api/form/ProcessTaskFormDataPublicApi.java b/src/main/java/neatlogic/module/process/api/form/ProcessTaskFormDataPublicApi.java index 5c991ad7c..bc74e12be 100644 --- a/src/main/java/neatlogic/module/process/api/form/ProcessTaskFormDataPublicApi.java +++ b/src/main/java/neatlogic/module/process/api/form/ProcessTaskFormDataPublicApi.java @@ -1,13 +1,12 @@ package neatlogic.module.process.api.form; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.process.dao.mapper.ProcessTaskMapper; import neatlogic.framework.process.dto.ProcessTaskFormAttributeDataVo; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.publicapi.PublicApiComponentBase; import neatlogic.module.process.service.ProcessTaskService; -import com.alibaba.fastjson.JSONObject; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -18,8 +17,6 @@ public class ProcessTaskFormDataPublicApi extends PublicApiComponentBase { @Resource private ProcessTaskService processTaskService; - @Resource - private ProcessTaskMapper processTaskMapper; @Override public String getToken() { @@ -47,7 +44,7 @@ public class ProcessTaskFormDataPublicApi extends PublicApiComponentBase { public Object myDoService(JSONObject jsonObj) throws Exception { Long processTaskId = jsonObj.getLong("processTaskId"); processTaskService.checkProcessTaskParamsIsLegal(processTaskId); - return processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(processTaskId); + return processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(processTaskId); } } diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDeleteApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDeleteApi.java index 57251a702..aa9801c53 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDeleteApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDeleteApi.java @@ -40,6 +40,7 @@ import neatlogic.framework.restful.annotation.Param; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; import com.alibaba.fastjson.JSONObject; +import neatlogic.module.process.service.ProcessTaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -68,6 +69,9 @@ public class ProcessTaskDeleteApi extends PrivateApiComponentBase { @Resource private IProcessStepHandlerUtil IProcessStepHandlerUtil; + @Resource + private ProcessTaskService processTaskService; + @Override public String getToken() { return "processtask/delete"; @@ -122,7 +126,7 @@ public class ProcessTaskDeleteApi extends PrivateApiComponentBase { } // 表单 processtask_form processtask_formattribute_data taskMapper.deleteProcessTaskFormByProcessTaskId(processTaskId); - taskMapper.deleteProcessTaskFormAttributeDataByProcessTaskId(processTaskId); + processTaskService.deleteProcessTaskFormAttributeDataByProcessTaskId(processTaskId); // 关注人 processtask_focus taskMapper.deleteProcessTaskFocusByProcessTaskId(processTaskId); // 流程汇聚 processtask_converge diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java index c1d1353a1..1d9cc1106 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java @@ -208,7 +208,7 @@ public class ProcessTaskDraftGetApi extends PrivateApiComponentBase { labelHandlerMap.put(formAttributeVo.getLabel(), formAttributeVo.getHandler()); } Map formAttributeDataMap = new HashMap<>(); - List processTaskFormAttributeDataList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(fromProcessTaskId); + List processTaskFormAttributeDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(fromProcessTaskId); for (ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo : processTaskFormAttributeDataList) { formAttributeDataMap.put(processTaskFormAttributeDataVo.getAttributeUuid(), processTaskFormAttributeDataVo.getDataObj()); } diff --git a/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java b/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java index a20ea7e6a..0b8ae9ce7 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java @@ -16,6 +16,9 @@ package neatlogic.module.process.api.processtask; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BasePageVo; @@ -32,9 +35,7 @@ import neatlogic.framework.process.stephandler.core.ProcessStepInternalHandlerFa import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import neatlogic.module.process.service.ProcessTaskService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -42,10 +43,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service @@ -58,6 +56,9 @@ public class SearchProcessTaskFileApi extends PrivateApiComponentBase { @Resource private ProcessTaskMapper processTaskMapper; + @Resource + private ProcessTaskService processTaskService; + @Resource private FileMapper fileMapper; @@ -99,9 +100,12 @@ public class SearchProcessTaskFileApi extends PrivateApiComponentBase { List fileList = processTaskMapper.getFileDetailListByProcessTaskId(processTaskId); List fileIdList = new ArrayList<>(); // 表单附件 - List formDataList = processTaskMapper.getProcessTaskFormAttributeDataListByProcessTaskIdAndFormType(processTaskId, FormHandler.FORMUPLOAD.getHandler()); + List formDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(processTaskId); if (formDataList.size() > 0) { for (ProcessTaskFormAttributeDataVo dataVo : formDataList) { + if (!Objects.equals(dataVo.getType(), FormHandler.FORMUPLOAD.getHandler())) { + continue; + } String data = dataVo.getData(); if (StringUtils.isNotBlank(data)) { try { diff --git a/src/main/java/neatlogic/module/process/api/workcenter/WorkcenterDataExportApi.java b/src/main/java/neatlogic/module/process/api/workcenter/WorkcenterDataExportApi.java index f39815649..adf3392f3 100644 --- a/src/main/java/neatlogic/module/process/api/workcenter/WorkcenterDataExportApi.java +++ b/src/main/java/neatlogic/module/process/api/workcenter/WorkcenterDataExportApi.java @@ -45,6 +45,7 @@ import neatlogic.framework.util.$; import neatlogic.framework.util.FileUtil; import neatlogic.module.process.dao.mapper.ProcessMapper; import neatlogic.module.process.service.NewWorkcenterService; +import neatlogic.module.process.service.ProcessTaskService; import neatlogic.module.process.sql.decorator.SqlBuilder; import neatlogic.module.process.workcenter.column.handler.ProcessTaskCurrentStepColumn; import neatlogic.module.process.workcenter.column.handler.ProcessTaskCurrentStepNameColumn; @@ -97,6 +98,9 @@ public class WorkcenterDataExportApi extends PrivateBinaryStreamApiComponentBase @Resource ProcessTaskMapper processTaskMapper; + @Resource + private ProcessTaskService processTaskService; + @Override public String getToken() { return "workcenter/export"; @@ -259,7 +263,7 @@ public class WorkcenterDataExportApi extends PrivateBinaryStreamApiComponentBase // 以channel当前关联的流程为准,如果流程没有关联表单或关联的表单没有属性,则无论当前工单是否有表单,都不查询 if (CollectionUtils.isNotEmpty(formAttributeList)) { // 遍历当前工单的所有表单属性,找出数据行数最多的属性,该属性的数据行数作为当前工单需要合并的行数 - List processTaskFormAttributeDataList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(taskVo.getId()); + List processTaskFormAttributeDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(taskVo.getId()); if (processTaskFormAttributeDataList.size() > 0) { processTaskFormAttributeDataMap = processTaskFormAttributeDataList.stream().collect(Collectors.toMap(AttributeDataVo::getAttributeLabel, e -> e)); for (FormAttributeVo formAttributeVo : formAttributeList) { diff --git a/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java b/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java index a9d9c2eed..dbf5b1335 100644 --- a/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java +++ b/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java @@ -128,18 +128,18 @@ public class FormAuditHandler implements IProcessTaskStepAuditDetailHandler { // 现在要保存该属性的值不为null,则将该属性值保存到数据库中,但标记为已修改 auditFormAttributeDataVo.setModified(1); auditFormAttributeDataVo.setDataObj(newProcessTaskFormAttributeDataVo.getDataObj()); - auditFormAttributeDataVo.setSort(newProcessTaskFormAttributeDataVo.getSort()); +// auditFormAttributeDataVo.setSort(newProcessTaskFormAttributeDataVo.getSort()); } } // 如果现在接口参数中没有该属性值,则表示不修改该属性值 else if (newProcessTaskFormAttributeDataVo == null) { // 将该属性旧值添加到stepFormAttributeDataMap,记录该步骤流转时该属性值 auditFormAttributeDataVo.setDataObj(oldProcessTaskFormAttributeDataVo.getDataObj()); - auditFormAttributeDataVo.setSort(oldProcessTaskFormAttributeDataVo.getSort()); +// auditFormAttributeDataVo.setSort(oldProcessTaskFormAttributeDataVo.getSort()); auditFormAttributeDataVo.setModified(0); } else { auditFormAttributeDataVo.setDataObj(newProcessTaskFormAttributeDataVo.getDataObj()); - auditFormAttributeDataVo.setSort(newProcessTaskFormAttributeDataVo.getSort()); +// auditFormAttributeDataVo.setSort(newProcessTaskFormAttributeDataVo.getSort()); if (Objects.equals(oldProcessTaskFormAttributeDataVo.getDataObj(), newProcessTaskFormAttributeDataVo.getDataObj())) { // 如果新表单属性值与旧表单属性值相同,就不用replace更新数据了 oldProcessTaskFormAttributeDataMap.remove(attributeUuid); diff --git a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java index 99fb433bd..ece016f83 100644 --- a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java +++ b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java @@ -46,6 +46,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.base.Objects; +import neatlogic.module.process.service.ProcessTaskService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -61,6 +62,9 @@ public class ProcessTaskFormAttributeCondition extends ProcessTaskConditionBase @Resource private SelectContentByHashMapper selectContentByHashMapper; + @Resource + private ProcessTaskService processTaskService; + @Override public String getName() { return ProcessFieldType.FORM.getValue(); @@ -255,7 +259,7 @@ public class ProcessTaskFormAttributeCondition extends ProcessTaskConditionBase if (StringUtils.isNotBlank(formContent)) { resultObj.put("formConfig", formContent); IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); - List processTaskFormAttributeDataList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(processTaskStepVo.getProcessTaskId()); + List processTaskFormAttributeDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(processTaskStepVo.getProcessTaskId()); for (ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo : processTaskFormAttributeDataList) { if (java.util.Objects.equals(processTaskFormAttributeDataVo.getType(), FormHandler.FORMRADIO.getHandler()) || java.util.Objects.equals(processTaskFormAttributeDataVo.getType(), FormHandler.FORMCHECKBOX.getHandler()) diff --git a/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java b/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java index 74ce0ab4d..2d9a0260e 100644 --- a/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java +++ b/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java @@ -28,6 +28,7 @@ import neatlogic.framework.process.dao.mapper.ProcessTaskMapper; import neatlogic.framework.process.dao.mapper.SelectContentByHashMapper; import neatlogic.framework.process.dto.*; import neatlogic.framework.process.fulltextindex.ProcessFullTextIndexType; +import neatlogic.module.process.service.ProcessTaskService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -49,6 +50,9 @@ public class ProcessTaskFullTextIndexHandler extends FullTextIndexHandlerBase { @Resource private SelectContentByHashMapper selectContentByHashMapper; + @Resource + private ProcessTaskService processTaskService; + @Override protected String getModuleId() { return "process"; @@ -78,7 +82,7 @@ public class ProcessTaskFullTextIndexHandler extends FullTextIndexHandlerBase { //fullTextIndexVo.addFieldContent("serial_number", new FullTextIndexVo.WordVo(processTaskVo.getSerialNumber())); //fullTextIndexVo.addFieldContent("id", new FullTextIndexVo.WordVo(processTaskVo.getId().toString())); //表单 - List processTaskFormAttributeDataVoList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(fullTextIndexVo.getTargetId()); + List processTaskFormAttributeDataVoList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(fullTextIndexVo.getTargetId()); if (CollectionUtils.isNotEmpty(processTaskFormAttributeDataVoList)) { for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataVoList) { if (StringUtils.isNotBlank(attributeDataVo.getData())) { diff --git a/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java b/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java index 1c8c59ade..641addfc2 100644 --- a/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java +++ b/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java @@ -33,6 +33,7 @@ import neatlogic.framework.process.dto.ProcessTaskVo; import neatlogic.framework.process.notify.constvalue.ProcessTaskNotifyParam; import neatlogic.framework.process.notify.core.ProcessTaskNotifyParamHandlerBase; import com.alibaba.fastjson.JSONObject; +import neatlogic.module.process.service.ProcessTaskService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -56,6 +57,9 @@ public class FormParamHandler extends ProcessTaskNotifyParamHandlerBase { @Resource private SelectContentByHashMapper selectContentByHashMapper; + @Resource + private ProcessTaskService processTaskService; + @Override public String getValue() { return ProcessTaskNotifyParam.FORM_TABLE.getValue(); @@ -79,7 +83,7 @@ public class FormParamHandler extends ProcessTaskNotifyParamHandlerBase { return null; } Map attributeDataMap = new HashMap<>(); - List processTaskFormAttributeDataList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(processTaskVo.getId()); + List processTaskFormAttributeDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(processTaskVo.getId()); if (CollectionUtils.isNotEmpty(processTaskFormAttributeDataList)) { attributeDataMap = processTaskFormAttributeDataList.stream().collect(Collectors.toMap(e -> e.getAttributeUuid(), e -> e)); } diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java index cf53b426a..1329641f9 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java @@ -456,4 +456,21 @@ public interface ProcessTaskService { * @return */ List getFormAttributeListByProcessTaskId(Long processTaskId); + + /** + * 根据工单id获取表单属性数据列表 + * @param processTaskId 工单id + * @return + */ + List getProcessTaskFormAttributeDataListByProcessTaskId(Long processTaskId); + + /** + * 根据工单id和表单属性uuid获取表单属性数据 + * @param processTaskId 工单id + * @param attributeUuid 表单属性uuid + * @return + */ + ProcessTaskFormAttributeDataVo getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(Long processTaskId, String attributeUuid); + + void deleteProcessTaskFormAttributeDataByProcessTaskId(Long processTaskId); } diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index e4176fa6f..52a709c77 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -39,6 +39,7 @@ import neatlogic.framework.exception.user.UserNotFoundException; import neatlogic.framework.file.dao.mapper.FileMapper; import neatlogic.framework.file.dto.FileVo; import neatlogic.framework.form.dao.mapper.FormMapper; +import neatlogic.framework.form.dto.AttributeDataVo; import neatlogic.framework.form.dto.FormAttributeVo; import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.form.exception.FormActiveVersionNotFoundExcepiton; @@ -264,7 +265,7 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC String formContent = selectContentByHashMapper.getProcessTaskFromContentByProcessTaskId(processTaskId); if (StringUtils.isNotBlank(formContent)) { processTaskVo.setFormConfig(JSONObject.parseObject(formContent)); - List processTaskFormAttributeDataList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(processTaskVo.getId()); + List processTaskFormAttributeDataList = getProcessTaskFormAttributeDataListByProcessTaskId(processTaskVo.getId()); for (ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo : processTaskFormAttributeDataList) { processTaskVo.getFormAttributeDataMap().put(processTaskFormAttributeDataVo.getAttributeUuid(), processTaskFormAttributeDataVo.getDataObj()); } @@ -2026,6 +2027,50 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC return formVersionVo.getFormAttributeList(); } + @Override + public List getProcessTaskFormAttributeDataListByProcessTaskId(Long processTaskId) { + List formAttributeDataIdList = processTaskMapper.getProcessTaskFormAttributeDataIdListByProcessTaskId(processTaskId); + if (CollectionUtils.isEmpty(formAttributeDataIdList)) { + return new ArrayList<>(); + } + List attributeDataList = formMapper.getFormAttributeDataListByIdList(formAttributeDataIdList); + if (CollectionUtils.isEmpty(attributeDataList)) { + return new ArrayList<>(); + } + List processTaskFormAttributeDataList = new ArrayList<>(); + for (AttributeDataVo attributeDataVo : attributeDataList) { + processTaskFormAttributeDataList.add(new ProcessTaskFormAttributeDataVo(processTaskId, attributeDataVo)); + } + return processTaskFormAttributeDataList; + } + + @Override + public ProcessTaskFormAttributeDataVo getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(Long processTaskId, String attributeUuid) { + List formAttributeDataIdList = processTaskMapper.getProcessTaskFormAttributeDataIdListByProcessTaskId(processTaskId); + if (CollectionUtils.isEmpty(formAttributeDataIdList)) { + return null; + } + List attributeDataList = formMapper.getFormAttributeDataListByIdList(formAttributeDataIdList); + if (CollectionUtils.isEmpty(attributeDataList)) { + return null; + } + for (AttributeDataVo attributeDataVo : attributeDataList) { + if (Objects.equals(attributeDataVo.getAttributeUuid(), attributeUuid)) { + return new ProcessTaskFormAttributeDataVo(processTaskId, attributeDataVo); + } + } + return null; + } + + @Override + public void deleteProcessTaskFormAttributeDataByProcessTaskId(Long processTaskId) { + List formAttributeDataIdList = processTaskMapper.getProcessTaskFormAttributeDataIdListByProcessTaskId(processTaskId); + if (CollectionUtils.isNotEmpty(formAttributeDataIdList)) { + formMapper.deleteFormAttributeDataByIdList(formAttributeDataIdList); + processTaskMapper.deleteProcessTaskFormAttributeByProcessTaskId(processTaskId); + } + } + /** * 根据fileId 和 processTaskIdList 获取对应用户是否有该工单附件的下载权限 * diff --git a/src/main/java/neatlogic/module/process/stephandler/component/TimerProcessComponent.java b/src/main/java/neatlogic/module/process/stephandler/component/TimerProcessComponent.java index 7f7d72550..2faa1cf6a 100644 --- a/src/main/java/neatlogic/module/process/stephandler/component/TimerProcessComponent.java +++ b/src/main/java/neatlogic/module/process/stephandler/component/TimerProcessComponent.java @@ -35,12 +35,14 @@ import neatlogic.framework.scheduler.dto.JobObject; import neatlogic.framework.scheduler.exception.ScheduleHandlerNotFoundException; import neatlogic.module.process.schedule.plugin.ProcessTaskStepTimerCompleteJob; import com.alibaba.fastjson.JSONObject; +import neatlogic.module.process.service.ProcessTaskService; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; @@ -60,6 +62,9 @@ import java.util.Set; @Component public class TimerProcessComponent extends ProcessStepHandlerBase { + @Resource + private ProcessTaskService processTaskService; + private final Logger logger = LoggerFactory.getLogger(TimerProcessComponent.class); @Override @@ -135,10 +140,7 @@ public class TimerProcessComponent extends ProcessStepHandlerBase { } else if ("form".equals(type)) { String attributeUuid = config.getString("attributeUuid"); if (StringUtils.isNotBlank(attributeUuid)) { - ProcessTaskFormAttributeDataVo searchVo = new ProcessTaskFormAttributeDataVo(); - searchVo.setProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); - searchVo.setAttributeUuid(attributeUuid); - ProcessTaskFormAttributeDataVo dataVo = processTaskMapper.getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(searchVo); + ProcessTaskFormAttributeDataVo dataVo = processTaskService.getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(currentProcessTaskStepVo.getProcessTaskId(), attributeUuid); if (dataVo != null) { String value = dataVo.getData(); if (StringUtils.isNotBlank(value)) { diff --git a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java index 1409823c0..926950279 100644 --- a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java @@ -16,6 +16,9 @@ package neatlogic.module.process.stephandler.utilhandler; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.asynchronization.threadlocal.UserContext; import neatlogic.framework.asynchronization.threadpool.TransactionSynchronizationPool; import neatlogic.framework.common.RootComponent; @@ -23,6 +26,8 @@ import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.dao.mapper.UserMapper; import neatlogic.framework.exception.user.UserNotFoundException; +import neatlogic.framework.form.dao.mapper.FormMapper; +import neatlogic.framework.form.dto.AttributeDataVo; import neatlogic.framework.form.dto.FormAttributeVo; import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.form.exception.FormAttributeRequiredException; @@ -38,9 +43,6 @@ import neatlogic.framework.process.stepremind.core.IProcessTaskStepRemindType; import neatlogic.framework.process.workerpolicy.core.IWorkerPolicyHandler; import neatlogic.framework.process.workerpolicy.core.WorkerPolicyHandlerFactory; import neatlogic.module.process.thread.*; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.MapUtils; @@ -64,6 +66,8 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { private ChannelMapper channelMapper; @Resource private ProcessTagMapper processTagMapper; + @Resource + private FormMapper formMapper; /** * @Description: 触发动作 @@ -920,7 +924,17 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { } /* 获取旧表单数据 **/ - List oldProcessTaskFormAttributeDataList = processTaskMapper.getProcessTaskStepFormAttributeDataByProcessTaskId(processTaskId); + List oldProcessTaskFormAttributeDataList = new ArrayList<>(); + List formAttributeDataIdList = processTaskMapper.getProcessTaskFormAttributeDataIdListByProcessTaskId(processTaskId); + if (CollectionUtils.isNotEmpty(formAttributeDataIdList)) { + List attributeDataList = formMapper.getFormAttributeDataListByIdList(formAttributeDataIdList); + if (CollectionUtils.isNotEmpty(attributeDataList)) { + for (AttributeDataVo attributeDataVo : attributeDataList) { + oldProcessTaskFormAttributeDataList.add(new ProcessTaskFormAttributeDataVo(processTaskId, attributeDataVo)); + } + } + } + Map oldProcessTaskFormAttributeDataMap = oldProcessTaskFormAttributeDataList.stream().collect(Collectors.toMap(e -> e.getAttributeUuid(), e -> e)); List newProcessTaskFormAttributeDataList = new ArrayList<>(); @@ -936,7 +950,7 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { formAttributeDataVo.setAttributeLabel(formAttributeVo.getLabel()); formAttributeDataVo.setType(formAttributeVo.getHandler()); formAttributeDataVo.setDataObj(data); - formAttributeDataVo.setSort(i); +// formAttributeDataVo.setSort(i); newProcessTaskFormAttributeDataList.add(formAttributeDataVo); } i++; @@ -967,7 +981,8 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { dataVo.setData(dataObj.toString()); } } - processTaskMapper.insertProcessTaskFormAttributeData(dataVo); + formMapper.insertFormAttributeData(dataVo); + processTaskMapper.insertProcessTaskFormAttribute(dataVo); } } } diff --git a/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java b/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java index 4be216730..7d34e5722 100644 --- a/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java +++ b/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java @@ -70,6 +70,8 @@ public class FormWorkerPolicyHandler implements IWorkerPolicyHandler { /** 选择的表单属性uuid **/ JSONArray attributeUuidArray = workerPolicyVo.getConfigObj().getJSONArray("attributeUuidList"); if (CollectionUtils.isNotEmpty(attributeUuidArray)) { + List processTaskFormAttributeDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); + Map processTaskFormAttributeDataMap = processTaskFormAttributeDataList.stream().collect(Collectors.toMap(e -> e.getAttributeUuid(), e -> e)); List formAttributeList = processTaskService.getFormAttributeListByProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); Map formAttributeMap = formAttributeList.stream().collect(Collectors.toMap(e -> e.getUuid(), e -> e)); List attributeUuidList = attributeUuidArray.toJavaList(String.class); @@ -78,11 +80,7 @@ public class FormWorkerPolicyHandler implements IWorkerPolicyHandler { if (formAttributeVo == null) { continue; } - ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo = new ProcessTaskFormAttributeDataVo(); - processTaskFormAttributeDataVo.setProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); - processTaskFormAttributeDataVo.setAttributeUuid(attributeUuid); - ProcessTaskFormAttributeDataVo processTaskFormAttributeData = processTaskMapper - .getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(processTaskFormAttributeDataVo); + ProcessTaskFormAttributeDataVo processTaskFormAttributeData = processTaskFormAttributeDataMap.get(attributeUuid); if (processTaskFormAttributeData == null) { continue; } -- Gitee From 00906e03cfea7d8d9e08533c01a1d2617b6202b4 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 18:09:45 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../neatlogic/resources/process/sqlscript/ddl.sql | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql b/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql index ebcdcea9c..8ccc821f5 100644 --- a/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql +++ b/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql @@ -541,18 +541,13 @@ CREATE TABLE IF NOT EXISTS `processtask_form_content` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单表单内容表'; -- ---------------------------- --- Table structure for processtask_formattribute_data +-- Table structure for processtask_formattribute -- ---------------------------- -CREATE TABLE IF NOT EXISTS `processtask_formattribute_data` ( +CREATE TABLE IF NOT EXISTS `processtask_formattribute` ( `processtask_id` bigint NOT NULL COMMENT '工单id', - `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '插件类型', - `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '属性名', - `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', - `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '工单属性值,json格式', - `sort` int DEFAULT NULL COMMENT '排序', - PRIMARY KEY (`processtask_id`,`attribute_uuid`) USING BTREE, - KEY `idx_attribute_uuid` (`attribute_uuid`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单关联的属性当前值'; + `form_attribute_data_id` bigint NOT NULL COMMENT '表单属性值id', + PRIMARY KEY (`processtask_id`,`form_attribute_data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单与表单属性值关系表'; -- ---------------------------- -- Table structure for processtask_import_audit -- Gitee From a349c27483b54013dd2dc9826f43db8d90fed7bc Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 18:38:32 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../process/api/processtask/SearchProcessTaskFileApi.java | 2 +- .../process/audithandler/handler/FormAuditHandler.java | 6 +++--- .../handler/ProcessTaskFormAttributeCondition.java | 8 ++++---- .../fulltextindex/ProcessTaskFullTextIndexHandler.java | 2 +- .../process/notify/handler/param/FormParamHandler.java | 2 +- .../stephandler/utilhandler/ProcessStepHandlerUtil.java | 2 +- .../workerpolicy/handler/FormWorkerPolicyHandler.java | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java b/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java index 0b8ae9ce7..41a5df3b1 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/SearchProcessTaskFileApi.java @@ -103,7 +103,7 @@ public class SearchProcessTaskFileApi extends PrivateApiComponentBase { List formDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(processTaskId); if (formDataList.size() > 0) { for (ProcessTaskFormAttributeDataVo dataVo : formDataList) { - if (!Objects.equals(dataVo.getType(), FormHandler.FORMUPLOAD.getHandler())) { + if (!Objects.equals(dataVo.getHandler(), FormHandler.FORMUPLOAD.getHandler())) { continue; } String data = dataVo.getData(); diff --git a/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java b/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java index dbf5b1335..edd6c7903 100644 --- a/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java +++ b/src/main/java/neatlogic/module/process/audithandler/handler/FormAuditHandler.java @@ -117,7 +117,7 @@ public class FormAuditHandler implements IProcessTaskStepAuditDetailHandler { ProcessTaskAuditFormAttributeDataVo auditFormAttributeDataVo = new ProcessTaskAuditFormAttributeDataVo(); auditFormAttributeDataVo.setAttributeUuid(attributeUuid); auditFormAttributeDataVo.setAttributeLabel(formAttributeVo.getLabel()); - auditFormAttributeDataVo.setType(formAttributeVo.getHandler()); + auditFormAttributeDataVo.setHandler(formAttributeVo.getHandler()); auditFormAttributeDataList.add(auditFormAttributeDataVo); // 在此之前如果该属性的值,在数据库中没有对应的旧数据 if (oldProcessTaskFormAttributeDataVo == null) { @@ -160,7 +160,7 @@ public class FormAuditHandler implements IProcessTaskStepAuditDetailHandler { Map oldContentMap = new HashMap<>(); for (Map.Entry entry : oldProcessTaskFormAttributeDataMap.entrySet()) { ProcessTaskFormAttributeDataVo attributeDataVo = entry.getValue(); - IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(attributeDataVo.getType()); + IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(attributeDataVo.getHandler()); if (handler != null) { String result = null; Object value = handler.valueConversionText(attributeDataVo, @@ -190,7 +190,7 @@ public class FormAuditHandler implements IProcessTaskStepAuditDetailHandler { content.put("oldContent", oldContent); } String newContent = null; - IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(attributeDataVo.getType()); + IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(attributeDataVo.getHandler()); if (handler != null) { String result = null; Object value = handler.valueConversionText(attributeDataVo, diff --git a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java index ece016f83..5e12427ae 100644 --- a/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java +++ b/src/main/java/neatlogic/module/process/condition/handler/ProcessTaskFormAttributeCondition.java @@ -129,7 +129,7 @@ public class ProcessTaskFormAttributeCondition extends ProcessTaskConditionBase } else { AttributeDataVo attributeDataVo = new AttributeDataVo(); attributeDataVo.setAttributeUuid(attributeUuid); - attributeDataVo.setType(formAttribute.getHandler()); + attributeDataVo.setHandler(formAttribute.getHandler()); if (value instanceof String) { attributeDataVo.setData((String) value); } else if (value instanceof JSONArray) { @@ -261,9 +261,9 @@ public class ProcessTaskFormAttributeCondition extends ProcessTaskConditionBase IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); List processTaskFormAttributeDataList = processTaskService.getProcessTaskFormAttributeDataListByProcessTaskId(processTaskStepVo.getProcessTaskId()); for (ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo : processTaskFormAttributeDataList) { - if (java.util.Objects.equals(processTaskFormAttributeDataVo.getType(), FormHandler.FORMRADIO.getHandler()) - || java.util.Objects.equals(processTaskFormAttributeDataVo.getType(), FormHandler.FORMCHECKBOX.getHandler()) - || java.util.Objects.equals(processTaskFormAttributeDataVo.getType(), FormHandler.FORMSELECT.getHandler())) { + if (java.util.Objects.equals(processTaskFormAttributeDataVo.getHandler(), FormHandler.FORMRADIO.getHandler()) + || java.util.Objects.equals(processTaskFormAttributeDataVo.getHandler(), FormHandler.FORMCHECKBOX.getHandler()) + || java.util.Objects.equals(processTaskFormAttributeDataVo.getHandler(), FormHandler.FORMSELECT.getHandler())) { Object value = formCrossoverService.getFormSelectAttributeValueByOriginalValue(processTaskFormAttributeDataVo.getDataObj()); resultObj.put(processTaskFormAttributeDataVo.getAttributeUuid(), value); } else { diff --git a/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java b/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java index 2d9a0260e..72b827b62 100644 --- a/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java +++ b/src/main/java/neatlogic/module/process/fulltextindex/ProcessTaskFullTextIndexHandler.java @@ -86,7 +86,7 @@ public class ProcessTaskFullTextIndexHandler extends FullTextIndexHandlerBase { if (CollectionUtils.isNotEmpty(processTaskFormAttributeDataVoList)) { for (ProcessTaskFormAttributeDataVo attributeDataVo : processTaskFormAttributeDataVoList) { if (StringUtils.isNotBlank(attributeDataVo.getData())) { - IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(attributeDataVo.getType()); + IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(attributeDataVo.getHandler()); if(handler != null) { List dataList = handler.indexFieldContentList(attributeDataVo.getData()); if (CollectionUtils.isNotEmpty(dataList)) { diff --git a/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java b/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java index 641addfc2..6dd8071bf 100644 --- a/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java +++ b/src/main/java/neatlogic/module/process/notify/handler/param/FormParamHandler.java @@ -96,7 +96,7 @@ public class FormParamHandler extends ProcessTaskNotifyParamHandlerBase { if (attributeDataVo == null) { attributeDataVo = new ProcessTaskFormAttributeDataVo(); attributeDataVo.setAttributeUuid(formAttribute.getUuid()); - attributeDataVo.setType(formAttribute.getHandler()); + attributeDataVo.setHandler(formAttribute.getHandler()); } attributeDataVo.setAttributeLabel(formAttribute.getLabel()); IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(formAttribute.getHandler()); diff --git a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java index 926950279..8a4ce8380 100644 --- a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java @@ -948,7 +948,7 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { formAttributeDataVo.setProcessTaskId(processTaskId); formAttributeDataVo.setAttributeUuid(attributeUuid); formAttributeDataVo.setAttributeLabel(formAttributeVo.getLabel()); - formAttributeDataVo.setType(formAttributeVo.getHandler()); + formAttributeDataVo.setHandler(formAttributeVo.getHandler()); formAttributeDataVo.setDataObj(data); // formAttributeDataVo.setSort(i); newProcessTaskFormAttributeDataList.add(formAttributeDataVo); diff --git a/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java b/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java index 7d34e5722..de77b2677 100644 --- a/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java +++ b/src/main/java/neatlogic/module/process/workerpolicy/handler/FormWorkerPolicyHandler.java @@ -89,7 +89,7 @@ public class FormWorkerPolicyHandler implements IWorkerPolicyHandler { continue; } /** 只有表单属性类型为用户选择器才生效 **/ - if (FormHandler.FORMUSERSELECT.getHandler().equals(processTaskFormAttributeData.getType())) { + if (FormHandler.FORMUSERSELECT.getHandler().equals(processTaskFormAttributeData.getHandler())) { IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(FormHandler.FORMUSERSELECT.getHandler()); if (handler != null) { JSONObject detailedData = handler.getDetailedData(processTaskFormAttributeData, formAttributeVo.getConfigObj()); @@ -123,7 +123,7 @@ public class FormWorkerPolicyHandler implements IWorkerPolicyHandler { } } } - } else if (FormHandler.FORMSELECT.getHandler().equals(processTaskFormAttributeData.getType())) { + } else if (FormHandler.FORMSELECT.getHandler().equals(processTaskFormAttributeData.getHandler())) { IFormAttributeDataConversionHandler handler = FormAttributeDataConversionHandlerFactory.getHandler(FormHandler.FORMSELECT.getHandler()); if (handler != null) { JSONObject detailedData = handler.getDetailedData(processTaskFormAttributeData, formAttributeVo.getConfigObj()); -- Gitee From 3c786fc1596272d790c06e78a74c857a8e7a63fa Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 18:50:00 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../process/stephandler/utilhandler/ProcessStepHandlerUtil.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java index 8a4ce8380..30f5ac73b 100644 --- a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java @@ -950,6 +950,7 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { formAttributeDataVo.setAttributeLabel(formAttributeVo.getLabel()); formAttributeDataVo.setHandler(formAttributeVo.getHandler()); formAttributeDataVo.setDataObj(data); + formAttributeDataVo.setFormUuid(formAttributeVo.getFormUuid()); // formAttributeDataVo.setSort(i); newProcessTaskFormAttributeDataList.add(formAttributeDataVo); } -- Gitee From 40f364cd73c193f4200421817977b515b94cdf43 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 18:57:40 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../stephandler/utilhandler/ProcessStepHandlerUtil.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java index 30f5ac73b..d705ecd5e 100644 --- a/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/stephandler/utilhandler/ProcessStepHandlerUtil.java @@ -945,6 +945,10 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil { Object data = formAttributeDataMap.get(attributeUuid); ProcessTaskFormAttributeDataVo formAttributeDataVo = new ProcessTaskFormAttributeDataVo(); + ProcessTaskFormAttributeDataVo oldProcessTaskFormAttributeData = oldProcessTaskFormAttributeDataMap.get(attributeUuid); + if (oldProcessTaskFormAttributeData != null) { + formAttributeDataVo.setId(oldProcessTaskFormAttributeData.getId()); + } formAttributeDataVo.setProcessTaskId(processTaskId); formAttributeDataVo.setAttributeUuid(attributeUuid); formAttributeDataVo.setAttributeLabel(formAttributeVo.getLabel()); -- Gitee