package jnpf.flowable.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jnpf.base.service.SuperServiceImpl; import jnpf.exception.WorkFlowException; import jnpf.flowable.entity.TemplateJsonEntity; import jnpf.flowable.entity.TemplateNodeEntity; import jnpf.flowable.enums.NodeEnum; import jnpf.flowable.mapper.TemplateNodeMapper; import jnpf.flowable.service.TemplateJsonService; import jnpf.flowable.service.TemplateNodeService; import jnpf.util.RandomUtil; import jnpf.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Service public class TemplateNodeServiceImpl extends SuperServiceImpl implements TemplateNodeService { @Autowired private TemplateJsonService templateJsonService; @Override public List getList(String flowId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateNodeEntity::getFlowId, flowId); return this.list(queryWrapper); } @Override public List getList(List flowIds, String nodeType) { if (flowIds.isEmpty()) { return new ArrayList<>(); } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(TemplateNodeEntity::getFlowId, flowIds); if (StringUtil.isNotBlank(nodeType)) { queryWrapper.lambda().eq(TemplateNodeEntity::getNodeType, nodeType); } return this.list(queryWrapper); } @Override public List getListLikeUserId(String userId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(TemplateNodeEntity::getNodeJson, userId); return this.list(queryWrapper); } @Override public TemplateNodeEntity getInfo(String id) throws WorkFlowException { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateNodeEntity::getId, id); return this.getOne(queryWrapper); } @Override public void create(TemplateNodeEntity entity) { entity.setId(RandomUtil.uuId()); this.save(entity); } @Override public boolean update(String id, TemplateNodeEntity entity) { entity.setId(id); return this.updateById(entity); } @Override public void delete(TemplateNodeEntity entity) { if (entity != null) { this.removeById(entity.getId()); } } @Override public void deleteList(List idList) { if (!idList.isEmpty()) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(TemplateNodeEntity::getId, idList); this.remove(queryWrapper); } } @Override public void delete(List idList) { if (!idList.isEmpty()) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(TemplateNodeEntity::getId, idList); this.remove(queryWrapper); } } @Override public List getListStart() { List listOfEnable = templateJsonService.getListOfEnable(); List flowIds = listOfEnable.stream().map(TemplateJsonEntity::getId).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(flowIds)) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().select(TemplateNodeEntity::getFlowId, TemplateNodeEntity::getFormId); queryWrapper.lambda().eq(TemplateNodeEntity::getNodeType, NodeEnum.start.getType()).in(TemplateNodeEntity::getFlowId, flowIds); return this.list(queryWrapper); } return new ArrayList<>(); } }