| | |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.NumberUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.aizuda.bpm.engine.FlowLongEngine; |
| | | import com.aizuda.bpm.engine.core.FlowCreator; |
| | | import com.aizuda.bpm.engine.core.enums.TaskType; |
| | | import com.aizuda.bpm.engine.entity.*; |
| | | import com.aizuda.bpm.engine.entity.FlowEntity; |
| | | import com.aizuda.bpm.engine.entity.FlwHisInstance; |
| | | import com.aizuda.bpm.engine.entity.FlwHisTask; |
| | | import com.aizuda.bpm.engine.entity.FlwHisTaskActor; |
| | | import com.aizuda.bpm.engine.entity.FlwProcess; |
| | | import com.aizuda.bpm.engine.entity.FlwTask; |
| | | import com.aizuda.bpm.engine.entity.FlwTaskActor; |
| | | import com.aizuda.bpm.engine.model.NodeModel; |
| | | import com.aizuda.bpm.mybatisplus.mapper.*; |
| | | import com.aizuda.bpm.mybatisplus.mapper.FlwHisInstanceMapper; |
| | | import com.aizuda.bpm.mybatisplus.mapper.FlwHisTaskActorMapper; |
| | | import com.aizuda.bpm.mybatisplus.mapper.FlwHisTaskMapper; |
| | | import com.aizuda.bpm.mybatisplus.mapper.FlwTaskActorMapper; |
| | | import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.alibaba.fastjson2.JSONWriter; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.zzg.common.core.domain.BaseEntity; |
| | | import com.zzg.common.core.domain.entity.state.*; |
| | | import com.zzg.common.core.domain.entity.state.StateProcessExtInstance; |
| | | import com.zzg.common.core.domain.entity.state.StateProcessInstanceAction; |
| | | import com.zzg.common.core.domain.entity.state.StateProcessModule; |
| | | import com.zzg.common.core.domain.entity.state.StateProcessTemplate; |
| | | import com.zzg.common.core.domain.entity.state.StateTaskCenter; |
| | | import com.zzg.common.core.domain.entity.system.SysUser; |
| | | import com.zzg.common.core.domain.model.LoginUser; |
| | | import com.zzg.common.enums.StateProcessActionType; |
| | |
| | | import com.zzg.common.exception.state.StateErrorCode; |
| | | import com.zzg.common.utils.SecurityUtils; |
| | | import com.zzg.common.utils.uuid.IdUtils; |
| | | import com.zzg.system.domain.bo.*; |
| | | import com.zzg.system.domain.vo.City; |
| | | import com.zzg.system.domain.bo.DeployBO; |
| | | import com.zzg.system.domain.bo.ProcessAgreeBO; |
| | | import com.zzg.system.domain.bo.ProcessCreateBO; |
| | | import com.zzg.system.domain.bo.ProcessRefuseBO; |
| | | import com.zzg.system.domain.bo.ProcessStartBO; |
| | | import com.zzg.system.domain.bo.ProcessTaskListBO; |
| | | import com.zzg.system.domain.bo.ProcessTemplatePageBO; |
| | | import com.zzg.system.domain.bo.ProcessUpdateBO; |
| | | import com.zzg.system.domain.vo.ProcessTaskListVO; |
| | | import com.zzg.system.mapper.state.StateProcessTemplateMapper; |
| | | import com.zzg.system.service.state.*; |
| | | import com.zzg.system.service.state.StateProcessExtInstanceService; |
| | | import com.zzg.system.service.state.StateProcessInstanceActionService; |
| | | import com.zzg.system.service.state.StateProcessModuleService; |
| | | import com.zzg.system.service.state.StateProcessTemplateService; |
| | | import com.zzg.system.service.state.StateTaskCenterService; |
| | | import com.zzg.system.service.system.ISysRoleService; |
| | | import com.zzg.system.service.system.ISysUserService; |
| | | import lombok.AllArgsConstructor; |
| | | import org.apache.commons.io.IOUtils; |
| | | import org.springframework.security.core.parameters.P; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.io.InputStream; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.*; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private final FlwHisTaskActorMapper flwHisTaskActorMapper; |
| | | private final ISysUserService sysUserService; |
| | | |
| | | /** |
| | | * 流程模版分页 |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Page<StateProcessTemplate> page(ProcessTemplatePageBO request) { |
| | | //查询流程模板列表 |
| | | Page<StateProcessTemplate> templatePage = this.baseMapper.page(new Page<>(request.getCurrentPage(), request.getPageSize()), request); |
| | | |
| | | |
| | | //更新人id列表 |
| | | List<String> updateUserNameList = templatePage.getRecords().stream().map(BaseEntity::getUpdateBy).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(updateUserNameList)) { |
| | | //根据用户id列表查询用户信息 |
| | | List<SysUser> sysUsers = sysUserService.selectUserByUserNameList(updateUserNameList); |
| | | Map<String, SysUser> sysUserMap; |
| | | if (!CollectionUtils.isEmpty(sysUsers)) { |
| | |
| | | } else { |
| | | sysUserMap = new HashMap<>(); |
| | | } |
| | | //遍历列表,设置更新人名称 |
| | | templatePage.getRecords().forEach(e -> { |
| | | SysUser sysUser = sysUserMap.get(e.getUpdateBy()); |
| | | if (Objects.nonNull(sysUser)) { |
| | |
| | | return templatePage; |
| | | } |
| | | |
| | | /** |
| | | * 修改并部署模版 |
| | | * @param processUpdateBO |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Boolean update(ProcessUpdateBO processUpdateBO) { |
| | | //查询流程模板 |
| | | StateProcessTemplate temp = this.getById(processUpdateBO.getId()); |
| | | //根据template_key查询最新版本的模板 |
| | | StateProcessTemplate template = this.getOne(Wrappers.<StateProcessTemplate>lambdaQuery() |
| | | .eq(StateProcessTemplate::getTemplateKey, temp.getTemplateKey()) |
| | | .apply("(template_key, template_version) in(" |
| | |
| | | return stateProcessModuleService.updateBatchById(stateProcessModules); |
| | | } |
| | | |
| | | /** |
| | | * 创建并部署模版 |
| | | * @param processCreateBO |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Boolean create(ProcessCreateBO processCreateBO) { |
| | |
| | | return this.save(processTemplate); |
| | | } |
| | | |
| | | /** |
| | | * 启动流程 |
| | | * @param processStartBO |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Boolean start(ProcessStartBO processStartBO) { |
| | |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 待办 |
| | | * @param processTaskListBO |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PageInfo<ProcessTaskListVO> waitTaskPage(ProcessTaskListBO processTaskListBO) { |
| | | List<ProcessTaskListVO> page = new ArrayList<>(); |
| | |
| | | List<String> updateUserId = processTaskListVOS.stream().map(ProcessTaskListVO::getCreateBy).collect(Collectors.toList()); |
| | | Map<String, SysUser> sysUserMap; |
| | | if (!CollectionUtils.isEmpty(updateUserId)) { |
| | | //根据用户id查询更新人信息 |
| | | List<SysUser> sysUsers = sysUserService.selectUserByIdList(updateUserId); |
| | | |
| | | if (!CollectionUtils.isEmpty(sysUsers)) { |