update 调整办理 驳回 终止等状态
This commit is contained in:
parent
c409a3a582
commit
dcb1e6e05f
@ -83,4 +83,12 @@ public interface IFlwInstanceService {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Map<String, Object> getFlowImage(String businessId);
|
Map<String, Object> getFlowImage(String businessId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按照实例id更新状态
|
||||||
|
*
|
||||||
|
* @param instanceId 实例id
|
||||||
|
* @param status 状态
|
||||||
|
*/
|
||||||
|
void updateStatus(Long instanceId, String status);
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.warm.flow.core.entity.*;
|
import com.warm.flow.core.entity.*;
|
||||||
@ -162,7 +163,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
List<FlowInstanceVo> flowInstanceVos = BeanUtil.copyToList(page.getRecords(), FlowInstanceVo.class);
|
List<FlowInstanceVo> flowInstanceVos = BeanUtil.copyToList(page.getRecords(), FlowInstanceVo.class);
|
||||||
if (CollUtil.isNotEmpty(flowInstanceVos)) {
|
if (CollUtil.isNotEmpty(flowInstanceVos)) {
|
||||||
List<Long> definitionIds = StreamUtils.toList(flowInstanceVos, FlowInstanceVo::getDefinitionId);
|
List<Long> definitionIds = StreamUtils.toList(flowInstanceVos, FlowInstanceVo::getDefinitionId);
|
||||||
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectBatchIds(definitionIds);
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectByIds(definitionIds);
|
||||||
for (FlowInstanceVo vo : flowInstanceVos) {
|
for (FlowInstanceVo vo : flowInstanceVos) {
|
||||||
flowDefinitions.stream().filter(e -> e.getId().toString().equals(vo.getDefinitionId().toString())).findFirst().ifPresent(e -> {
|
flowDefinitions.stream().filter(e -> e.getId().toString().equals(vo.getDefinitionId().toString())).findFirst().ifPresent(e -> {
|
||||||
vo.setFlowName(e.getFlowName());
|
vo.setFlowName(e.getFlowName());
|
||||||
@ -178,9 +179,14 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
return build;
|
return build;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取流程图,流程记录
|
||||||
|
*
|
||||||
|
* @param businessId 业务id
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> getFlowImage(String businessId) {
|
public Map<String, Object> getFlowImage(String businessId) {
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>(16);
|
||||||
FlowInstance flowInstance = instanceByBusinessId(businessId);
|
FlowInstance flowInstance = instanceByBusinessId(businessId);
|
||||||
LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();
|
||||||
wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId());
|
wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId());
|
||||||
@ -231,4 +237,18 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
return 0 + "秒";
|
return 0 + "秒";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按照实例id更新状态
|
||||||
|
*
|
||||||
|
* @param instanceId 实例id
|
||||||
|
* @param status 状态
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void updateStatus(Long instanceId, String status) {
|
||||||
|
LambdaUpdateWrapper<FlowInstance> wrapper = new LambdaUpdateWrapper<>();
|
||||||
|
wrapper.set(FlowInstance::getFlowStatus, status);
|
||||||
|
wrapper.eq(FlowInstance::getId, instanceId);
|
||||||
|
flowInstanceMapper.update(wrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,12 +22,14 @@ import com.warm.flow.orm.mapper.FlowSkipMapper;
|
|||||||
import com.warm.flow.orm.mapper.FlowTaskMapper;
|
import com.warm.flow.orm.mapper.FlowTaskMapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.enums.BusinessStatusEnum;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.StreamUtils;
|
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.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
|
import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||||
import org.dromara.workflow.domain.bo.*;
|
import org.dromara.workflow.domain.bo.*;
|
||||||
import org.dromara.workflow.domain.vo.*;
|
import org.dromara.workflow.domain.vo.*;
|
||||||
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
||||||
@ -100,6 +102,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
flowParams.flowCode(wfDefinitionConfigVo.getProcessKey());
|
flowParams.flowCode(wfDefinitionConfigVo.getProcessKey());
|
||||||
flowParams.variable(startProcessBo.getVariables());
|
flowParams.variable(startProcessBo.getVariables());
|
||||||
flowParams.setHandler(String.valueOf(LoginHelper.getUserId()));
|
flowParams.setHandler(String.valueOf(LoginHelper.getUserId()));
|
||||||
|
flowParams.flowStatus(BusinessStatusEnum.DRAFT.getStatus());
|
||||||
Instance instance;
|
Instance instance;
|
||||||
try {
|
try {
|
||||||
instance = insService.start(startProcessBo.getBusinessKey(), flowParams);
|
instance = insService.start(startProcessBo.getBusinessKey(), flowParams);
|
||||||
@ -132,7 +135,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
//流程定义
|
//流程定义
|
||||||
Definition definition = defService.getById(flowTask.getDefinitionId());
|
Definition definition = defService.getById(flowTask.getDefinitionId());
|
||||||
//流程提交监听
|
//流程提交监听
|
||||||
if (FlowStatus.TOBESUBMIT.getKey().equals(ins.getFlowStatus()) || FlowStatus.REJECT.getKey().equals(ins.getFlowStatus())) {
|
if (BusinessStatusEnum.DRAFT.getStatus().equals(ins.getFlowStatus()) || BusinessStatusEnum.CANCEL.getStatus().equals(ins.getFlowStatus())
|
||||||
|
|| BusinessStatusEnum.BACK.getStatus().equals(ins.getFlowStatus())) {
|
||||||
flowProcessEventHandler.processHandler(definition.getFlowCode(), ins.getBusinessId(), ins.getFlowStatus(), true);
|
flowProcessEventHandler.processHandler(definition.getFlowCode(), ins.getBusinessId(), ins.getFlowStatus(), true);
|
||||||
}
|
}
|
||||||
//办理任务监听
|
//办理任务监听
|
||||||
@ -144,13 +148,17 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
flowParams.message(completeTaskBo.getMessage());
|
flowParams.message(completeTaskBo.getMessage());
|
||||||
flowParams.handler(userId);
|
flowParams.handler(userId);
|
||||||
flowParams.permissionFlag(WorkflowUtils.permissionList());
|
flowParams.permissionFlag(WorkflowUtils.permissionList());
|
||||||
|
flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus())
|
||||||
|
.hisStatus(TaskStatusEnum.PASS.getStatus());
|
||||||
setHandler(taskService.skip(taskId, flowParams));
|
setHandler(taskService.skip(taskId, flowParams));
|
||||||
|
iFlwInstanceService.updateStatus(ins.getId(), BusinessStatusEnum.WAITING.getStatus());
|
||||||
//判断是否流程结束
|
//判断是否流程结束
|
||||||
Instance instance = insService.getById(ins.getId());
|
Instance instance = insService.getById(ins.getId());
|
||||||
if (FlowStatus.isFinished(instance.getFlowStatus())) {
|
if (FlowStatus.isFinished(instance.getFlowStatus())) {
|
||||||
|
iFlwInstanceService.updateStatus(instance.getId(), BusinessStatusEnum.FINISH.getStatus());
|
||||||
//流程结束执行监听
|
//流程结束执行监听
|
||||||
flowProcessEventHandler.processHandler(definition.getFlowCode(), instance.getBusinessId(),
|
flowProcessEventHandler.processHandler(definition.getFlowCode(), instance.getBusinessId(),
|
||||||
FlowStatus.FINISHED.getKey(), false);
|
BusinessStatusEnum.FINISH.getStatus(), false);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -194,7 +202,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
public TableDataInfo<FlowTaskVo> getPageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
public TableDataInfo<FlowTaskVo> getPageByTaskWait(FlowTaskBo flowTaskBo, PageQuery pageQuery) {
|
||||||
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<FlowTaskBo> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.in("t.processed_by", WorkflowUtils.permissionList());
|
queryWrapper.in("t.processed_by", WorkflowUtils.permissionList());
|
||||||
queryWrapper.in("t.flow_status", FlowStatus.APPROVAL.getKey());
|
queryWrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus());
|
||||||
Page<FlowTaskVo> page = buildTaskWaitingPage(pageQuery, queryWrapper, flowTaskBo);
|
Page<FlowTaskVo> page = buildTaskWaitingPage(pageQuery, queryWrapper, flowTaskBo);
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
@ -326,9 +334,12 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
flowParams.variable(bo.getVariables());
|
flowParams.variable(bo.getVariables());
|
||||||
if (nextNodeCode.equals(bo.getNodeCode())) {
|
if (nextNodeCode.equals(bo.getNodeCode())) {
|
||||||
flowParams.skipType(SkipType.REJECT.getKey());
|
flowParams.skipType(SkipType.REJECT.getKey());
|
||||||
|
flowParams.flowStatus(BusinessStatusEnum.BACK.getStatus());
|
||||||
} else {
|
} else {
|
||||||
flowParams.skipType(SkipType.PASS.getKey());
|
flowParams.skipType(SkipType.PASS.getKey());
|
||||||
|
flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus());
|
||||||
}
|
}
|
||||||
|
flowParams.hisStatus(TaskStatusEnum.BACK.getStatus());
|
||||||
flowParams.message(bo.getMessage());
|
flowParams.message(bo.getMessage());
|
||||||
flowParams.handler(userId);
|
flowParams.handler(userId);
|
||||||
flowParams.nodeCode(bo.getNodeCode());
|
flowParams.nodeCode(bo.getNodeCode());
|
||||||
@ -336,7 +347,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
Instance instance = taskService.skip(taskId, flowParams);
|
Instance instance = taskService.skip(taskId, flowParams);
|
||||||
setHandler(instance);
|
setHandler(instance);
|
||||||
flowProcessEventHandler.processHandler(definition.getFlowCode(),
|
flowProcessEventHandler.processHandler(definition.getFlowCode(),
|
||||||
instance.getBusinessId(), FlowStatus.REJECT.getKey(), false);
|
instance.getBusinessId(), BusinessStatusEnum.BACK.getStatus(), false);
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
@ -379,10 +390,12 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
flowParams.handler(String.valueOf(LoginHelper.getUserId()));
|
flowParams.handler(String.valueOf(LoginHelper.getUserId()));
|
||||||
flowParams.message(bo.getComment());
|
flowParams.message(bo.getComment());
|
||||||
flowParams.permissionFlag(WorkflowUtils.permissionList());
|
flowParams.permissionFlag(WorkflowUtils.permissionList());
|
||||||
|
flowParams.flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
|
||||||
|
.hisStatus(TaskStatusEnum.TERMINATION.getStatus());
|
||||||
taskService.termination(bo.getTaskId(), flowParams);
|
taskService.termination(bo.getTaskId(), flowParams);
|
||||||
//流程终止监听
|
//流程终止监听
|
||||||
flowProcessEventHandler.processHandler(definition.getFlowCode(),
|
flowProcessEventHandler.processHandler(definition.getFlowCode(),
|
||||||
ins.getBusinessId(), FlowStatus.INVALID.getKey(), false);
|
ins.getBusinessId(), BusinessStatusEnum.TERMINATION.getStatus(), false);
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user