package org.jeecg.modules.flowable.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.flowable.engine.history.HistoricActivityInstance; import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl; import org.jeecg.modules.flowable.domain.vo.FlowMy; import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; import org.jeecg.modules.flowable.mapper.IWorkTaskVoMapper; import org.jeecg.modules.flowable.service.IWorkTaskServiceVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class WorkTaskServiceImplVo extends ServiceImpl implements IWorkTaskServiceVo { @Autowired FlowMyBusinessServiceImpl flowMyBusinessService; @Override public IPage toTaskBySelf(FlowMy flowMy, Page page) { IPage workTaskDataVoIPage = baseMapper.taskBySelf(flowMy, page); workTaskDataVoIPage.getRecords().forEach(workTaskDataVo -> { HistoricActivityInstance historicActivityInstance = flowMyBusinessService.getPreviousNode(workTaskDataVo.getId()); if (historicActivityInstance != null) { workTaskDataVo.setPreNode(historicActivityInstance.getActivityName()); workTaskDataVo.setPreNodeAssignee(historicActivityInstance.getAssignee()); } if (StrUtil.isEmpty(workTaskDataVo.getAssignee())) { workTaskDataVo.setAssignee(flowMy.getUsername()); } }); return workTaskDataVoIPage; } @Override public Integer taskCountBySelf(String username) { Integer count = baseMapper.taskCountBySelf(username); if (count == null) { return 0; } return count; } }