add 添加动态表单提交流程

This commit is contained in:
gssong 2023-09-21 21:06:56 +08:00
parent c28c6ba4c4
commit 50484c5442
3 changed files with 30 additions and 1 deletions

View File

@ -60,4 +60,14 @@ public class WfBusinessFormVo implements Serializable {
@ExcelProperty(value = "表单值") @ExcelProperty(value = "表单值")
private String contentValue; private String contentValue;
/**
* 动态单与流程定义关联信息业务对象
*/
private WfFormDefinitionVo wfFormDefinitionVo;
/**
* 流程实例对象
*/
private ProcessInstanceVo processInstanceVo;
} }

View File

@ -3,6 +3,7 @@ package org.dromara.workflow.service.impl;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.json.utils.JsonUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -11,6 +12,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.workflow.domain.WfFormDefinition;
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
import org.dromara.workflow.mapper.WfFormDefinitionMapper;
import org.dromara.workflow.utils.WorkflowUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.workflow.domain.bo.WfBusinessFormBo; import org.dromara.workflow.domain.bo.WfBusinessFormBo;
import org.dromara.workflow.domain.vo.WfBusinessFormVo; import org.dromara.workflow.domain.vo.WfBusinessFormVo;
@ -34,12 +39,21 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
private final WfBusinessFormMapper baseMapper; private final WfBusinessFormMapper baseMapper;
private final WfFormDefinitionMapper wfFormDefinitionMapper;
/** /**
* 查询发起流程 * 查询发起流程
*/ */
@Override @Override
public WfBusinessFormVo queryById(Long id) { public WfBusinessFormVo queryById(Long id) {
return baseMapper.selectVoById(id); WfBusinessFormVo wfBusinessFormVo = baseMapper.selectVoById(id);
if (wfBusinessFormVo != null) {
WfFormDefinitionVo wfFormDefinitionVo = wfFormDefinitionMapper.selectVoOne(
new LambdaQueryWrapper<WfFormDefinition>().eq(WfFormDefinition::getFormId, wfBusinessFormVo.getFormId())
);
wfBusinessFormVo.setWfFormDefinitionVo(wfFormDefinitionVo);
}
return wfBusinessFormVo;
} }
/** /**
@ -49,6 +63,8 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
public TableDataInfo<WfBusinessFormVo> queryPageList(WfBusinessFormBo bo, PageQuery pageQuery) { public TableDataInfo<WfBusinessFormVo> queryPageList(WfBusinessFormBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WfBusinessForm> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<WfBusinessForm> lqw = buildQueryWrapper(bo);
Page<WfBusinessFormVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<WfBusinessFormVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<WfBusinessFormVo> records = result.getRecords();
WorkflowUtils.setProcessInstanceListVo(records,StreamUtils.toList(records, e -> String.valueOf(e.getId())),"id");
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }

View File

@ -306,6 +306,9 @@ public class WorkflowUtils {
* @param fieldName 主键属性名称 * @param fieldName 主键属性名称
*/ */
public static void setProcessInstanceListVo(Object obj, List<String> idList, String fieldName) { public static void setProcessInstanceListVo(Object obj, List<String> idList, String fieldName) {
if (CollUtil.isEmpty(idList)) {
return;
}
List<ActHiProcinst> actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList); List<ActHiProcinst> actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList);
if (obj instanceof Collection<?> collection) { if (obj instanceof Collection<?> collection) {
for (Object o : collection) { for (Object o : collection) {