mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-19 01:48:47 +08:00
update 优化工作流启动任务加锁
This commit is contained in:
parent
17610e8721
commit
61fd9f5ba5
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
|
import com.baomidou.lock.annotation.Lock4j;
|
||||||
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -207,6 +208,7 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Lock4j(keys = {"#tenantId"})
|
||||||
public void syncDef(String tenantId) {
|
public void syncDef(String tenantId) {
|
||||||
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper<FlowDefinition>().eq(FlowDefinition::getTenantId, DEFAULT_TENANT_ID));
|
List<FlowDefinition> flowDefinitions = flowDefinitionMapper.selectList(new LambdaQueryWrapper<FlowDefinition>().eq(FlowDefinition::getTenantId, DEFAULT_TENANT_ID));
|
||||||
if (CollUtil.isEmpty(flowDefinitions)) {
|
if (CollUtil.isEmpty(flowDefinitions)) {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.lock.annotation.Lock4j;
|
||||||
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.conditions.update.LambdaUpdateWrapper;
|
||||||
@ -179,6 +180,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Lock4j
|
||||||
public boolean deleteByBusinessIds(List<Long> businessIds) {
|
public boolean deleteByBusinessIds(List<Long> businessIds) {
|
||||||
List<FlowInstance> flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper<FlowInstance>().in(FlowInstance::getBusinessId, StreamUtils.toList(businessIds, Convert::toStr)));
|
List<FlowInstance> flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper<FlowInstance>().in(FlowInstance::getBusinessId, StreamUtils.toList(businessIds, Convert::toStr)));
|
||||||
if (CollUtil.isEmpty(flowInstances)) {
|
if (CollUtil.isEmpty(flowInstances)) {
|
||||||
@ -352,6 +354,7 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
* @param variable 流程变量
|
* @param variable 流程变量
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Lock4j(keys = {"#instanceId"})
|
||||||
public void setVariable(Long instanceId, Map<String, Object> variable) {
|
public void setVariable(Long instanceId, Map<String, Object> variable) {
|
||||||
Instance instance = insService.getById(instanceId);
|
Instance instance = insService.getById(instanceId);
|
||||||
if (instance != null) {
|
if (instance != null) {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.lock.annotation.Lock4j;
|
||||||
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.incrementer.IdentifierGenerator;
|
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
||||||
@ -94,6 +95,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Lock4j(keys = {"#startProcessBo.flowCode + ':' + #startProcessBo.businessId"})
|
||||||
public StartProcessReturnDTO startWorkFlow(StartProcessBo startProcessBo) {
|
public StartProcessReturnDTO startWorkFlow(StartProcessBo startProcessBo) {
|
||||||
String businessId = startProcessBo.getBusinessId();
|
String businessId = startProcessBo.getBusinessId();
|
||||||
if (StringUtils.isBlank(businessId)) {
|
if (StringUtils.isBlank(businessId)) {
|
||||||
@ -145,6 +147,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Lock4j(keys = {"#completeTaskBo.taskId"})
|
||||||
public boolean completeTask(CompleteTaskBo completeTaskBo) {
|
public boolean completeTask(CompleteTaskBo completeTaskBo) {
|
||||||
try {
|
try {
|
||||||
// 获取任务ID并查询对应的流程任务和实例信息
|
// 获取任务ID并查询对应的流程任务和实例信息
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user