add 添加我发起的单据接口
This commit is contained in:
parent
a084520280
commit
187db3656f
@ -7,7 +7,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
|
||||
/**
|
||||
* 任务状态枚举
|
||||
* warmFlow配置
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
|
@ -7,6 +7,7 @@ import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.bo.InstanceBo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
import org.dromara.workflow.service.IFlwInstanceService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -94,4 +95,16 @@ public class FlwInstanceController extends BaseController {
|
||||
return R.ok(insService.active(id));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前登陆人发起的流程实例
|
||||
*
|
||||
* @param instanceBo 参数
|
||||
* @param pageQuery 分页
|
||||
*/
|
||||
@GetMapping("/getPageByCurrent")
|
||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery) {
|
||||
return flwInstanceService.getPageByCurrent(instanceBo, pageQuery);
|
||||
}
|
||||
}
|
||||
|
@ -19,12 +19,12 @@ public class InstanceBo implements Serializable {
|
||||
/**
|
||||
* 流程名称
|
||||
*/
|
||||
private String name;
|
||||
private String flowName;
|
||||
|
||||
/**
|
||||
* 流程key
|
||||
* 流程编码
|
||||
*/
|
||||
private String key;
|
||||
private String flowCode;
|
||||
|
||||
/**
|
||||
* 任务发起人
|
||||
|
@ -79,6 +79,11 @@ public class FlowInstanceVo {
|
||||
*/
|
||||
private Integer flowStatus;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
private String flowStatusName;
|
||||
|
||||
/**
|
||||
* 流程激活状态(0挂起 1激活)
|
||||
*/
|
||||
|
@ -4,6 +4,7 @@ import com.warm.flow.core.entity.Instance;
|
||||
import com.warm.flow.orm.entity.FlowInstance;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.bo.InstanceBo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
|
||||
import java.util.List;
|
||||
@ -64,4 +65,13 @@ public interface IFlwInstanceService {
|
||||
* @return 结果
|
||||
*/
|
||||
boolean cancelProcessApply(String businessId);
|
||||
|
||||
/**
|
||||
* 获取当前登陆人发起的流程实例
|
||||
*
|
||||
* @param instanceBo 参数
|
||||
* @param pageQuery 分页
|
||||
* @return 结果
|
||||
*/
|
||||
TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery);
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.warm.flow.core.FlowFactory;
|
||||
import com.warm.flow.core.constant.ExceptionCons;
|
||||
@ -18,14 +19,19 @@ import com.warm.flow.core.service.InsService;
|
||||
import com.warm.flow.core.service.NodeService;
|
||||
import com.warm.flow.core.service.TaskService;
|
||||
import com.warm.flow.core.utils.AssertUtil;
|
||||
import com.warm.flow.orm.entity.FlowDefinition;
|
||||
import com.warm.flow.orm.entity.FlowInstance;
|
||||
import com.warm.flow.orm.mapper.FlowDefinitionMapper;
|
||||
import com.warm.flow.orm.mapper.FlowInstanceMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||
import org.dromara.workflow.domain.bo.InstanceBo;
|
||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||
import org.dromara.workflow.mapper.FlwInstanceMapper;
|
||||
import org.dromara.workflow.service.IFlwInstanceService;
|
||||
@ -51,6 +57,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
private final TaskService taskService;
|
||||
private final FlowInstanceMapper flowInstanceMapper;
|
||||
private final FlwInstanceMapper flwInstanceMapper;
|
||||
private final FlowDefinitionMapper flowDefinitionMapper;
|
||||
|
||||
/**
|
||||
* 分页查询正在运行的流程实例
|
||||
@ -155,4 +162,44 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
Skip skip = skips.get(0);
|
||||
return FlowFactory.nodeService().getOne(FlowFactory.newNode().setDefinitionId(startNode.getDefinitionId()).setNodeCode(skip.getNextNodeCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前登陆人发起的流程实例
|
||||
*
|
||||
* @param instanceBo 参数
|
||||
* @param pageQuery 分页
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<FlowInstanceVo> getPageByCurrent(InstanceBo instanceBo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<FlowInstance> wrapper = Wrappers.lambdaQuery();
|
||||
|
||||
if (StringUtils.isNotBlank(instanceBo.getFlowCode())) {
|
||||
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(
|
||||
new LambdaQueryWrapper<FlowDefinition>().eq(FlowDefinition::getFlowCode, instanceBo.getFlowCode()));
|
||||
if (CollUtil.isNotEmpty(flowDefinitions)) {
|
||||
List<Long> defIdList = StreamUtils.toList(flowDefinitions, FlowDefinition::getId);
|
||||
wrapper.in(FlowInstance::getDefinitionId, defIdList);
|
||||
}
|
||||
}
|
||||
wrapper.eq(FlowInstance::getCreateBy, LoginHelper.getUserId());
|
||||
Page<FlowInstance> page = flowInstanceMapper.selectPage(pageQuery.build(), wrapper);
|
||||
TableDataInfo<FlowInstanceVo> build = TableDataInfo.build();
|
||||
List<FlowInstanceVo> flowInstanceVos = BeanUtil.copyToList(page.getRecords(), FlowInstanceVo.class);
|
||||
if (CollUtil.isNotEmpty(flowInstanceVos)) {
|
||||
List<Long> definitionIds = StreamUtils.toList(flowInstanceVos, FlowInstanceVo::getDefinitionId);
|
||||
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectBatchIds(definitionIds);
|
||||
for (FlowInstanceVo vo : flowInstanceVos) {
|
||||
flowDefinitions.stream().filter(e -> e.getId().toString().equals(vo.getDefinitionId().toString())).findFirst().ifPresent(e -> {
|
||||
vo.setFlowName(e.getFlowName());
|
||||
vo.setFlowCode(e.getFlowCode());
|
||||
vo.setVersion(e.getVersion());
|
||||
vo.setFlowStatusName(FlowStatus.getValueByKey(vo.getFlowStatus()));
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
build.setRows(flowInstanceVos);
|
||||
build.setTotal(page.getTotal());
|
||||
return build;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user