xuhy
2025-02-25 358e4f19e130045ce58c2313435baec2a3f11b61
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StateProcessTemplateServiceImpl.java
@@ -34,6 +34,7 @@
import com.ruoyi.system.vo.ProcessTaskListVO;
import lombok.AllArgsConstructor;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -46,20 +47,30 @@
import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class StateProcessTemplateServiceImpl extends ServiceImpl<StateProcessTemplateMapper, StateProcessTemplate> implements StateProcessTemplateService {
    private final FlowLongEngine flowLongEngine;
    private final StateProcessInstanceActionService stateProcessInstanceActionService;
    private final StateProcessExtInstanceService stateProcessExtInstanceService;
    private final FlwHisInstanceMapper flwHisInstanceMapper;
    private final FlwTaskActorMapper flwTaskActorMapper;
    private final FlwTaskMapper flwTaskMapper;
    private final StateTaskCenterService stateTaskCenterService;
    private final StateProcessModuleService stateProcessModuleService;
    private final FlwHisTaskMapper flwHisTaskMapper;
    private final FlwHisTaskActorMapper flwHisTaskActorMapper;
    private final ISysUserService sysUserService;
    @Autowired
    private FlowLongEngine flowLongEngine;
    @Autowired
    private StateProcessInstanceActionService stateProcessInstanceActionService;
    @Autowired
    private StateProcessExtInstanceService stateProcessExtInstanceService;
    @Autowired
    private FlwHisInstanceMapper flwHisInstanceMapper;
    @Autowired
    private FlwTaskActorMapper flwTaskActorMapper;
    @Autowired
    private FlwTaskMapper flwTaskMapper;
    @Autowired
    private StateTaskCenterService stateTaskCenterService;
    @Autowired
    private StateProcessModuleService stateProcessModuleService;
    @Autowired
    private FlwHisTaskMapper flwHisTaskMapper;
    @Autowired
    private FlwHisTaskActorMapper flwHisTaskActorMapper;
    @Autowired
    private ISysUserService sysUserService;
    /**
     * 流程模版分页
@@ -130,7 +141,7 @@
        // 更新模板, version+1
        StateProcessTemplate processTemplate = new StateProcessTemplate();
        processTemplate.setId(IdUtils.simpleUUID());
        processTemplate.setId(processUpdateBO.getId());
        processTemplate.setWorkFlowId(deployId);
        processTemplate.setWorkflowVersion(flwProcess.getProcessVersion());
        processTemplate.setTemplateName(processUpdateBO.getTemplateName());
@@ -141,20 +152,20 @@
        processTemplate.setUpdateBy(SecurityUtils.getLoginUser().getUsername());
        processTemplate.setUpdateTime(LocalDateTime.now());
        processTemplate.setTemplateVersion(temp.getTemplateVersion() + 1);
        this.save(processTemplate);
        return this.updateById(processTemplate);
        //查询版本是否绑定流程,更新
        LambdaQueryWrapper<StateProcessModule> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StateProcessModule::getTemplateId, processUpdateBO.getId());
        List<StateProcessModule> stateProcessModules = stateProcessModuleService.list(queryWrapper);
        if (Objects.isNull(stateProcessModules) || stateProcessModules.isEmpty()) {
            return true;
        }
        for (StateProcessModule stateProcessModule : stateProcessModules) {
            stateProcessModule.setTemplateId(processTemplate.getId());
            stateProcessModule.setTemplateName(processTemplate.getTemplateName());
        }
        return stateProcessModuleService.updateBatchById(stateProcessModules);
//        LambdaQueryWrapper<StateProcessModule> queryWrapper = new LambdaQueryWrapper<>();
//        queryWrapper.eq(StateProcessModule::getTemplateId, processUpdateBO.getId());
//        List<StateProcessModule> stateProcessModules = stateProcessModuleService.list(queryWrapper);
//        if (Objects.isNull(stateProcessModules) || stateProcessModules.isEmpty()) {
//            return true;
//        }
//        for (StateProcessModule stateProcessModule : stateProcessModules) {
//            stateProcessModule.setTemplateId(processTemplate.getId());
//            stateProcessModule.setTemplateName(processTemplate.getTemplateName());
//        }
//        return stateProcessModuleService.updateBatchById(stateProcessModules);
    }
    /**
@@ -238,7 +249,9 @@
        //监听器参数补全
        processStartBO.getVariable().put("category", processStartBO.getCategory());
        // 开启流程
        flowLongEngine.startInstanceById(flwProcess.getId(), creator, processStartBO.getVariable()).ifPresent(instance -> {
        Optional<FlwInstance> flwInstanceOptional = flowLongEngine.startInstanceById(flwProcess.getId(), creator, processStartBO.getVariable());
        if(flwInstanceOptional.isPresent()){
            FlwInstance instance = flwInstanceOptional.get();
            //存储任务中心信息
            StateTaskCenter stateTaskCenter = new StateTaskCenter();
            stateTaskCenter.setId(IdUtils.simpleUUID());
@@ -268,7 +281,7 @@
            //保存version
            stateProcessExtInstance.setProcessVersion(flwProcess.getProcessVersion());
            stateProcessExtInstanceService.save(stateProcessExtInstance);
        });
        }
        return true;
    }